0

Ich versuche, y_scores = OneVsRestClassifier (SVM.SVC()). Predict() auf Datensätze wie Iris und Titanic .Das Problem ist, dass ich bin immer y_scores als kontinuierliche values.like für Iris-Datensatz ich erhalte:OneVsRestClassifier (svm.SVC()). Predict() gibt kontinuierliche Werte

[[ -3.70047231 -0.74209097 2.29720159] 
[ -1.93190155 0.69106231 -2.24974856] 
..... 

ich die OneVsRestClassifier für andere Klassifizierer Modelle wie knn, Random, naive bayes und sie geben entsprechende Ergebnisse in Form bin mit der

[[ 0 1 0] 
[ 1 0 1]... 

usw. auf dem Iris-Dataset. Bitte helfen.

+0

Code bearbeiten Sie Ihre Frage bitte ein minimales Arbeitsbeispiel bitte? – ncfirth

Antwort

0

Nun, das ist einfach nicht wahr.

>>> from sklearn.multiclass import OneVsRestClassifier 
>>> from sklearn.svm import SVC 
>>> from sklearn.datasets import load_iris 
>>> iris = load_iris() 
>>> clf = OneVsRestClassifier(SVC()) 
>>> clf.fit(iris['data'], iris['target']) 
OneVsRestClassifier(estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0, 
    kernel='rbf', max_iter=-1, probability=False, random_state=None, 
    shrinking=True, tol=0.001, verbose=False), 
      n_jobs=1) 
>>> print clf.predict(iris['data']) 
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 
1 1 1 2 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
2 2] 

vielleicht genannt Sie decision_function statt (die Ausgabe Dimension entsprechen würde, wie vorhersagen soll einen Vektor zurück, keine Matrix). Dann gibt SVM vorzeichenbehaftete Entfernungen zu jeder Hyperebene zurück, was ihre Entscheidungsfunktion aus mathematischer Perspektive ist.