【学习笔记】CART算法

1. 背景介绍

CART(Classification and Regression Trees,分类回归树)算法是一种树构建算法,既可以用于分类,也可以用于回归。它的工作原理是:使用二元切分来处理连续型变量。

 

2. 使用Python构建CART树

2.1 读取数据

 1 #读取文件数据,tab键为分隔符,将每行内容映射成一组浮点数:
 2 def loadDataSet(fileName):
 3     dataMat = []
 4     fr = open(fileName)
 5     #依次读取每一行:
 6     for line in fr.readlines():
 7         #读取数据的规则,line.strip()去掉每行头尾空白,split()通过指定分隔符对字符串进行切片:
 8         curLine = line.strip().split('\t')
 9         #统一数据格式,map()根据提供的函数对指定序列做映射:
10         fltLine = list(map(float, curLine))
11         #录入数据,append()依次在列表末尾添加新的对象:
12         dataMat.append(fltLine)
13     return dataMat

2.2 切分数据集

 1 #切分数据集,通过数组过滤方式切分为两个子集:
 2 def binSplitDataSet(dataSet, feature, value):#数据集 待切分特征 特征值
 3     #nonzero()返回输入数组中非零元素的索引
 4     #dataSet[:,feature]返回dataSet矩阵中所有行的feature列的值
 5     #nonzero(dataSet[:,feature] > value)[0] = 1,由于索引值数组从两个维度上来描述矩阵索引值,所以第一个数组为行维度,第二个数组为列维度
 6     #mat0 = [1,:]返回矩阵第二行的所有列
 7     #mat1 = [[0,2,4],:]返回矩阵第一、三、四行的所有列
 8     mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:]
 9     mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:]
10     return mat0, mat1

 

posted on 2020-02-12 12:52  可尼  阅读(358)  评论(0编辑  收藏  举报

导航