Ich versuche, einige Daten mit SGDClassifier zu modellieren, aber aus irgendeinem Grund bekomme ich schreckliche Genauigkeit. Ich bin ziemlich neu, also verstehe ich nicht wirklich warum.SciKit Learn - Schlechte SGDClassifier Genauigkeit
Hier ist mein Code:
from sklearn.preprocessing import StandardScaler
import numpy as np
from sklearn.linear_model import SGDClassifier
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()
scaler = StandardScaler()
scaler.fit(X)
X = scaler.transform(X)
X_test = scaler.transform(X_test)
clf = SGDClassifier(loss="hinge", alpha=0.01, n_iter=1000, fit_intercept=True)
clf.fit(X, y)
predictions = clf.predict(X_test)
print "Accuracy:", ms.accuracy_score(y_test,predictions)
Die Genauigkeit gedruckt ist etwa 0,38, was wirklich schlecht ist. Meine Daten sehen so aus:
Product_id/Date/product_group1/Price/Net price/Purchase price/Hour/Quantity/product_group2/KPI
0 107 12/31/2012 10 300 236 220 10 1 108 16
Und ich habe 200 000 + Zeilen von Daten.
Was soll ich sonst tun? Die Daten sind skaliert, so dass dies kein Problem darstellen sollte, und das Modell sollte auch nach 1000 Iterationen konvergieren. Vielen Dank!
Vielleicht sind Ihre Daten schwer vorherzusagen. Was lässt Sie glauben, dass Sie eine höhere Genauigkeit erreichen können? – BrenBarn