Ich implementiere ein SVM-Klassifizierungsproblem mit LIBSVM in Python. Ich habe ein numpy Array bestehend aus 1.0 und -1.0 namens train_labels und die entsprechenden Features in einem anderen numpy Array namens train_data. Da LIBSVM keine numpigen Arrays akzeptiert, wandle ich sie mithilfe des unten stehenden Codes in Listen um.Warum fragt LIBSVM in Python nach Gleitwerten?
train_labels = train_labels.tolist()
train_data = train_data.tolist()
Allerdings, wenn ich sie setzen auf svm_problem wie:
prob = svm_problem(train_labels,train_data)
Ich erhalte dann Fehler
File "C:\Anaconda\lib\site-packages\svm.py", line 109, in __init__
for i, yi in enumerate(y): self.y[i] = yi
TypeError: a float is required
ich schon versucht, sie konvertieren mit train_labels = train_labels.astype(np.float)
zu schweben vor der Konvertierung um aufzulisten aber ich bekomme immer noch den gleichen Fehler.
Die Verwendung der tolist() - Methode zum Konvertieren von numpy-Arrays in Listen vor dem Einfügen in LIBSVM-Befehle funktioniert, wenn ich sie in der Konsole ausprobiert habe.
Weiß jemand, warum ich diesen Fehler bekomme? Und wie kann ich es lösen?
Übrigens benutze ich LIBSVM 3.21 – noobiejp