首页 > 分享 > 决策树完成鸢尾花分类

决策树完成鸢尾花分类

使用决策树完成鸢尾花分类

实验楼项目
https://www.shiyanlou.com/

决策树

决策树是一种特殊的树形结构,一般由节点和有向边组成。

其中,节点表示特征、属性或者一个类。而有向边包含有判断条件。

决策树学习(Decision Tree Learning),亦简称为决策树。

决策树可以用来解决分类或回归问题,分别称之为分类树或回归树。

其中,分类树的输出是一个标量,而回归树的一般输出为一个实数

熵(shāng) 表示随机变量不确定性的度量,熵越大,随机变量的不确定性就越大。

每一个特征针对训练数据集的前后信息变化的影响是不一样的,信息增益越大,即代表这种影响越大。而影响越大,就表明该特征更加重要。

鸢尾花实验 数据集下载地址 https://archive.ics.uci.edu/ml/datasets/iris 12

使用sklearn

我们直接使用 sklearn 这个模块,它里面内置了鸢尾花的学习数据集

# -*- coding: utf-8 -*- from sklearn import datasets # 导入方法类 iris = datasets.load_iris() # 加载 iris 数据集 iris_feature = iris.data # 特征数据 iris_target = iris.target # 分类数据 iris_target # 查看 iris_target """ iris_target array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2]) iris_feature array([[ 5.1, 3.5, 1.4, 0.2], # 一个样本,四个特征 [ 4.9, 3. , 1.4, 0.2], [ 4.7, 3.2, 1.3, 0.2], 。。。。。。。 """

12345678910111213141516171819202122232425

scikit-learn 已经将花的原名称进行了转换,其中 0, 1, 2 分别代表 Iris Setosa, Iris Versicolour 和 Iris Virginica。

scikit-learn 还为我们提供了训练集和数据集的方法

from sklearn.model_selection import train_test_split feature_train, feature_test, target_train, target_test = train_test_split(iris_feature, iris_target, test_size=0.33, random_state=42) target_train 12345

feature_train,训练集特征

feature_test,测试集特征

target_train,训练集目标值

target_test ,测试集目标值

test_size 测试集数据占全部数据的百分比,

train_size 来指定训练集所占全部数据的百分比。

一般情况下,我们会将整个训练集划分为 70% 训练集和 30% 测试集。最后的 random_state 参数表示乱序程度.

模型训练及预测

from sklearn.tree import DecisionTreeClassifier # 决策树分类器 dt_model = DecisionTreeClassifier() # 所以参数均置为默认状态 dt_model.fit(feature_train,target_train) # 使用训练集训练模型 predict_results = dt_model.predict(feature_test) # 使用模型对测试集进行预测 12345

DecisionTreeClassifier() 模型方法中也包含非常多的参数值。例如:

criterion = gini/entropy 可以用来选择用基尼指数或者熵来做损失函数。splitter = best/random 用来确定每个节点的分裂策略。支持 “最佳” 或者“随机”。max_depth = int 用来控制决策树的最大深度,防止模型出现过拟合。min_samples_leaf = int 用来设置叶节点上的最少样本数量,用于对树进行修剪。

我们可以将预测结果和测试集的真实值分别输出,对照比较。

print('predict_results:', predict_results) print('target_test:', target_test) 12

内置方法,查看精准度

from sklearn.metrics import accuracy_score print(accuracy_score(predict_results, target_test)) 123

相关知识

决策树可视化:鸢尾花数据集分类(附代码数据集)
鸢尾花分类与直方图、散点图的绘制及可视化决策树
Python语言基于CART决策树的鸢尾花数据分类
决策树对鸢尾花数据的处理实践
对鸢尾花进行分类预测
基于决策树构建鸢尾花数据的分类模型并绘制决策树模型
机器学习算法之决策树实现鸢尾花数据分类
基于机器学习的鸢尾花数据集的三分类算法的实现 C++
【机器学习小实验5】基于决策树和随机森林的鸢尾花种类预测
【python数据挖掘课程】十九.鸢尾花数据集可视化、线性回归、决策树花样分析

网址: 决策树完成鸢尾花分类 https://m.huajiangbk.com/newsview746321.html

所属分类:花卉
上一篇: = 和 == 的优先级
下一篇: 用int[] arr=new i