2017-01-18 4 views
0

Ich erhalte eine Fehlermeldung in dem folgenden Code, wenn ich einen Sitz auf dem SVC tun:Warum muss K-Cross-Validierung zuerst passen?

Diese SVC-Instanz noch nicht eingebaut ist. Nennen Sie "fit" mit geeigneten -Argumenten, bevor Sie diese Methode verwenden.

Wenn ich dies tun:

clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train) 

Warum ich einen Anfall tun müssen, bevor sie eine Kreuzvalidierung zu tun?

import numpy as np 
from sklearn import cross_validation 
from sklearn import datasets 
from sklearn import svm 

iris = datasets.load_iris() 

# Split the iris data into train/test data sets with 40% reserved for testing 
X_train, X_test, y_train, y_test = cross_validation.train_test_split(iris.data, iris.target, 
                    test_size=0.4, random_state=0) 

# Build an SVC model for predicting iris classifications using training data 
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train) 

# Now measure its performance with the test data 
clf.score(X_test, y_test) 

# We give cross_val_score a model, the entire data set and its "real" values, and the number of folds: 
scores = cross_validation.cross_val_score(clf, iris.data, iris.target, cv=5) 

Antwort

0

Sie nicht. Ihr cross_val_score läuft ohne Anpassung einwandfrei.

Sie müssen passen, bevor Sie den Punktestand ausführen.

0

Der Grund, warum Sie diesen Fehler sehen, ist, weil Sie Ihre Schätzer (clf) fragen, die Genauigkeit seiner Klassifikationen zu berechnen (mit clf.score-Methode), bevor es eigentlich weiß, wie die Klassifizierung zu tun. Um zu lehren, clf wie die Klassifizierung zu tun, müssen Sie es durch den Aufruf der fit Methode zu trainieren. Das ist es, was die Fehlermeldung Ihnen zu sagen versucht.

score im obigen Sinne hat nichts mit Kreuzvalidierung, nur Genauigkeit zu tun. Die cross_val_score Hilfsmethode, die Sie verwenden, kann einen untrainierten Schätzer nehmen und eine Kreuz-validierte Punktzahl für Ihre Daten berechnen. Dieser Helfer trainiert den Schätzer für Sie und deshalb müssen Sie fit nicht aufrufen, bevor Sie diesen Helfer verwenden.

Weitere Informationen finden Sie unter documentation for cross-validation.

Verwandte Themen