二乗誤差コスト関数のような GNU Octave でいくつかの機械学習アルゴリズムを試しています。私が持っているテキストによると、適切なベクトル化されたフォーラムは次のとおりです。
J = (X * theta - y)' * (X * theta - y) * (1/(2*m)
ここで、X は m x n+1
行列、theta はn+1 x 1
ベクトル、y はm x 1
ベクトルです。私の質問は、この2番目の方法が少し速いかどうかです:
J = sum((X * theta - y).^2) * (1/(2*m))
一度しか計算しないからX * theta -y
です。Windowsの非常に気まぐれな環境で実行されているように見えるオクターブに慣れていないため、自分でベンチマークを行う方法がわかりません。
これは何よりも好奇心なので、気にしないでください。