了解CART中分类的基尼系数和回归树

举报
码乐 发表于 2025/07/20 07:39:22 2025/07/20
【摘要】 1 简介CART(Classification and Regression Tree)既可以用于分类任务(Classification Tree),也可以用于回归任务(Regression Tree)。两者的关键区别在于 目标变量的类型:分类树:目标变量是类别(离散的)。回归树:目标变量是数值(连续的)。 2 使用的例子下面用两个简单明了的例子来分别说明:分类树(Classificati...

1 简介

CART(Classification and Regression Tree)既可以用于分类任务(Classification Tree),也可以用于回归任务(Regression Tree)。两者的关键区别在于 目标变量的类型:

分类树:目标变量是类别(离散的)。

回归树:目标变量是数值(连续的)。

2 使用的例子

下面用两个简单明了的例子来分别说明:

  • 分类树(Classification Tree)例子:

问题:根据“天气”和“温度”来预测是否适合出去玩。

  天气  温度  是否出去
  晴 	高 	否
  阴 	高 	是
  雨 	低 	是
  雨 	高 	否

目标变量:是否出去玩(是/否)是类别型,所以用分类树。

CART如何处理:

按照基尼指数(Gini)或信息增益来分裂节点。

比如第一步可能用“天气”这个特征来分割样本,使得“是/否”这两个类别尽可能纯。

在 CART 分类树中,基尼系数(Gini impurity) 是一种衡量数据集“纯度”的指标。CART 使用它来选择最优的特征和分裂点,从而构建分类树。

3 基尼系数(Gini impurity)

基尼系数(也叫基尼不纯度)描述的是一个样本被随机分类到某一类的错误概率。其公式如下:

基尼值越小,数据越“纯”,即大多数样本属于同一类。

举个例子:

假设一个节点里有 10 个样本,其中:

6 个是“是”(正类);

4 个是“否”(负类)。

如果这个节点中全是“是”或全是“否”,那么:

Py = 6/10 = 0.6   pn = 4/10 = 0.4

Gini=1−(0.6^2+0.4^2)=1−(0.36+0.16)=0.48

如果这个节点中全是“是”或全是“否”,那么:

		Gini=1−1^2 =0

说明完全纯。

  • CART 如何使用 Gini 指数

CART 会尝试在每一个候选分裂点计算加权后的 Gini impurity,然后选择 Gini impurity 最小的那个分裂点作为最优分裂。

步骤如下:

  对每一个特征进行尝试所有可能的分裂点;

  对每个候选分裂,把数据划分为左子集 𝐷𝐿  和右子集 DR;

  计算该分裂的加权 Gini impurity 

4 回归树(Regression Tree):

问题:根据“面积”和“卧室数量”来预测房价。

    面积(平方米) 卧室数 房价(万元)
    100 2 120
    80  1 90
    150 3 200
    130 3 180

目标变量:房价(一个连续的数值),所以用回归树。

CART如何处理:

按照最小均方误差(MSE)来选择分裂点。

比如可能第一个分裂点是“面积 > 120”,把房价分成两组,每组的房价差异最小。

5 小结

    特征  		分类树 							回归树
    目标变量  	类别型(如 是/否)  				连续型(如 房价)
    分裂标准  	基尼指数 / 信息增益 				均方误差(MSE)
    叶节点输出 	类别  							平均值(预测值)
    典型应用场景  客户是否流失、是否批准贷款 		房价预测、销量预测

选择 Gini_split 最小的作为该节点的最优分裂。
CART 分类树通过计算每个分裂点的 加权基尼系数,选择最能提高节点纯度的分裂点,从而构建决策树。

【版权声明】本文为华为云社区用户翻译文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容, 举报邮箱:cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。