OnevsrestClassifier和随机森林

3

我正在尝试使用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属性。

有解决方法吗?

1个回答

10

你应该知道decision_function的用途。它仅与SVM分类器一起使用,因为它可以输出数据点与分离数据的超平面之间的距离,而当你使用RandomForestClassifier时它没有意义。你可以使用其他被RFC支持的方法。如果想要获取分类数据点的概率,则可以使用predict_proba

这是支持的函数的参考文献。

值得一提的是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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接