2017-12-05 3 views
-1

私は機械学習には比較的新しいので、次の点で助けて欲しいです:sklearnで10倍交差検証を実行した後にSVCクラシファイアを実行するにはどうすればよいですか?

私は10倍のクロスバリデーションでサポートベクターマシンクラシファイア(SVC)を実行し、精度スコアを計算しました約89%)。私はPythonを使っていて、タスクを実行するためにscikit-learnを使っています。ここでは、コードスニペットです:

def get_scores(features,target,classifier): 
    X_train, X_test, y_train, y_test =train_test_split(features, target , 
    test_size=0.3) 
    scores = cross_val_score(
    classifier, 
    X_train, 
    y_train, 
    cv=10, 
    scoring='accuracy', 
    n_jobs=-1) 
return(scores) 

get_scores(features_from_df,target_from_df,svm.SVC()) 

、どのように私はX_test上でそれをテストしてy_testすると予測結果を比較するために(10-折るCVを実行した後に)私の分類器を使用することができますか?気づいたことがあるかもしれませんが、私はX_trainとy_trainを相互検証プロセスで使用しました。

私はsklearnがcross_val_predictを持っていることに気づきました: http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_val_predict.html私はcross_val_scoreをcross_val_predictで置き換えるべきですか?ちょうどFYI:私のターゲットデータ列は2進化されています(値は0と1です)。

私のアプローチが間違っている場合は、進めていく最善の方法を教えてください。

ありがとうございます!

答えて

0

あなたはほとんどそこにいる:この時点で

# Build your classifier 
classifier = svm.SVC() 

# Train it on the entire training data set 
classifier.fit(X_train, y_train) 

# Get predictions on the test set 
y_pred = classifier.predict(X_test) 

、あなたはどうやったのかも決定するためにsklearn.metricsモジュールから任意のメトリックを使用することができます。例:

from sklearn.metrics import accuracy_score 
print(accuracy_score(y_test, y_pred)) 
+0

ありがとうございました。ただし、これはクロスバリデーションを考慮しません。任意の代替提案は素晴らしいでしょう。 –

+1

@ M_13クロス検証を考慮に入れたモデルはありません。 CVは、データのモデルのパフォーマンスをチェックするだけです。 [cross-validation](http://scikit-learn.org/stable/modules/cross_validation.html)をお読みください。 –

関連する問題