机器学习入门文档深度页
基尼不纯度与划分增益
基尼不纯度衡量节点类别混杂,决策树选择降低加权不纯度最多的划分。
学习前需要掌握
背景与问题
树不能只看某个子节点是否纯,还要评估整个划分对父节点的总体改善。
概念定义
Gini=1-类别比例平方和;纯节点为 0。左右子节点的不纯度按样本数加权。
直观理解
好问题应让两边都更“单一”,且不能靠把极少样本分出去制造假象。
核心原理
枚举特征和候选阈值,计算 Gain=父 Gini-子节点加权 Gini,贪心选择最大增益。
数学表达
核心表达
枚举特征和候选阈值,计算 Gain=父 Gini-子节点加权 Gini,贪心选择最大增益。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1统计父类别比例
- 2生成候选阈值
- 3分左右
- 4计算加权 Gini
代码对应位置
示例 1基尼不纯度与划分增益:最小可验证示例:把正文原理映射为可检查的代码行为。
计算与实现步骤
- 1
统计父类别比例
- 2
生成候选阈值
- 3
分左右
- 4
计算加权 Gini
- 5
选择最大 Gain
- 6
递归
代码实现
示例 1
基尼不纯度与划分增益:最小可验证示例
基尼不纯度与划分增益:最小可验证示例
NumPy
example_01.py用途:把正文原理映射为可检查的代码行为。
import numpy as np
def gini(y):
_, counts = np.unique(y, return_counts=True)
p = counts / len(y)
return 1 - np.sum(p**2)
print(gini(np.array([0,0,1,1])))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
把正文原理映射为可检查的代码行为。
y- 目标标签或连续目标值。
Step 1 · 1–6 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
import numpy as np
def gini(y):
_, counts = np.unique(y, return_counts=True)
p = counts / len(y)
return 1 - np.sum(p**2)
print(gini(np.array([0,0,1,1])))预期输出或运行结果
0.5。
常见错误 · 2 条
- 把 Gini 当最终测试指标
- 忽略子节点样本权重
实际应用
- 分类树分裂
- 树结构解释
常见错误
把 Gini 当最终测试指标
忽略子节点样本权重
文档来源
01|数学与数据基础原始文档
学习资料/learning_tech/01_math_data_foundations.md- §7.3 基尼不纯度
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。