基尼不纯度简介 - Gini Impurity

博客仅提供了一个链接https://www.cnblogs.com/jointech/p/12970187.html ,未包含其他关键信息。
### 基尼不纯度的计算公式 基尼不纯度Gini Impurity)是决策树算法中常用的分裂准则之一,用于评估数据集的混乱程度。它的核心思想是测量一个随机选中的样本被错误标记的概率。对于具有 \( C \) 类别的数据集,基尼不纯度的计算公式如下: \[ G = 1 - \sum_{i=1}^{C} p_i^2 \] 其中: - \( G \) 表示基尼不纯度- \( p_i \) 是第 \( i \) 类别在当前节点所占的比例。 如果某个类别比例较大,则该节点的基尼不纯度会较低;反之,当各类别分布均匀时,基尼不纯度达到最大值[^1]。 #### 加权基尼不纯度 在实际应用中,特别是在构建决策树的过程中,需要考虑不同子节点的影响。此时可以通过加权方式综合各子节点的基尼不纯度。假设某父节点分为两个子节点,分别包含 \( N_1 \) 和 \( N_2 \) 条记录,则整体基尼不纯度可表示为: \[ G_{\text{total}} = \frac{N_1}{N} G_1 + \frac{N_2}{N} G_2 \] 这里 \( N = N_1 + N_2 \),\( G_1 \) 和 \( G_2 \) 分别对应两子节点的基尼不纯度[^3]。 #### 示例代码实现 以下是基于 Python 的简单实现,展示如何计算单个节点以及整个分裂后的加权基尼不纯度: ```python def gini_impurity(labels): from collections import Counter count = Counter(labels) total = len(labels) impurity = 1 for label in count: prob = count[label] / total impurity -= prob ** 2 return impurity # 测试数据 labels_node1 = ['A', 'A', 'B'] labels_node2 = ['B', 'B', 'B'] gini_node1 = gini_impurity(labels_node1) gini_node2 = gini_impurity(labels_node2) weighted_gini = (len(labels_node1) * gini_node1 + len(labels_node2) * gini_node2) / (len(labels_node1) + len(labels_node2)) print(f"Gini Node 1: {gini_node1}") print(f"Gini Node 2: {gini_node2}") print(f"Weighted Gini: {weighted_gini}") ``` 此代码片段展示了如何针对具体的数据标签列表计算基尼不纯度及其加权形式[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值