機械学習ノート(二)----線形方程式フィッティングの正規方程式法*(推奨URL)
1908 ワード
これまで勾配降下アルゴリズムを用いてきたが,いくつかの線形回帰問題に対して正規方程式法はより良い解決策である.次のようになります.
J(θ)=aθ2+bθ+c
正規方程式は、次の方程式を解くことによって、代価関数を最小にするパラメータを見つけます.
∂∂θjJ(θj)=0
我々の訓練セット特徴行列がX(x 0=1を含む)であり,我々の訓練セット結果がベクトルyであると仮定すると,正規方程式を用いてベクトルを解いた.
θ=(XHX)−1XHy
次に、データの例を示します.
x0
寸法(フィート)
x1
部屋数
x2
フロア数
x3
使用期間(年)
x4
価格(1000 dollar)
y
1
2104
5
1
45
460
1
1416
3
2
40
232
1
1534
3
2
30
315
1
852
2
1
36
178
⎡⎣⎢⎢⎢11112104141615348525332122145403036⎤⎦⎥⎥⎥
pythonを使用して、次のように計算します.
注意:非可逆的な行列(通常は、フィート単位の寸法とメートル単位の寸法の2つの特徴が含まれるように、特徴の数がトレーニングセットの数よりも大きい可能性がある)では、正規方程式の方法は使用できません.pythonでは、機械学習アルゴリズムのライブラリによく使用されている紹介サイトは、次のとおりです.http://www.usyiyi.cn/translate/scipy_lecture_notes/index.html機械学習の方法と特徴を選択するには、次のように参照してください.http://blog.jobbole.com/85680/
勾配降下と正規方程式の比較:
こうばいこうか
正規方程式
学習率の選択が必要α
不要
複数回の反復が必要
いちじえんざん
特徴数nが大きい場合にも好適に適用できる
マトリクス逆の計算時間の複雑さはO(n^3)であるため、特徴数nが大きいと演算コストが大きくなり、通常、nが10000未満の場合でも許容できる
さまざまなタイプのモデルに適用
線形モデルにのみ適用され、論理回帰モデルなどの他のモデルには適用されません.
要約すると,特徴変数の数が大きくない限り,標準方程式は良好な計算パラメータである.θ を選択します.具体的には,特徴変数の数が1万未満であれば,勾配降下法ではなく標準方程式法を用いることが多い.
私たちが話す学習アルゴリズムがますます複雑になるにつれて、例えば、論理回帰アルゴリズムのような分類アルゴリズムを話すと、実際にはそれらのアルゴリズムに対して標準方程式法を使用することはできません.より複雑な学習アルゴリズムについては,勾配降下法を依然として用いなければならない.従って,勾配降下法は非常に有用なアルゴリズムであり,大量の特徴変数を持つ線形回帰問題に用いることができる.標準方程式法が適切でないか、使用できないため、後で授業でお話しする他のアルゴリズムもあります.しかし,この特定の線形回帰モデルに対して,標準方程式法は勾配降下法よりも速い代替アルゴリズムである.だから、具体的な問題と、あなたの特徴変数の数によって、この2つのアルゴリズムは学ぶ価値があります.
J(θ)=aθ2+bθ+c
正規方程式は、次の方程式を解くことによって、代価関数を最小にするパラメータを見つけます.
∂∂θjJ(θj)=0
我々の訓練セット特徴行列がX(x 0=1を含む)であり,我々の訓練セット結果がベクトルyであると仮定すると,正規方程式を用いてベクトルを解いた.
θ=(XHX)−1XHy
次に、データの例を示します.
x0
寸法(フィート)
x1
部屋数
x2
フロア数
x3
使用期間(年)
x4
価格(1000 dollar)
y
1
2104
5
1
45
460
1
1416
3
2
40
232
1
1534
3
2
30
315
1
852
2
1
36
178
⎡⎣⎢⎢⎢11112104141615348525332122145403036⎤⎦⎥⎥⎥
pythonを使用して、次のように計算します.
import numpy as np
X = np.array([[1,2104,5,1,45],[1,1416,3,2,40],[1,1534,3,2,30],[1,852,2,1,36]])
y = np.array([[460],[232],[315],[178]])
result = np.linalg.inv(X.T.dot(X)).dot(X.T).dot(y)
注意:非可逆的な行列(通常は、フィート単位の寸法とメートル単位の寸法の2つの特徴が含まれるように、特徴の数がトレーニングセットの数よりも大きい可能性がある)では、正規方程式の方法は使用できません.pythonでは、機械学習アルゴリズムのライブラリによく使用されている紹介サイトは、次のとおりです.http://www.usyiyi.cn/translate/scipy_lecture_notes/index.html機械学習の方法と特徴を選択するには、次のように参照してください.http://blog.jobbole.com/85680/
勾配降下と正規方程式の比較:
こうばいこうか
正規方程式
学習率の選択が必要α
不要
複数回の反復が必要
いちじえんざん
特徴数nが大きい場合にも好適に適用できる
マトリクス逆の計算時間の複雑さはO(n^3)であるため、特徴数nが大きいと演算コストが大きくなり、通常、nが10000未満の場合でも許容できる
さまざまなタイプのモデルに適用
線形モデルにのみ適用され、論理回帰モデルなどの他のモデルには適用されません.
要約すると,特徴変数の数が大きくない限り,標準方程式は良好な計算パラメータである.θ を選択します.具体的には,特徴変数の数が1万未満であれば,勾配降下法ではなく標準方程式法を用いることが多い.
私たちが話す学習アルゴリズムがますます複雑になるにつれて、例えば、論理回帰アルゴリズムのような分類アルゴリズムを話すと、実際にはそれらのアルゴリズムに対して標準方程式法を使用することはできません.より複雑な学習アルゴリズムについては,勾配降下法を依然として用いなければならない.従って,勾配降下法は非常に有用なアルゴリズムであり,大量の特徴変数を持つ線形回帰問題に用いることができる.標準方程式法が適切でないか、使用できないため、後で授業でお話しする他のアルゴリズムもあります.しかし,この特定の線形回帰モデルに対して,標準方程式法は勾配降下法よりも速い代替アルゴリズムである.だから、具体的な問題と、あなたの特徴変数の数によって、この2つのアルゴリズムは学ぶ価値があります.