我是靠谱客的博主 唠叨小懒虫,最近开发中收集的这篇文章主要介绍机器学习实验——决策树,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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体会:

最后

以上就是唠叨小懒虫为你收集整理的机器学习实验——决策树的全部内容,希望文章能够帮你解决机器学习实验——决策树所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部