2016-07-18 9 views
0

Ich versuche, das Beispiel bei http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html aber unter Verwendung von RandomForestClassifer zu reproduzieren.OnevsrestClassifier und zufällige Gesamtstruktur

Ich kann nicht sehen, wie man diesen Teil des Codes

# Learn to predict each class against the other 
classifier = OneVsRestClassifier(svm.SVC(kernel='linear', probability=True, 
           random_state=random_state)) 
y_score = classifier.fit(X_train, y_train).decision_function(X_test) 

Ich versuchte

# Learn to predict each class against the other 
classifier = OneVsRestClassifier(RandomForestClassifier()) 
y_score = classifier.fit(X_train, y_train).decision_function(X_test) 

aber ich

AttributeError: Base estimator doesn't have a decision_function attribute. 
erhalten zu verwandeln Gibt es eine Abhilfe?

+0

Warum die downvote? – eleanora

Antwort

3

Nun, Sie sollten wissen, was decision_function für verwendet wird. Es wird nur mit einem SVM-Klassifizierungsgrund verwendet, da es die Entfernung Ihrer Datenpunkte von der Hyperebene angibt, die die Daten trennt, während es bei Verwendung eines RandomForestClassifier keinen Sinn macht. Sie können andere Methoden verwenden, die von RFC unterstützt werden. Sie können predict_proba verwenden, wenn Sie die Wahrscheinlichkeiten Ihrer klassifizierten Datenpunkte ermitteln möchten. Hier

ist die Referenz für die unterstützten functions

Nur RFC zu erwähnen tun unterstützt oob_decision_function, die die aus der Tasche Schätzung auf Ihrem Trainingssatz ist.

So ersetzen Sie einfach Ihre Linie wie -

y_score = classifier.fit(X_train, y_train).predict_proba(X_test) 

oder

y_score = classifier.fit(X_train, y_train).predict(X_test) 
+0

Vielen Dank. – eleanora

Verwandte Themen