Edited at

線形回帰問題を機械学習で解く

cousera機械学習week2の概要。自分の理解では、線形回帰における機械学習とは、与えられる実データ(x,y)に対し、予測式HΘにxの値を代入れて得られる予測値との差が最小になるようなΘを機械的に見つけ出す手法のこと。このプロセスを行列式で示し、それをOctaveで記載して計算する。


1. カレントディレクトリをデータ、プログラムファイル(xxxx.m)のあるフォルダに設定。

プログラムファイルを使うと、ファイル名をコマンドのように扱うことができる。引数がある場合は、ファイル名(引数1,引数2,,,,)で記載する。


2. データを読み込み、x, y の行列に分割してプロットする。


3. 予想式(1変数による直線回帰)を定義する。

1.png

この式はxの1*2行列[1 x]とΘの2*1行列[Θ0; Θ1]の積で示すことが出来る。


4. 実データと予想値の差Jを定義する。

2.png

実データyと予想値H(x)の差の二乗の総和として定義。Θが決まると実データ(x,y)に対するJ値が決まる。


5. Θを変換させてJを徐々に小さくする。

3.png

Θの変換式はJ算出式の偏微分で定義できる(より良いΘに近づける変換ロジック、機械学習の肝)。Θ初期値、α値を決める。規定回数変換させてΘの収束値を求める。