我应该选择随机森林回归器还是分类器?


11

我通过随机森林对具有二进制目标类的数据集进行拟合。在python中,我可以通过randomforestclassifier或randomforestregressor做到这一点。

我可以直接从randomforestclassifier获得分类,也可以先运行randomforestregressor并获得一组估计分数(连续值)。然后,我可以找到一个临界值,以从分数集中得出预测的类别。两种方法都可以达到相同的目标(即预测测试数据的类别)。

我也可以观察到

randomforestclassifier.predict_proba(X_test)[:,1]) 

与...不同

randomforestregressor.predict(X_test)

因此,我只想确认两种方法均有效,然后在随机森林应用中哪种方法更好?


1
我的直接反应是您应该使用分类器,因为这正是它的构建目的,但是我不确定100%会带来很大的不同。使用回归器就像使用线性回归而不是逻辑回归-可以,但是在许多情况下效果不佳。我可能会得到一个正确的答案,但不会持续一天左右。
彼得·埃利斯

Answers:


7

使用分类器。不,它们都不都是有效的。

首先,我真的鼓励您阅读回归与分类这一主题。因为在不了解ML的情况下使用ML会给您错误的结果,而您不会意识到。那是非常危险的……(有点像问你应该握住枪的那条路,或者这没关系

使用分类器还是回归器取决于要解决的问题类型。您有二进制分类问题,因此请使用分类器。

我可以先运行randomforestregressor并获得一组估计的概率。

没有。您不会从回归中获得概率。它只是尝试“外推”您提供的值(在这种情况下,只有0和1)。这意味着大于1或小于0的值作为回归输出是完全有效的,因为它不希望只有两个离散值作为输出(称为分类!),而是连续的值。

如果您想要某个点属于某个类的“概率”(请注意,这些概率不必经过很好地校准),则可以训练一个分类器(以便它学习数据进行分类),然后使用.predict_proba(),然后预测概率。

只需在这里提及:.predict与.predict_proba(用于分类器!).
predict只是获取.predict_proba输出,并将所有内容分别更改为低于某个阈值(通常为0.5)的0分别为高于该阈值的1。

备注:当然,在内部,除了“最后一层”等以外,它们是完全相同的!仍然,将它们(或更好地解决他们要解决的问题)视为完全不同!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.