【问题标题】:reducing FP rate scikit-learn random forest降低 FP 率 scikit-learn 随机森林
【发布时间】:2015-09-16 03:51:45
【问题描述】:

我正在使用 scikit-learn 随机森林分类器,我想通过将成功投票所需的树木数量从 50% 以上增加到 75% 来降低 FP 率,但在阅读了文档后我不是确定如何做到这一点。有没有人有什么建议。 (我认为应该有办法做到这一点,因为根据文档,分类器的预测方法是根据多数票决定的)。感谢所有帮助,谢谢!

【问题讨论】:

  • predict_proba() >= 0.75?
  • @hiqbal 不要忘记接受我的回答,以防它适合你...... :)

标签: machine-learning scikit-learn random-forest


【解决方案1】:

假设您现在有一个分类器,它在所有估计器中使用 75% 的一致性。如果它得到一个新样本,并且有 51%-49% 的几率支持一个类,你想让它做什么?

之所以使用 50% 规则,是因为您提出的决策规则可能会导致分类器说“我无法预测这些样本的标签”的情况。

可以做的,就是包装分类器的结果,然后做任何你想做的计算 -

from sklearn.ensemble import RandomForestClassifier
from sklearn import datasets
import numpy as np

def my_decision_function(arr):
    diff = np.abs(arr[:,0]-arr[:,1])
    arr [ diff < 0.5 ] = [-1,-1] # if >0.5, one class has more than 0.75 prediction
    return arr


X, y = datasets.make_classification(n_samples=100000, n_features=20,
                                n_informative=2, n_redundant=2)
train_samples = 100  # Samples used for training the models

X_train = X[:train_samples]
X_test = X[train_samples:]
y_train = y[:train_samples]
y_test = y[train_samples:]

clf = RandomForestClassifier().fit(X_train,y_train)
print my_decision_function(clf.predict_proba(X_train))

现在,对于至少一个类别而言,每个样本低于 0.75% 的样本将具有 [-1,-1] 预测。如果您使用多标签分类,则需要进行一些调整,但我希望这个概念是清晰的。

【讨论】:

    猜你喜欢
    • 2015-03-28
    • 2012-12-20
    • 2013-04-26
    • 2016-06-22
    • 2015-08-28
    • 2016-01-21
    • 2012-03-10
    • 2017-03-26
    • 2017-12-10
    相关资源
    最近更新 更多