【学习笔记】CART算法
2024-10-08 23:29:38
1. 背景介绍
CART(Classification and Regression Trees,分类回归树)算法是一种树构建算法,既可以用于分类,也可以用于回归。它的工作原理是:使用二元切分来处理连续型变量。
2. 使用Python构建CART树
2.1 读取数据
#读取文件数据,tab键为分隔符,将每行内容映射成一组浮点数:
def loadDataSet(fileName):
dataMat = []
fr = open(fileName)
#依次读取每一行:
for line in fr.readlines():
#读取数据的规则,line.strip()去掉每行头尾空白,split()通过指定分隔符对字符串进行切片:
curLine = line.strip().split('\t')
#统一数据格式,map()根据提供的函数对指定序列做映射:
fltLine = list(map(float, curLine))
#录入数据,append()依次在列表末尾添加新的对象:
dataMat.append(fltLine)
return dataMat
2.2 切分数据集
#切分数据集,通过数组过滤方式切分为两个子集:
def binSplitDataSet(dataSet, feature, value):#数据集 待切分特征 特征值
#nonzero()返回输入数组中非零元素的索引
#dataSet[:,feature]返回dataSet矩阵中所有行的feature列的值
#nonzero(dataSet[:,feature] > value)[0] = 1,由于索引值数组从两个维度上来描述矩阵索引值,所以第一个数组为行维度,第二个数组为列维度
#mat0 = [1,:]返回矩阵第二行的所有列
#mat1 = [[0,2,4],:]返回矩阵第一、三、四行的所有列
mat0 = dataSet[nonzero(dataSet[:,feature] > value)[0],:]
mat1 = dataSet[nonzero(dataSet[:,feature] <= value)[0],:]
return mat0, mat1
最新文章
- 关于Linux下转换oracle字符集
- h5移动端滑动的细节
- jquery替换URL参数值
- 在eclipse之中使用Junit
- idea修改运行内存
- 启动管理软件服务器时,提示midas.dll错误
- oracle游标循环的嵌套
- rails的字符编码
- jQuery自学笔记(四):jQuery DOM节点操作
- SQL 临时表或表变量替代游标
- SQL Server Alwayson创建代理作业注意事项
- cordova+vue 项目打包成Android(apk)应用
- 实现网络数据提取你需要哪些java知识
- Nginx源代码分析—业务流程
- Vcenter虚拟化三部曲----Vcenter server 5.5安装部署
- 同步网络时间到linux服务器(先修改时区再进行同步网络时间)
- hihocoder1634 Puzzle Game
- (原创)Stanford Machine Learning (by Andrew NG) --- (week 3) Logistic Regression &; Regularization
- HDU - 4333 :Revolving Digits (扩展KMP经典题,问旋转后有多少个不同的数字小于它本身,等于它本身,大于它本身。)
- Hibernate 简易入门教程