项目1 鸢尾花数据分类

数据集采用经典的iris数据集,分类方法使用基于基尼系数的决策树。

首先引入需要的包和数据集

from sklearn.datasets import load_iris
#加载iris数据集
from sklearn.model_selection import train_test_split
#这个包可以将数据集划分为训练集和测试集
import matplotlib.pyplot as plt
#用于画图
from sklearn.tree import DecisionTreeClassifier
#用来进行决策树构造
from sklearn.tree import plot_tree
#用于绘制决策树

加载数据集并对数据集进行分类

iris = load_iris()

X = iris.data
# data是所有的4个特征数据的值

y = iris.target
# y是标签

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=40)
#划分函数中,test_size是训练集占整个数据集的比例,random_state是随机数种子,该值不同时随机划分的结果不同

构造最大深度为2的决策树,函数中可以指定criterion='entropy' 或 'gini' 未输入默认使用基尼系数。

clf=DecisionTreeClassifier(max_depth=2)
clf.fit(X_train,y_train)

查看决策树在训练集和测试集上的分类准确度

print("the precision in train set is {:.4f}".format(clf.score(X_train, y_train)))
print("the precision in test set is {:.4f}".format(clf.score(X_test, y_test)))

结果如下:

the precision in train set is 0.9524
the precision in test set is 0.9333

对构造的决策树进行绘制:

plt.figure()
clf = DecisionTreeClassifier(max_depth=2).fit(X_train, y_train)
plot_tree(clf, filled=True)
plt.title("Decision tree trained on train set")
plt.show()

结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值