多項式回帰のsklearn

「」 ' 
    多項式回帰を:あなたはより良いトレーニングサンプルデータに合うように回帰モデルをしたい場合は、多項式回帰をされて使用することができます。
    単変量多項式回帰:
        数理モデル:Y = W 0 + W 1 * X ^ 1 + W2 * X ^ 2 + ... + WN * X N ^ 
        得られた長期特性の高次の項まで拡張と見ることができる:
                Y = W0 + W1 * X1 + W2 * X2 + ... + WN * XN 
        多重線形回帰モデルとして見ることができるので、多項式回帰は、線形回帰サンプルデータモデルのトレーニングを使用することができます。

        :達成される単変量多項式回帰は、2つのステップが必要
            1.(最大次数多項式にのみ与えられる)多項式回帰、多重線形回帰問題を変換します。
            2.結果は、ステップ1多項式W1、W2、W3、...、で得られた WN 線形回帰、多変量線形モデルが訓練された、サンプル特性として。

    そのモデルの適切な最大数は、線形回帰モデルスコアをR2よりも高いスコア数が高すぎると、上が存在するであろう選択-フィット、スコアは線形回帰スコアよりも低くなる

        二つのステップによって提供される「データ線」sklearn実装を使用して実行順序:
            PL ASインポートsklearn.pipeline 
            SPとしてインポートがsklearn.preprocessing 
            インポートLM AS sklearn.linear_model

            = pl.make_pipelineモデル(
                #10:多項式の最高次数
                sp.PolynomialFeatures(10)、#特性多項式パンダ
                lm.LinearRegression())#線形回帰の

    過剰適合とunderfitting:
        1.オーバーフィッティング:あまりにトレーニングデータのための複雑なモデルは、より良い精度を得ることができますが、精度は、この現象は、オーバーフィッティングと呼ばれ、テストデータのための一般的に低いです。
        2. underfitting:あまりにも単純なモデル、両方のトレーニングデータやテストデータについては、十分に高い予測精度、underfittingと呼ばれる現象を与えることはできません。
        3.学習モデルの性能は、トレーニングデータとテストデータの許容可能な予測精度であるべき接近しているが、精度が低すぎることはできません。
                トレーニングはR2に設定R2テスト設定
                    0.3 0.4 underfitting:単純すぎるが、ルールはデータ反映していない
                    0.9 0.2オーバーフィッティング:あまりにも特別な、あまりにも複雑に、一般の欠如
                    許容0.6 0.7:適度な複雑さは、ルールデータの両方を反映して、一般性を失うことなくしながら、

    データsingle.txtファイルをロードし、回帰モデルを訓練するために、多項式回帰アルゴリズムに基づいています。
        ステップ:
            パッケージガイド---> ---は、モデルによって予測多項式回帰を作成---> ---予測モデルとトレーニング>得られpred_y、画像レンダリングの多項式関数>データを読み込む
'「」
のインポートがPL AS sklearn.pipeline
 インポートsklearn LM .linear_modelのAS
 インポートsklearn.preprocessing SP AS
 インポートMP AS matplotlib.pyplot
 インポートNP AS numpyの
 インポートAS sklearn.metrics SM 

#の収集データ 
X、Y = np.loadtxt(' ./ml_data/single.txt '、DELIMITER = " '、usecols =(0 ,. 1)は、アンパック= TRUE)
入力は、この線のような2次元配列の特徴となる 
Xのx.reshape =(-1 ,. 1 

#は、モデルの作成 
=モデルpl.make_pipeline(
    sp.PolynomialFeatures( 10)、  多項式展開装置特徴 
    lm.LinearRegression()  線形回帰
#のトレーニングモデル
model.fit(X、Y)
は、予測値Yを決定 
pred_y = model.predict(X)を

#のモデル評価
印刷' 絶対平均誤差:' 、sm.mean_absolute_error(Y、pred_y))
 を印刷' 平均二乗誤差:' 、sm.mean_squared_error(Y、pred_y))
 を印刷' 中央絶対エラー:' 、sm.median_absolute_error(Y、pred_y))
 を印刷R2スコア:' 、Sm.r2_score(Y、pred_y)) 

は、多項式回帰直線描画 
PX = np.linspace(x.min()、x.max()1000 
PX = px.reshape(-1 ,. 1 
pred_py = モデル。 (PX)を予測

描画画像 
mp.figure(" ポリ回帰"、のFaceColor = ' LightGrayの' 
mp.title(' ポリ回帰'、のfontSize = 16 
mp.tick_params(labelsize = 10 
mp.grid(をlineStyle = ' ' 
mp.xlabel(' X "
mp.ylabel(' Y ' 

mp.scatter(X、Y、S = 60、マーカー= ' O '、C = ' ドジャーブルー'、ラベル= ' ポイント' 
mp.plot(PX、pred_py、C = ' オレンジレッド'ラベル= ' 関数polyfitライン" 
mp.tight_layout()
mp.legend()
mp.show()


出力:
絶対平均誤差: 0.4818952136579405は、
平均二乗誤差: 0.35240714067500095 
中央絶対エラー: 0.47265950409692536 
R2スコア: 0.7868629092058499を

  

おすすめ

転載: www.cnblogs.com/yuxiangyang/p/11183409.html