[機械学習]
Octaveで回帰
Couseraのmachine learningの演習についてまとめている。
- 答えは書いてません
- 理解のためには一度ノートに行列の式を書くとわかりやすいと思いました
複数要素の場合のhypothesis (仮説)
Octaveで複数要素のhypothesisを表す場合、こうでしたよね?
そしてこいつを転置して
と書く、TはTransposeのT
Octaveはベクトルをそのまま計算できるので、
- X = [xx xx; yy yy; zz zz; ...]; のような行列
- θ = [0;0;0;...]; のような縦ベクトル
これらがあれば仮説関数が計算できるはず
>> h = theta * X
目的関数 J(θ)
- この式をOctaveで表したいんだけど難しすぎる。とりあえずヒントのみ。
% Xは適当な行列、thetaはtheta_0, theta_1ともに0としたら >> X = [1.0 1234; 1.0 2345; 1.0 3456]; >> theta = [0;0]; % とおける… >> X*theta ans = 0 0 0 % となる。
- というのは、行列の積がこんな感じで解けるから
-
=
- というわけで X の要素分の縦ベクトルが作成される
-
複数要素の場合の最急降下法
- ここがもうほぼ答え
- 仮説:
、変数:
イメージとしては以下の関数を実行しまくってθの値を変化させていく(授業で言われたままだな…)
-
:
-
:
- 後半のX^iってなんじゃい?って話ですが、これはもちろん累乗ではなくデータセットのうち1番めの列のやつですよ