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
iris = datasets.load_iris()

X = iris['data']

y = iris['target']

feature_names = iris.feature_names

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_)
1.0
39/120*np.log2(120/39)+42/120*np.log2(120/42)+39/120*np.log2(120/39)
1.5840680553754911
42/81*np.log2(81/42)+ 39/81*np.log2(81/39)
0.99901027088048133
# 调整大小
plt.figure(figsize=(18,12))
_ = tree.plot_tree(clf,filled=True,feature_names=feature_names)   #绘制树形图 filled调整颜色
plt.savefig('./tree.jpg')
%%time
clf = DecisionTreeClassifier(criterion='gini',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.966666666667
Wall time: 45.9 ms

请添加图片描述

∑ i = 0 n p ( x i ) ∗ ( 1 − p ( x i ) ) \sum_{i = 0}^{n} p(xi)*(1-p(xi)) i=0np(xi)(1p(xi))

# 39/120*(1- 39/120)
39/120*(1 -39/120)*2+42/120*(1-42/120)

0.66625

请添加图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值