Predecir datos de entrenamiento en sklearn.

Yo uso SVM de scikit-learn así:

clf = svm.SVC() clf.fit(td_X, td_y) 

Mi pregunta es cuando uso el clasificador para predecir la clase de un miembro del conjunto de entrenamiento, ¿podría el clasificador estar equivocado incluso en la implementación de scikit-learns? (por ejemplo, clf.predict(td_X[a])==td_Y[a] )

Related of "Predecir datos de entrenamiento en sklearn."

Sí definitivamente, ejecute este código por ejemplo:

 from sklearn import svm import numpy as np clf = svm.SVC() np.random.seed(seed=42) x=np.random.normal(loc=0.0, scale=1.0, size=[100,2]) y=np.random.randint(2,size=100) clf.fit(x,y) print(clf.score(x,y)) 

La puntuación es de 0,61, por lo que casi el 40% de los datos de entrenamiento están mal clasificados. Parte del motivo es que aunque el kernel predeterminado es 'rbf' (que en teoría debería poder clasificar perfectamente cualquier conjunto de datos de entrenamiento, siempre que no tenga dos puntos de entrenamiento idénticos con tags diferentes), también hay Regularización para reducir el sobreajuste. El regularizador predeterminado es C=1.0 .

Si ejecuta el mismo código que el anterior pero cambia clf = svm.SVC() a clf = svm.SVC(C=200000) , obtendrá una precisión de 0.94.