我正在尝试重现示例 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/