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_))。
要約:
- 方法自体はGridSearchCVグリッド一緒にパッケージ検索およびクロスバリデーションです。
- けれどもGridSearchCVは非常に強力な機能ですが、原因を繰り返しモデリングする必要があるため、計算時間が長くなるために必要。
「素人の言語Pythonの機械学習」:記事から引用