基于决策树的鸢尾花分类

简介: 原文链接:https://www.jianshu.com/p/c09beac9f955本文经过潇洒坤重新编辑,感谢原文作者的辛勤工作。1.数据集Iris(鸢尾花)数据集是多重变量分析的数据集。

原文链接:https://www.jianshu.com/p/c09beac9f955
本文经过潇洒坤重新编辑,感谢原文作者的辛勤工作。

1.数据集

Iris(鸢尾花)数据集是多重变量分析的数据集。
数据集包含150行数据,分为3类,每类50行数据。
每行数据包括4个属性:Sepal Length(花萼长度)、Sepal Width(花萼宽度)、Petal Length(花瓣长度)、Petal Width(花瓣宽度)。可通过这4个属性预测鸢尾花属于3个种类的哪一类。
样本数据局部截图:

img_6d28d040e19ed7ed2c87d8b48d20b8c7.png
Iris.png

获取150个样本数据的3种方法:
1.完整的样本数据Iris.csv文件下载链接: https://pan.baidu.com/s/16N0ivGWFrmc73ustPLWPZA 密码: ugun
2.数据集链接: https://gist.github.com/curran/a08a1080b88344b0c8a7
3.在sklearn的skleanrn库中自带了iris数据集,可以导入sklearn库的datasets文件,调用datasets文件中的load_iris方法就可以获得iris数据集。
本文采用的是第3种方法,直接从sklearn库中获取数据。

2.决策树分类代码

第1-3行代码导入库;第5-7行代码获取样本的特征x和分类结果y;
第9行代码划分训练集和测试集,比如关键字参数test_size=0.3表示测试集占总比例30%,如下图所示:


img_6304bb279882f2a092a378043ff942f3.png
image.png

第11-14行代码是模型训练,第11行实例化DecisionTreeClassifier对象赋值给变量dt_model,第12行将训练集的特征和分类结果交给模型进行训练,使用的是DecisionTreeClassifier对象的fit方法。第13行使用DecisionTreeClassifier的predict方法对测试集进预测。第14行使用DecisionTreeClassifier对象的score方法对测试结果评分,需要填入2个参数:第1个参数是测试集的特征test_x,第2个参数是测试集的分类结果test_y。
最后3行代码打印预测结果,通过观察类别实际值test_y和类别预测值predict_y可以知道每个样本的预测情况。

from sklearn.tree import DecisionTreeClassifier
from sklearn import datasets
from sklearn.cross_validation import train_test_split

iris = datasets.load_iris()
x = iris.data
y = iris.target

train_x, test_x, train_y, test_y = \
    train_test_split(x, y, test_size=0.3, random_state=3)

dt_model = DecisionTreeClassifier()
dt_model.fit(train_x, train_y)
predict_y = dt_model.predict(test_x)
score = dt_model.score(test_x,test_y)

print(predict_y)
print(test_y)
print('得分:',score)

上面一段代码的运行结果:

[0 0 0 0 0 2 1 0 2 1 1 0 1 1 2 0 1 2 2 0 2 2 2 1 0 2 1 1 2 1 0 0 2 1 0 0 2
0 2 1 2 1 0 0 2]
[0 0 0 0 0 2 1 0 2 1 1 0 1 1 2 0 1 2 2 0 2 2 2 1 0 2 2 1 1 1 0 0 2 1 0 0 1
0 2 1 2 1 0 0 2]
得分: 0.933333333333

目录
相关文章
|
2天前
|
机器学习/深度学习 算法 C++
选择适合的SVM模型进行分类任务
选择SVM模型时需考虑数据线性可分性、问题类型(二分类或多分类)、优化算法(凸优化优势)及性能指标(如准确率、召回率)。数据非线性可分时可使用核技巧。针对多分类,有OVO、OVA和DAG方法。同时,利用交叉验证评估模型泛化能力。
13 4
|
2天前
|
机器学习/深度学习
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
R语言用逻辑回归、决策树和随机森林对信贷数据集进行分类预测
|
6月前
|
机器学习/深度学习 数据挖掘
knn 线性回归 决策树房价预测实战
knn 线性回归 决策树房价预测实战
50 0
|
机器学习/深度学习 Python
【统计学习方法】K近邻对鸢尾花(iris)数据集进行多分类
【统计学习方法】K近邻对鸢尾花(iris)数据集进行多分类
157 0
|
11月前
|
机器学习/深度学习 数据可视化
随机森林和KNN分类结果可视化(Sklearn)
随机森林和KNN分类结果可视化(Sklearn)
193 0
|
12月前
|
机器学习/深度学习 算法
连载|GBDT如何进行回归和分类
连载|GBDT如何进行回归和分类
|
数据采集 机器学习/深度学习 Python
【统计学习方法】朴素贝叶斯对鸢尾花(iris)数据集进行训练预测
【统计学习方法】朴素贝叶斯对鸢尾花(iris)数据集进行训练预测
261 0
【统计学习方法】朴素贝叶斯对鸢尾花(iris)数据集进行训练预测
|
机器学习/深度学习 Python
【统计学习方法】感知机对鸢尾花(iris)数据集进行二分类
【统计学习方法】感知机对鸢尾花(iris)数据集进行二分类
563 0
【统计学习方法】感知机对鸢尾花(iris)数据集进行二分类
|
机器学习/深度学习 Python
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
231 0
【统计学习方法】线性可分支持向量机对鸢尾花(iris)数据集进行二分类
|
机器学习/深度学习 数据挖掘 Python
六、分类问题和逻辑回归
六、分类问题和逻辑回归
六、分类问题和逻辑回归