Sklearn versuchen, zu konvertieren string-Liste zu schwimmt
Ich versuche, eine sklearn.svm.SVC(kernel="linear")
- Algorithmus arbeiten. Mein X ist ein array gemacht mit [misc.imread(each).flatten() for each in filenames]
und meine y2 ist ein Teil einer Liste aus strings wie ["A","1","4","F"..]
.
Wenn ich versuche clf.fit(X,y2)
, sklearn versucht meine konvertieren string-Liste in den Wagen und schlägt fehl, werfen ValueError: could not convert string to float
. Wie kann ich dieses Problem lösen?
EDIT: Upgrade sklearn 0,15 das problem gelöst.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es eine helper-Klasse in scikit-learn, die sich um diese schön, es heißt
sklearn.preprocessing.LabelEncoder
:Um zurück zu Ihrem ursprünglichen labels (z.B. nach der Klassifizierung ungesehenen Daten mit
SVC
), verwenden Sie dasinverse_transform
vonLabelEncoder
zur Wiederherstellung der string Etiketten:Weisen Sie eine eindeutige ganze Zahl, um jede eindeutige Zeichenfolge label. Ich gehe davon aus, dass Ihre
y2
variable enthält mehrere Instanzen jeder Klasse.Also vielleicht sieht es mehr wie:
Nun, Sie könnten etwas tun wie:
Für
y2
oben, so ergibt sich: