sklearn笔记17决策树的使用

完整代码 sklearn代码12 2-决策树的使用及原理

import numpy as np

from sklearn.tree import DecisionTreeClassifier

from sklearn import datasets

import matplotlib.pyplot as plt
%matplotlib inline

from sklearn import tree

from sklearn.model_selection import train_test_split

在这里插入图片描述

X,y = datasets.load_iris(True)

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size = 0.2,random_state = 1024)
# 数据清洗,即X,y

# 特征工程

# 使用模型进行训练

# 模型参数调优

# sklearn所有算法封装好了
# 直接用,使用规则如下

clf = DecisionTreeClassifier(criterion='entropy')

clf.fit(X_train,y_train)

y_ = clf.predict(X_test)

from sklearn.metrics import accuracy_score

accuracy_score(y_test,y_)

在这里插入图片描述

# 调整大小
plt.figure(figsize=(12,9))
_ = tree.plot_tree(clf)   #绘制树形图

在这里插入图片描述

# 调整大小
plt.figure(figsize=(12,9))
_ = tree.plot_tree(clf,filled=True)   #绘制树形图 filled调整颜色

在这里插入图片描述

39/120*np.log2(120/39)+42/120*np.log2(120/42)+39/120*np.log2(120/39)

在这里插入图片描述
在这里插入图片描述

42/81*np.log2(81/42)+ 39/81*np.log2(81/39)
# 调整大小
plt.figure(figsize=(18,12))
_ = tree.plot_tree(clf,filled=True,feature_names=feature_names)   #绘制树形图 filled调整颜色
plt.savefig('./tree.jpg')

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

clf = DecisionTreeClassifier(criterion='entropy',max_depth=1)  #深度为1

clf.fit(X_train,y_train)

y_ = clf.predict(X_test)

from sklearn.metrics import accuracy_score

print(accuracy_score(y_test,y_))

plt.figure(figsize=(18,12))

_ = tree.plot_tree(clf,filled=True,feature_names=feature_names)

在这里插入图片描述
深度变深,准确率提升

# 书的深度变浅,树的裁剪

clf = DecisionTreeClassifier(criterion='entropy',max_depth=2)  #深度为1

clf.fit(X_train,y_train)

y_ = clf.predict(X_test)

from sklearn.metrics import accuracy_score



print(accuracy_score(y_test,y_))

plt.figure(figsize=(18,12))

_ = tree.plot_tree(clf,filled=True,feature_names=feature_names)

在这里插入图片描述
在这里插入图片描述

裂分标准

在这里插入图片描述
那个值最大,所含信息量越大,优先选择波动大的作为裂分条件
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
属性列表
在这里插入图片描述

由上可以看出波动性只是一个参考标准

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值