【发布时间】:2021-12-04 09:25:39
【问题描述】:
我正在为讲座准备成本敏感分类的演示,我很困惑为什么 scikit-learn 的 DecisionTreeClassifier 的 class_weight='balanced' 属性似乎根本没有任何效果。
数据集有 4521 个实例,有 4000 个“否”值和 521 个“是”值。我正在使用 70/30 的训练/测试拆分,使用此代码构建和拟合模型:
clf = DecisionTreeClassifier(criterion='entropy',random_state=42,class_weight='balanced')
clf.fit(X_train, y_train)
我也尝试为类属性值设置特定的权重。
一个典型的没有平衡的混淆矩阵是:
[[1076 109]
[ 105 67]]
一个典型的混淆矩阵与平衡是:
[[1108 77]
[ 112 60]]
不仅平衡似乎没有效果,而且在这些情况下,允许随机选择测试用例,“是”的召回变得更糟。我觉得我缺少一些非常简单和明显的东西。有人可以帮忙吗?
【问题讨论】:
标签: python decision-tree imbalanced-data