概述
1. 实验目标
学习决策树的CART算法
2 研究流程图
3.理论学习部分:
3.1 概述
决策树(decision tree)是功能强大而且相当受欢迎的分类和预测方法,它是一种有监督的学习算法,以树状图为基础,其输出结果为一系列简单实用的规则,故得名决策树。决策树就是一系列的if-then语句,决策树可以用于分类问题,也可以用于回归问题。本文主要讨论分类决策树。
决策树模型基于特征对实例进行分类,它是一个树状结构。决策树的优点是可读性强,分类速度快。学习决策树时,通常采用损失函数最小化原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。
3.2 算法
3.3基尼指数
3.4.CART生成算法:
输入:训练数据集D,停止计算的条件;
输出:CART决策树
根据训练数据集,从根节点开始,递归敌对每个结点进行以下的操作,构建二叉决策树:
3.5.CART剪枝算法:
输入:CART算法生成的决策数T0;
输出:最优决策树Tα
4实践部分
4.1.导入包
4.2.数据处理:
读取“skulls.csv”数据集,存储为my_data.
变量声明:
·X 是 特征矩阵(Feature Matrix) (my_data中的数据)
·使用 removeColumns 函数
·y 是响应向量(target)
·使用 targetAndtargetNames 函数
·targetNames 作为响应向量名称(target names)
·使用 targetAndtargetNames Function
·featureNames 是特征矩阵列名称
·使用 getFeatureNames Function
创建了一个函数响应y:
targetAndtargetNames(numpyArray, targetColumnIndex)
输入输出为下:
定义函数: removeColumns(DataFame, column)
该函数产生一个输出并需要两个输入。
1: DataFame(my_data)
2: 我们想要移除的列的编号。
getFeatureNames 是获取特定列的属性名称的函数 ,该函数产生一个输出并需要两个输入:
·第一输入: 一个DataFrame。我们正在使用的DataFrame是my_data.
·第二输入:整数值(顺序无关紧要)代表我们想要包含的列。
4.3拟合预测:
①设置参数:
·现在train_test_split将返回4个不同的参数。
X_trainset,X_testset,y_trainset,y_testset
·train_test_split将需要参数:
X,y,test_size = 0.3,random_state = 3。
②创建一个名为skullsTree的DecisionTreeClassifier实例。
在分类器内部,指定 criterion="entropy" ,以便我们可以看到每个节点的信息增益。
③训练数据并拟合
④预测
⑤检测精度
5练习
5.1代码:
from sklearn.datasets import load_iris
iris=load_iris()
from sklearn.model_selection import train_test_split
X_trainset, X_testset, y_trainset, y_testset = train_test_split(iris.data, iris.target, test_size=0.3, random_state=7)
from sklearn.preprocessing import StandardScaler###数据标准化
nor=StandardScaler()
X_trainset=nor.fit_transform(X_trainset)
X_testset=nor.fit_transform(X_testset)
from sklearn.tree import DecisionTreeClassifier
Tree = DecisionTreeClassifier(criterion="entropy")
Tree.fit(X_trainset,y_trainset)
y_predict=Tree.predict(X_testset)
from sklearn import metrics
print("Tree's Accuracy: %.2f" % metrics.accuracy_score(y_testset,y_predict))
5.2输出结果:
Tree's Accuracy: 0.91
5.3结论:
模型性能为0.91
6体会:
最后
以上就是唠叨小懒虫为你收集整理的机器学习实验——决策树的全部内容,希望文章能够帮你解决机器学习实验——决策树所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复