グリッドサーチ最適化モデルのパラメータを使用します

1.シンプルなグリッド検索方法

  • 異なるパラメータの数を調整するために投げ縄アルゴリズム

#############################グリッドサーチ最適化モデルのパラメータを使用して############## ######################### 
#インポート投げ縄回帰モデル
sklearn.linear_modelインポート投げ縄から
設定#インポート分割ツールデータ
sklearn.model_selectionインポートtrain_test_splitから
セット#インポートワインデータ
sklearn.datasetsからはload_wineインポート
セット#1のデータのロードをワイン
ワインload_wine =() 差分データセットを設定し、トレーニングセットとテストに分割され
X_train、X_test、y_train、y_test = train_test_split(wine.data、wine.target = 38はrandom_state)が
初期スコア0に設定#
BEST_SCORE = 0 
0.01、0.1を横断#セットパラメータアルファ
:[0.01,0.1,1.0,10.0]でアルファため
    、反復#トラバーサル100,1000,5000最大数10000 
    [100,1000,5000,10000]でmax_iter用:
        投げ縄=(アルファ=アルファ、max_iter = max_iter)投げ縄
        #投げ縄回帰モデルのトレーニング
        lasso.fit(X_train、y_train)
        スコア= lasso.scoreは(。X_testは、android.permission.FACTOR) は、最高値のすべてのスコアの最高のスコアを作る
        スコア> BEST_SCORE IF:
            BEST_SCORE =スコア
            #辞書の定義、パラメータおよび最高の最高の最大値を返します。反復回数
            best_parameters = {「α」:アルファ 、「 反復の最大数」:max_iter} 
印刷結果
プリント(「モデル最大スコア:{}:3F」フォーマット(BEST_SCORE))
プリント(」最適なパラメータ設定: {}」形式(best_parameters) )
モデル最大スコア:0.889 
最適なパラメータセット:{「α」:0.01、 「 反復の最大数」100}
#差分データセットを設定し、トレーニングセットとテストに分割され
X_train、X_test、y_train、android.permission.FACTOR = Train_test_split(wine.data、wine.target、random_state = 0) 初期スコアとして設定する0 
BEST_SCORE = 0 
#セットパラメータアルファ0.01、0.1トラバーサル、1、10 
アルファのための[0.01,0.1,1.0,10.0]で:
    100,1000,5000,10000を横断する反復#最大数
    [100,1000,5000,10000]でmax_iterため:
        投げ縄投げ縄=(アルファ=アルファ、 = max_iter max_iter) トレーニング投げ縄回帰モデル
        lasso.fit(X_train、y_train)
        スコア= lasso.score(X_test、android.permission.FACTOR)。 すべての最高スコアの最高得点作る
        IFスコア> BEST_SCOREを:
            BEST_SCOREは=得点
            #定義辞書は、最適なパラメータ及び反復の最適の最大数を返し
            {:アルファ「α」best_parameters = 、「 反復の最大数」:max_iter} 
印刷結果を
印刷( 'モデル最大スコア:{}:3F'フォーマット(BEST_SCORE)。) 印刷( '最適なパラメータセット:{}'形式(best_parameters ))
モデル最大スコア:0.830 
最適なパラメータセット:{「α」:0.1、 「 反復の最大数」100}

2.クロスバリデーションバインドグリッドサーチ

#インポートnumpyの
インポートnumpyのNP AS 
導入#クロスバリデーションツール
sklearn.model_selectionインポートcross_val_scoreから
0.01、0.1を横断#アルファパラメータセット
[0.01,0.1,1.0,10.0]でアルファのために:
    最大反復回数トラバース#100、 1000,5000,10000 
    [100,1000,5000,10000]でmax_iterため:
        (アルファ=アルファ、max_iter = max_iter)=投げ縄投げ縄
        #トレーニング投げ縄回帰モデル
        lasso.fit(X_train、y_train)
        投げ縄(スコア= cross_val_score、 。X_train、y_train、CV = 6)
        スコア= np.mean(スコア)
        スコアが> BEST_SCORE IF:
            BEST_SCORE =スコア
            #辞書の定義は、最適なパラメータと反復の最適最大数を返し
            best_parameters = { 'α':アルファ 、「 最大反復回:max_iter} 
の印刷結果
印刷( 'モデル最大スコア:{}:3F'フォーマット(BEST_SCORE)。) 印刷( '最適なパラメータセット:{}'形式(best_parameters ))
モデル最大スコア:0.865 
最適なパラメータセット:{「α」:0.01、 「 反復の最大数」100}
#モデルは、最適なパラメータを使用してデータをフィット
ラッソ=ラッソ(アルファ= 0.01、max_iter = 100).fit(X_train、y_train)
テストスコアデータセット#印刷
プリント(「テストスコアデータセット:{:3F}」形式(lasso.score(X_test、y_test)) )
テストデータセットのスコア:0.819
#案内グリッド検索ツール
sklearn.model_selectionインポートGridSearchCVのから
#辞書横断するのに必要なパラメータを定義する
[:のparams = { 'α' 0.01,0.1,1.0,10.0]、 'max_iterを':[100,1000,5000,10000 ]} 
サーチグリッドで使用されるモデル#定義およびパラメータ
grid_search = GridSearchCV(ラッソ、paramsは、CV =を。6、IID =偽)
#モデルは、グリッドサーチを使用してデータをフィット
grid_search.fit(X_train、y_train) 印刷結果
を印刷します( 'モデルは、最も高いスコア:{}:3F'フォーマット(grid_search.score(X_test、android.permission.FACTOR))。。)
プリント( 'ほとんどのパラメータ:{}'形式(grid_search.best_params_ ))
モデル最高スコア:0.819 
ほとんどのパラメータ:{ 'α':0.01、 'max_iter':100}
プロパティグリッド検索best_score_#プリント
プリント( 'クロスバリデーション最高スコア:{:3F}'形式( grid_search.best_score_))。
クロスバリデーション最高のスコア:0.865

要約:  

  • 方法自体はGridSearchCVグリッド一緒にパッケージ検索およびクロスバリデーションです。
  • けれどもGridSearchCVは非常に強力な機能ですが、原因を繰り返しモデリングする必要があるため、計算時間が長くなるために必要。

 

「素人の言語Pythonの機械学習」:記事から引用

おすすめ

転載: www.cnblogs.com/weijiazheng/p/10966005.html