IoT, AI,機械学習 トピックス

同じ作業に有効なパイプライン

投稿日:

多項式回帰の続きです。

資料はこちら → 多項式回帰

p.1 y=50x5-90x5-550x3+900x2+500x+500eの数式のxに-3~3.5の乱数を、eに標準正規分布の誤差を代入して、y値を算出して200個のデータ配列を準備します。この配列を散布図で描いたものが右下図です。

p.2 上述のデータを学習用テスト用に振り分けます。random_state=123と書かれていますが、

123でなくとも数字がある場合は、乱数が固定されるようです。欧米では「42」が好まれるようです。42という数字は、「PolynomialFeatures」は、べき乗を求めるクラスです。「LinearRegression」は線形回帰です。 「pipeline」は、このPolynomialFeaturesとLinearRegressionの操作をすることを定義し、その後、「pipeline」の後に.fit(フィット)→.predict(予測)→ .scatter(散布図)→ .plot(プロット)を付加させて一連の操作を実行します。そして、次数を変化させて同じ操作を実行します。pipelineは、実施する操作順番を定義するスクリプトです。これによりスクリプトをシンプルにすることが可能となります。

パイプラインの解説はこちらをご覧ください → https://qiita.com/c60evaporator/items/7829d8d8322a407d54f1

p.3、4 次数を変えてフィッティングした結果です。MSE(Mean Squared Error) 平均2乗誤差を次数に対して表にしました。MSEは誤差の分散を同じ意味です。値が小さいほどフィットしていることを示しています。 今回p.1で5次関数でデータセットを用意したので、次数5がMSEが小さいのは当然かもしれません。

今回は、同じ作業をする場合、「pipeline」というスクリプトで簡略化することができることを知っておいてください。

本日のスクリプトはこちら → 多項式回帰(script)

-IoT, AI,機械学習, トピックス

Copyright© 進化するガラクタ , 2022 All Rights Reserved Powered by STINGER.