support score scikit rbf poly machine learn example python machine-learning scikit-learn svm

python - score - svm parameters



Python scikit svm "ValueError: X tiene 62 funciones por muestra; esperando 337 " (1)

Jugando con Python''s scikit SVM Linear Support Vector Classification y me encuentro con un error cuando intento hacer predicciones:

ten_percent = len(raw_routes_data) / 10 # Training training_label = all_labels[ten_percent:] training_raw_data = raw_routes_data[ten_percent:] training_data = DictVectorizer().fit_transform(training_raw_data).toarray() learner = svm.LinearSVC() learner.fit(training_data, training_label) # Predicting testing_label = all_labels[:ten_percent] testing_raw_data = raw_routes_data[:ten_percent] testing_data = DictVectorizer().fit_transform(testing_raw_data).toarray() testing_predictions = learner.predict(testing_data) m = metrics.classification_report(testing_label, testing_predictions)

Raw_data se representa como un diccionario de Python con categorías de tiempos de llegada para varias opciones de viaje y categorías para datos meteorológicos:

{''72_bus'': ''6.0 to 11.0'', ''uber_eta'': ''2.0 to 3.5'', ''tweet_delay'': ''0'', ''c_train'': ''1.0 to 4.0'', ''weather'': ''Overcast'', ''52_bus'': ''16.0 to 21.0'', ''uber_surging'': ''1.0 to 1.15'', ''d_train'': ''17.6666666667 to 21.8333333333'', ''feels_like'': ''27.6666666667 to 32.5''}

Cuando entreno y ajusto los datos de entrenamiento utilizo Dictionary Vectorizer en el 90% de los datos y los convierto en una matriz.

Las etiquetas de prueba proporcionadas se representan como:

[1,2,3,3,1,2,3, ... ]

Es cuando intento usar LinearSVC para predecir que estoy informado:

ValueError: X has 27 features per sample; expecting 46

¿Que me estoy perdiendo aqui? Obviamente es la forma en que encajo y transformo los datos.


El problema es que creas y DictVectorizer diferentes DictVectorizer para entrenar y para probar.

Debe crear y ajustar solo un DictVectorizer utilizando datos de tren y usar el método de transform de este objeto en sus datos de prueba para crear una representación de características de sus datos de prueba.