モデル評価と改善(二)/グリッド検索
14445 ワード
1、グリッド検索とは何ですか.回答:グリッド検索(grid search)とは、主に重要なパラメータのすべての可能な組合せを試み、最適な汎化性能を見つけるパラメータの組合せを指す.汎化性能のより良い推定を得るために、データを単一にトレーニングセットと検証セットに分割するのではなく、クロス検証を使用して各パラメータの組合せの性能を評価することができる.
2、トレーニングセット、検証セット、テストセットの3つの違いは?回答:トレーニングセットはモデルの構築に使用され、検証セットはモデルパラメータの選択に使用され、テストセットは選択したパラメータのパフォーマンスを評価するために使用されます.
3、手書きテープクロス検証のメッシュ検索
4、パケットGridSearchCV
説明:GridSearchCVはクロス検証を持参し、パラメータcv設定によりcross_val_score類似.
5、パラメータチューニングのポイントは?回答:パラメータの調整は、良好なパフォーマンスを得るために非常に重要です.パラメータの範囲は十分大きく、各パラメータの最適な値は画像の境界に配置できません.異なるパラメータ設定でscoreの変化が見えない場合は、このパラメータは重要ではないかもしれません.通常、パラメータを変更するとscoreが変化するかどうかを観察するために、最初から非常に極端な値を試したほうがいい.
6、ネストされたクロス検証は何ですか.回答:グリッドは、単一の分割に依存しすぎるトレーニングセットとテストセットを検索し、ネストされたクロス検証を使用して複数回分割できます.ネストされたクロス検証は、新しいデータに使用可能なモデルを提供しないため、将来のデータに使用可能な予測モデルを探す際にはあまり使用されません.
7、運転速度を上げる方法は?回答:n_を設定できますjob=-1は、使用可能なすべてのカーネルを使用します.Sparkユーザーの場合は、すでに作成されているSparkクラスタ上でグリッド検索を実行できる最新のspark-sklearnパッケージも使用できます.
以上、「Python機械学習基礎教程」を参考に、感謝します.
2、トレーニングセット、検証セット、テストセットの3つの違いは?回答:トレーニングセットはモデルの構築に使用され、検証セットはモデルパラメータの選択に使用され、テストセットは選択したパラメータのパフォーマンスを評価するために使用されます.
3、手書きテープクロス検証のメッシュ検索
import numpy as np
from sklearn.svm import SVC # SVC
from sklearn.model_selection import train_test_split # 、
from sklearn.model_selection import cross_val_score #
from sklearn.datasets import load_iris # iris
iris=load_iris()
X_trainval,X_test,y_trainval,y_test=train_test_split(iris.data,iris.target,random_state=0)
best_score=0
# , for
for gamma in [0.001,0.01,0.1,1,10,100]:
for C in [0.001,0.01,0.1,1,10,100]:
svm=SVC(gamma=gamma,C=C)
scores=cross_val_score(svm,X_trainval,y_trainval,cv=5) # , , 。
score=np.mean(scores)
if score > best_score:
best_score=score
best_parameters={
'C':C,'gamma':gamma}
svm=SVC(**best_parameters)
svm.fit(X_trainval,y_trainval)
svm.score(X_test,y_test)
4、パケットGridSearchCV
from sklearn.model_selection import GridSearchCV
grid_search=GridSearchCV(SVC(),param_grid)
#param_grid
param_grid={
'gamma':[0.001,0.01,0.1,1,10,100],'C':[0.001,0.01,0.1,1,10,100]} #
param_grid=[{
'kernel':['linear'],'gamma':[0.001,0.01,0.1,1,10,100],'C':[0.001,0.01,0.1,1,10,100]},
{
'kernel':['rbf'],'gamma':[0.001,0.01,0.1,1,10,100],'C':[0.001,0.01,0.1,1,10,100]}] #
# GridSearchCV
GridSearchCV(
estimator,
param_grid,
scoring=None,
n_jobs=None,
iid='warn',
refit=True,
cv='warn',
verbose=0,
pre_dispatch='2*n_jobs',
error_score='raise-deprecating',
return_train_score=False,
)
# grid_search estimator
grid_search.fit(X_trainval,y_trainval) #
grid_search.score(X_test,y_test)
grid_search.predict()
grid_search.best_score_ #
grid_search.best_params_ #
grid_search.cv_results_ # score , , df ,
説明:GridSearchCVはクロス検証を持参し、パラメータcv設定によりcross_val_score類似.
5、パラメータチューニングのポイントは?回答:パラメータの調整は、良好なパフォーマンスを得るために非常に重要です.パラメータの範囲は十分大きく、各パラメータの最適な値は画像の境界に配置できません.異なるパラメータ設定でscoreの変化が見えない場合は、このパラメータは重要ではないかもしれません.通常、パラメータを変更するとscoreが変化するかどうかを観察するために、最初から非常に極端な値を試したほうがいい.
6、ネストされたクロス検証は何ですか.回答:グリッドは、単一の分割に依存しすぎるトレーニングセットとテストセットを検索し、ネストされたクロス検証を使用して複数回分割できます.ネストされたクロス検証は、新しいデータに使用可能なモデルを提供しないため、将来のデータに使用可能な予測モデルを探す際にはあまり使用されません.
cross_val_score(GridSearchCV(SVC(),param_grid,cv=5),iris.data,iris.target,cv=5) #iris
7、運転速度を上げる方法は?回答:n_を設定できますjob=-1は、使用可能なすべてのカーネルを使用します.Sparkユーザーの場合は、すでに作成されているSparkクラスタ上でグリッド検索を実行できる最新のspark-sklearnパッケージも使用できます.
以上、「Python機械学習基礎教程」を参考に、感謝します.