CART(Classification And Regression Trees, 分类回归树) 的树构建算法。该算法既可以用于分类还可以用于回归。
做分类工作时,采用 GINI 值作为节点分裂的依据;回归时,采用样本的最小方差作为节点的分裂依据。
监督学习、生成模型、多类分类/回归
特点:
使用先验知识得到后验概率,由期望风险最小化得到后验概率最大化。
场景举例:情感分析、消费者分类
优点:
小规模数据集表现好,适合多分类
对于在小数据集上有显著特征的相关对象,朴素贝叶斯方法可对其进行快速分类
缺点:
需要条件独立假设,会牺牲一定准确率,分类性能不一定高
适用数据类型:
标称型数据
1.概念
2. 基本思路
2.1 伪代码
- 找到数据集切分的最佳位置,函数 chooseBestSplit() 伪代码大致如下:
1 | 对每个特征: |
- 树构建算法,函数 createTree() 伪代码大致如下:
1 | 找到最佳的待切分特征: |
2.2 模型特点
模型特点
分类树,回归树
学习策略
正则化的极大似然估计
学习的损失函数
对数似然损失
学习方法
特征选择,生成,剪枝
3. 使用
3.1 一般流程
收集数据:采用任意方法收集数据。
准备数据:需要数值型数据,标称型数据应该映射成二值型数据。
分析数据:绘出数据的二维可视化显示结果,以字典方式生成树。
训练算法:大部分时间都花费在叶节点树模型的构建上。
测试算法:使用测试数据上的R^2值来分析模型的效果。
使用算法:使用训练处的树做预测,预测结果还可以用来做很多事情。
3.2 调参
4. 代码实现
4.1 CART树核心算法
1 | # 返回每一个叶子结点的均值 |
4.2 sklearn实现
1 | # 引入必要的模型和库 |
4.3 《机器学习实战》(python3.x)
第九章 树回归
5. 补充
- 优化点
- 证明
- 参考:
- 李航 《统计学习方法》
- 周志华《机器学习》
- ApacheCN