2017-04-06 5 views
0

私はKクロス検証でsklearnクラシファイアの精度を見たいと思います。クロスバリデーションを行わなくても、通常、正確さを見積もることができます。しかし、どのようにしてこのコードを改善して、クロスバリデーションを行い、同時にStandardScalerを適用することができますか?skitlearnでの相互検証とスタンダード化

from sklearn.datasets import load_iris 
from sklearn.cross_validation import train_test_split 
from sklearn.neighbors import KNeighborsClassifier 
from sklearn import metrics 
from sklearn.cross_validation import cross_val_score 
from sklearn.preprocessing import StandardScaler 
from sklearn import svm 
from sklearn.pipeline import Pipeline 
iris = load_iris() 
X = iris.data 
y = iris.target 
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=4) 
pipe_lrSVC = Pipeline([('scaler', StandardScaler()), ('clf', svm.LinearSVC())]) 
pipe_lrSVC.fit(X_train, y_train) 
y_pred = pipe_lrSVC.predict(X_test) 
print(metrics.accuracy_score(y_test, y_pred)) 

答えて

2

単にcross_val_scoreに推定器の入力としてパイプラインを使用します。

cross_val_score(pipe_lrSVC, iris.data, iris.target, cv=5) 
+0

あなたの迅速な答えてくれてありがとう非常に多くの –

関連する問題