分类回归树(Classification And Regression Trees,CART)是一种构造树的监督学习方法。
和ID3决策树作比较:
1. ID3每次直接用最佳特征分割数据,即如果当前特征有4个可能值,那么数据将被分成4份,处理的是标称型数据,不能直接处理连续型数据。CART则利用二元切分来处理连续型变量,每次会找一个最佳特征的阈值,把数据集分成两部分,也就是左子树和右子树。
2. CART使用方差计算来代替香农熵。但目的都是找最佳切分特征。
import numpy as np
'''
CART使用二元切分来处理连续型变量。
回归树和分类树类似,只是叶节点的数据类型是连续型不是离散型
(其实也不是真正的“连续”,切分时仍取决于属性值,只不过数值都是浮点数)
以下是两种CART:回归树,模型树
'''
def loadData(filename):
dataM = []
fr = open(filename)
for line in fr.readlines():
curLine = line.strip().split('\t')
fltLine = map(float, curLine) # 每行存成一组浮点数
dataM.append(fltLine)
return dataM
# ----------------- 回归树(regression tree)每个叶节点包含单个值 -------------------
def regLeaf(data): # 数据不需要再切分时用来生成叶节点(常量)
return np.mea