最小二乗法:
機械学習 - 簡単な線形回帰(派生+ +コードの原則説明したアルゴリズムを実装します)
ベクタ・コードは実装しています。
単に動作ベクターを用いて最小二乗法のために計算された分子分母ことを意味し、大幅に改善されるようにパフォーマンス
ブログその19との間の差、コードの20行。
1 クラスSimpleLinearRegression2: 2 DEF __init__ (自己): 3 "" " 単純な線形回帰モデルを初期化する""" 4。 self.a_ = なし 5。 self.b_ = なし 6。 #のA及びパラメータBがユーザによって送信されない、誘導され結果 7。 #のx_trainのy_trainと所望のデータが無用である後に得られたパラメータをトレーニング、トレーニングを提供するように設計されている 8。 9。 DEF フィット(セルフ、x_train、y_train): 10 「」 " トレーニングデータセットx_train、y_trainトレーニング単純な線形回帰モデル"" " 11 アサート x_train.ndim == 1 、\ 12 "単純な線形回帰は、単純な機能訓練データ解くことができる" 13 アサート LEN(x_train)== \においてlen(y_train)を 14 " x_trainのサイズはy_trainの大きさと等しくなければならない」 15 #算法实现代码 16 x_mean = NP。平均(x_train) 17 y_mean = np.mean(y_train) 18 19 NUM =(x_train - x_mean).DOT(y_train - y_mean) 20 D =(x_train - x_mean).DOT(x_train - x_mean) 21 22 self.a_ = NUM / D 23 self.b_ = y_mean - self.a_ *x_mean 24 25 戻り自己 26は、 27 DEF :(セルフ、x_predict)を予測 28 "" " の結果のベクトルを返しx_predict x_predict、予測されるように設定された所定のデータの""" 29 アサート。== x_predict.ndim 1 \ 30 " 単純な直線を機能は、SINGLEことができる唯一の回帰トレーニングデータを解き" 31で アサート self.a_ IS 未なしと self.b_はありません ない\、なし 32 " の前にフィット予測しなければならない」 33で 34で 返す([self._predict(X)np.array以下のために X でx_predict]) 35 36 DEFの_predict(セルフ、x_single): 37 [ "" " 予測x_singleのx_singleリターン予測結果値に単一のデータを与えられた""" 38である リターン self.a_ x_single * + self.b_ 39 40 DEFの __repr__ (セルフ): 41は、 リターン " )(SimpleLinearRegression1 "
その中にそのjupyterノートの性能を確認します。
REG1は、線形回帰ループを計算するためのアルゴリズムを用いて表されます。
REG2は、線形回帰アルゴリズムのベクトルを用いて表現されます
営業成績から、我々は大幅に向上した性能のためにそのベクトルの方法を見ることができます。