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!
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.
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).