我正在尝试重现示例 here 但使用 RandomForestClassifer

我看不到如何转换这部分代码

# 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)

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

但我明白了



有解决方法吗?

最佳答案

那么您应该知道 decision_function 用于什么。它仅与 SVM 分类器一起使用,原因是它给出了数据点与分隔数据的超平面的距离,而当您使用 RandomForestClassifier 进行时,它没有任何意义。您可以使用 RFC 支持的其他方法。如果您想获得分类数据点的概率,可以使用 predict_proba

这是支持的 functions 的引用

只是提一下 RFC 确实支持 oob_decision_function ,这是对您的训练集的现成估计。

所以只需更换你的线路 -

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

或者
y_score = classifier.fit(X_train, y_train).predict(X_test)

关于python - OnevsrestClassifier 和随机森林,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38437845/

10-12 22:21