後のスコアデータセットscikitは-学ぶ(http://scikit-learn.org/stable/modules/cross_validation.html)Scikitlearn - クロスバリデーション
マイコード:私はクロスバリデーションで、我々は全体に使用できることを理解
from sklearn.cross_validation import train_test_split
from sklearn.cross_validation import cross_val_score
from sklearn import datasets
from sklearn import svm
iris = datasets.load_iris()
# prepare sets
x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, test_size=0.2, random_state=0)
# create model
clf1 = svm.SVC(kernel='linear', C=1)
# train model
scores = cross_val_score(clf1, x_train, y_train, cv=5)
# accuracy on train data
print("Accuracy: %0.2f (+/- %0.2f)" % (scores.mean(), scores.std() * 2))
# accuracy on yet-unseen data
print clf1.score(x_test, y_test)
scikit docの例のようにトレーニングおよび検証するためのデータセット。クロスバリデーション後にデータにスコアを付ける場合はどうすればよいですか?クロスバリデーションで学習した後、私のモデルは訓練されていると思います。 score()
を使用している間、私はcross_val_predict
が言及されていると私はそれを使用することができますが、私はただの正確さを確認したい一方で、私は(数倍である)CV引数を必要とする理由方法の段落3.1.1.1があるdocに
raise NotFittedError(msg % {'name': type(estimator).__name__})
sklearn.utils.validation.NotFittedError: This SVC instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.
を取得します訓練されたモデル?
私はどんなヒントにも感謝します。
あなたが望むものを決めるには、多くの種類のスコアがあります。あなたはsci kitのラーニングドキュメントをチェックすることができます。しかし、この状況では、クロスバリデーションメトリックをチェックすることができます:http://scikit-learn.org/stable/modules/cross_validation.html、これが役立つことを願っています!@PawelPawel –
'cross_val_score'は渡すモデルオブジェクトを引数としてフィットさせますが、各折りたたみを独立に保つようにコピーを作成します。実際にモデルを実際に手動でフィットさせる必要があります。また、あなたのデータを 'cross_val_score'に渡す前にあなたのデータを訓練とテストセットに分割しないでください。それはあなたのためになります... –
クロス検証の目的が何であるかを理解する必要があります。 *一般化可能なメトリック*、つまり、あなたのモデルは見えないデータに対してどのように実行されますか?あなたは "相互認証を使ってモデルを訓練する"というわけではありません、 –