获得运行 scikit 的结果和概率学习随机森林

数据挖掘 Python scikit-学习 随机森林 决策树
2022-03-02 00:22:12

我有一个 scikit learn RandomForestClassifier,它返回 0 和 1:

X = [ [2,1,1,1], [2,0,2,1], [3,1,1,1] , [3,1,1,1], [3,1,1,1] ]
y = [ 0, 1, 1, 1, 1 ]

rf = RandomForestClassifier(n_estimators=200, max_depth=5)
rf.fit(X, y)

X_test = [ [2, 0, 1, 0], [2,1,1,1] , [3,1,1,1] ]
y_result = rf.predict(X_test)

我可以重新运行分类器并获取概率而不是替换为的值

y_result = rf.predict_proba(X_test)

但是我怎样才能从 scikit 中学习结果和概率呢?

如果我不能在同一次运行中得到两个结果,那么运行概率并有一个阈值(比如 0.7)是否有意义,如果概率大于阈值,那么结果是 1?

1个回答

我如何从 scikit 中学习结果和概率?

您可以简单地运行两者:

  • 结果将始终保持一致,因为在预测阶段不涉及随机性,仅在训练阶段。
  • 预测所需的计算并不密集,所以我认为运行两次不会有任何重大的效率问题。

运行概率并具有阈值(例如 0.7)是否有意义,如果概率大于阈值,则结果为 1?

你可以,但这不是标准的:在二进制分类中,常规阈值是 0.5(因为如果p(x)>0.5然后p(y)<0.5)。如果您想更加重视精确度或召回率,则使用不同的阈值是有意义的。例如,阈值 0.7 意味着对正例需要更高的置信度,因此预测为正例的实例更少,因此精度更高但召回率更低。