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

机器算法验证 Python 随机森林
2022-01-20 07:43:07

我用随机森林拟合了一个带有二进制目标类的数据集。在 python 中,我可以通过 randomforestclassifier 或 randomforestregressor 来完成。

我可以直接从 randomforestclassifier 获得分类,或者我可以先运行 randomforestregressor 并返回一组估计分数(连续值)。然后我可以找到一个截止值来从分数集中推导出预测的类别。两种方法都可以实现相同的目标(即预测测试数据的类别)。

我也可以观察到

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

不同于

randomforestregressor.predict(X_test)

所以我只想确认这两种方法都是有效的,那么在随机森林应用中哪一种更好?

1个回答

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

首先,我真的鼓励您阅读回归与分类的主题。因为在不了解机器学习的情况下使用机器学习会给你带来你不会意识到的错误结果。这很危险......(这有点像问你应该在哪个方向拿着枪,或者这无关紧要

您使用分类器还是回归器取决于您要解决的问题类型。你有一个二元分类问题,所以使用分类器。

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

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

如果您想获得某个点属于某个类的“概率”(请注意这些不一定是经过良好校准的概率),请训练一个分类器(以便它学会对数据进行分类)然后使用.predict_proba(),然后预测概率。

在这里提一下: .predict 与 .predict_proba (对于分类器!)
.predict 只接受 .predict_proba 输出并将所有内容更改为低于某个阈值(通常为 0.5)的 0 分别为高于该阈值的 1。

备注:当然,在内部,除了“最后一层”等之外,它们是相同的!尽管如此,将它们(或者更好的是它们正在解决的问题)视为完全不同的!