gpt4 book ai didi

python - 如何修改 Scikit-Learn 决策树算法中的分割标准(基尼/熵)?

转载 作者:行者123 更新时间:2023-12-01 09:30:38 28 4
gpt4 key购买 nike

我使用决策树算法来解决二元分类问题,目标是最大限度地减少分类的误报(最大化阳性预测值)(诊断工具的成本非常高) 。

有没有办法在基尼/熵分割标准中引入权重来惩罚误报错误分类?

Here例如,修改后的基尼指数为:

enter image description here

因此我想知道是否有办法在Scikit-learn中实现它?

编辑

使用class_weight产生了以下结果:

from sklearn import datasets as dts
iris_data = dts.load_iris()

X, y = iris_data.features, iris_data.targets
# take only classes 1 and 2 due to less separability
X = X[y>0]
y = y[y>0]
y = y - 1 # make binary labels

# define the decision tree classifier with only two levels at most and no class balance
dt = tree.DecisionTreeClassifier(max_depth=2, class_weight=None)

# fit the model, no train/test for simplicity
dt.fit(X[:55,:2], y[:55])

绘制决策边界和树蓝色为正 (1):

enter image description here

虽然超过了少数群体(或更珍贵):

dt_100 = tree.DecisionTreeClassifier(max_depth=2, class_weight={1:100})

enter image description here

最佳答案

决策树分类器支持class_weight论证。

在两类问题中,这可以完全解决你的问题。通常这用于解决不平衡问题。对于两个以上的类,不可能提供单独的标签(据我所知)

关于python - 如何修改 Scikit-Learn 决策树算法中的分割标准(基尼/熵)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50002654/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com