Ich verwende derzeit Scikit Learn mit dem folgenden Code:
clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0,
class_weight='auto')
und passen Sie dann einen Datensatz mit 7 verschiedenen Beschriftungen an und sagen Sie ihn voraus. Ich habe eine seltsame Ausgabe. Unabhängig davon, welche Kreuzvalidierungstechnik ich verwende, wird das vorhergesagte Etikett auf dem Validierungssatz immer Etikett 7 sein.
Ich probiere einige andere Parameter aus, einschließlich des vollständigen Standardparameters one ( svm.SVC()
), aber solange die Kernel-Methode, die ich verwende, rbf
anstelle von poly
oder linear
funktioniert, funktioniert sie einfach nicht, während sie für poly
und wirklich gut funktioniert linear
.
Außerdem habe ich bereits versucht, Zugdaten anstelle von Validierungsdaten vorherzusagen, und sie passen perfekt.
Hat jemand diese Art von Problem schon einmal gesehen und weiß, was hier los ist?
Ich schaue mir meine Klassenverteilung nie im Detail an, aber ich weiß, dass es ungefähr 30% von ihnen sein sollten, 7, 14% sind 4.
Ich versuche sogar eine manuelle 1-gegen-Rest-Implementierung und sie ist immer noch nicht hilfreich.