赞
踩
在我翻译学习这篇Random Forests for Complete Beginners的时候,对基尼系数和它相关的一些中文表达充满了疑问,查了一些资料以后,完成了这篇文章。其中基尼杂质系数的计算和解释参考了A Simple Explanation of Gini Impurity。
如果你查看scikit-learn中DecisionTreeClassifier的文档,你会看到这样的参数:
RandomForestClassifier文档里也谈到了gini。那么两者都提到并作为默认标准的基尼系数是什么?
你在不同的地方往往能看到关于基尼的不同名词,我查询了一大堆文献,发现它们的使用遵循以下规律:
训练决策树包括将当前数据分成两个分支。假设我们有以下数据点:
现在,我们的分支里有5个蓝点和5个绿点。
如果我们在x=2处进行划分:
这很明显是个完美划分,因为它把数据集分成了两个分支:
但如果我们在x=1.5处进行划分呢?
这个划分把数据集分成了两个分支:
很明显,这种划分更糟糕,但我们如何量化呢?
解决方法就是基尼杂质系数。
我们来计算整个数据集的基尼杂质系数。
如果随机选择一个数据点并随机给它分类,我们错误分类数据点的概率是多少?
我们的选择 | 实际的分类 | 可能性 | 对错 |
---|---|---|---|
蓝 | 蓝 | 25% | ✓ |
红 | 蓝 | 25% | ❌ |
蓝 | 红 | 25% | ❌ |
红 | 红 | 25% | ✓ |
我们只在上面的两个事件中对其进行了错误的分类。因此,我们的错误概率是25% + 25% = 50%,也即基尼杂质系数是0.5.
公式
G = ∑ i = 1 C p ( i ) ∗ [ 1 − p ( i ) ] G = \sum_{i=1}^C {p(i)*[1-p(i)]} G=i=1∑Cp(i)∗[1−p(i)]
上面这个例子计算式即为:
G = p ( 1 ) ∗ [ 1 − p ( 1 )
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。