2016-09-01 5 views
2

thisチュートリアルに沿ってマシン学習ベースの予測を学習しようとしていますが、2つの質問がありますか?** kwargs(Scikit Learn)を使用してn_estimators引数を設定する

Ques1。下のコードにn_estimatorsを設定するには、それ以外の場合は常にデフォルト値になります。

from sklearn.cross_validation import KFold 

def run_cv(X,y,clf_class,**kwargs): 
# Construct a kfolds object 
kf = KFold(len(y),n_folds=5,shuffle=True) 
y_pred = y.copy() 

# Iterate through folds 
for train_index, test_index in kf: 
    X_train, X_test = X[train_index], X[test_index] 
    y_train = y[train_index] 
    # Initialize a classifier with key word arguments 
    clf = clf_class(**kwargs) 
    clf.fit(X_train,y_train) 
    y_pred[test_index] = clf.predict(X_test) 
return y_pred 

それはと呼ばれている:

from sklearn.svm import SVC print "%.3f" % accuracy(y, run_cv(X,y,SVC))

Ques2:私はより多くの(テスト)を予測するためにそれを使用できるように、どのように(例えばSVMから得た)、既に訓練されたモデルファイルを使用します私が訓練に使用しなかったデータ?

答えて

1

最初の質問では、上記のコードでrun_cv(X,y,SVC,n_classifiers=100)を呼び出し、**kwargsはこれをステップclf = clf_class(**kwargs)の分類子初期化子に渡します。

2つめの質問では、リンクしたコードのクロスバリデーションは、モデルの評価、つまりさまざまなタイプのモデルとハイパーパラメータの比較、実働モデルでのモデルの有効性の判断などに使用します。あなたのモデルを決定したら、データセット全体にモデルを再適合する必要があります。

clf.fit(X,y) 

次にあなたがclf.predictまたはclf.predict_probaと予測を得ることができます。

関連する問題