如何针对非对称损失调整决策树?

数据挖掘 决策树
2022-03-02 20:50:53

假设我们使用决策树来预测银行客户是否可以偿还信贷。所以这是一个二分类问题。现在我们可以犯两个错误:

  • α错误:客户可以退还信用,但我们预测他不能。
  • β错误:客户无法偿还信用,但我们预测他可以。

现在我们知道了β错误的代价是 123.4 倍α错误。但是我们只有一组给定的数据。在这个集合中,我们有n1=10000偿还信用的客户和n2=100没有的客户。

如何调整决策树的训练以考虑以下事实β错误更昂贵?

(注意:这是一个学习决策树的理论问题。我知道神经网络等其他分类器,我也知道集成。但是,我只想知道这里的决策树。)

2个回答

从理论上讲,决策树算法指定了使每个节点处的类之间的分离最大化的特征和阈值。这可以通过解决与子节点处的熵相关的优化问题来完成。您可以通过在优化问题中包含错误分类成本来修改此优化问题,以便算法将偏向于最昂贵的类

您正在寻找的是“成本矩阵”。有两种选择:

  1. 尝试实现成本矩阵。( http://mlwiki.org/index.php/Cost_Matrix ) 这很容易。
  2. 第二个是更复杂但有效的一个。将成本矩阵应用于决策树算法的学习步骤。而不是使用 gini/entropy 计算您的成本作为拆分级别的信息增益。

据我所知,在许多流行的机器学习包中,没有那种类型的成本学习算法。(sklearn,插入符号等)。我不得不自己写,仍然没有上传到github。

然而,在下面的 github repo 中有一个漂亮的工作,看看它。它还具有集成实现:http: //albahnsen.github.io/CostSensitiveClassification/