web-dev-qa-db-fra.com

Python / Scikit-Learn - Ne peut pas gérer le mélange de multiclasses et continu

J'essaie d'adapter un SGDRegressor à mes données, puis de vérifier l'exactitude. L'ajustement fonctionne bien, mais les prédictions ne sont pas dans le même type de données (?) Que les données cibles d'origine, et j'obtiens l'erreur

ValueError: Can't handle mix of multiclass and continuous

Lors de l'appel de print "Accuracy:", ms.accuracy_score(y_test,predictions).

Les données ressemblent à ceci (seulement 200 000 + lignes):

Product_id/Date/product_group1/Price/Net price/Purchase price/Hour/Quantity/product_group2
0   107 12/31/2012  10  300 236 220 10  1   108

Le code est comme suit:

from sklearn.preprocessing import StandardScaler
import numpy as np
from sklearn.linear_model import SGDRegressor
import numpy as np
from sklearn import metrics as ms

msk = np.random.Rand(len(beers)) < 0.8

train = beers[msk]
test = beers[~msk]

X = train [['Price', 'Net price', 'Purchase price','Hour','Product_id','product_group2']]
y = train[['Quantity']]
y = y.as_matrix().ravel()

X_test = test [['Price', 'Net price', 'Purchase price','Hour','Product_id','product_group2']]
y_test = test[['Quantity']]
y_test = y_test.as_matrix().ravel()

clf = SGDRegressor(n_iter=2000)
clf.fit(X, y)
predictions = clf.predict(X_test)
print "Accuracy:", ms.accuracy_score(y_test,predictions)

Que dois-je faire différemment? Merci!

16
lte__

La précision est une métrique de classification. Vous ne pouvez pas l'utiliser avec une régression. Voir la documentation pour plus d'informations sur les différentes métriques.

32
BrenBarn

Le score de précision concerne uniquement les problèmes de classification. Pour les problèmes de régression, vous pouvez utiliser: R2 Score, MSE (Mean Squared Error), RMSE (Root Mean Squared Error).

12