使用基尼指数的决策树

Decision Tree using Gini index

我正在尝试实现基于伪的决策树算法。

但是我不明白为什么第一个节点要是outlook

Outlook的gini指数不应该是1-(5/14)^2-(5/14)^2-(4/14)^2 = 0.663265306, 和湿度的基尼系数 =1-(4/14)^2-(6/14)^2-(4/14)^2 = 0.653061224?

由于gini指数代表了属性的不纯性,因此选择gini指数较低的属性更为合理。

是我查找基尼指数的方法有误还是我还应该知道其他事情?

数据

Rainy   Hot High    FALSE   No
Rainy   Hot High    TRUE    No
Overcast    Hot High    FALSE   Yes
Sunny   Mild    High    FALSE   Yes
Sunny   Cool    Normal  FALSE   Yes
Sunny   Cool    Normal  TRUE    No
Overcast    Cool    Normal  TRUE    Yes
Rainy   Mild    High    FALSE   No
Rainy   Cool    Normal  FALSE   Yes
Sunny   Mild    Normal  FALSE   Yes
Rainy   Mild    Normal  TRUE    Yes
Overcast    Mild    High    TRUE    Yes
Overcast    Hot Normal  FALSE   Yes
Sunny   Mild    High    TRUE    No

Here is the pseudo code of Decision Tree that I'm building

Here is the answer

基尼系数是衡量纯度的指标。对于两个 classes,均分的最小值为 0.5。随着 class 中任何一个的比例增加,基尼系数也会增加。当基尼系数为 1 时,该集合在一个或另一个中是 100% 纯的 class.

决策树的目的是最大化 children 的纯度。毕竟,这就是模型 "learns" 识别 classes 的方式——通过将它们分开。因此,您需要 较大的 基尼指数,而不是较小的。根据您的计算,这将是 Outlook 而不是湿度。