资源简介
以莺尾花数据为例,里面包含决策树的创建,训练,预测,并画出创建后的决策树图像。已附带iris数据集
代码片段和文件信息
#!/usr/bin/python
# -*- coding:utf-8 -*-
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib as mpl
from sklearn import tree
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
import pydotplus
# 花萼长度、花萼宽度,花瓣长度,花瓣宽度
iris_feature_E = ‘sepal length‘ ‘sepal width‘ ‘petal length‘ ‘petal width‘
iris_feature = u‘花萼长度‘ u‘花萼宽度‘ u‘花瓣长度‘ u‘花瓣宽度‘
iris_class = ‘Iris-setosa‘ ‘Iris-versicolor‘ ‘Iris-virginica‘
if __name__ == “__main__“:
mpl.rcParams[‘font.sans-serif‘] = [u‘SimHei‘]
mpl.rcParams[‘axes.unicode_minus‘] = False
path = ‘..\\8.Regression\\iris.data‘ # 数据文件路径
data = pd.read_csv(path header=None)
x = data[range(4)]
y = pd.Categorical(data[4]).codes
# 为了可视化,仅使用前两列特征
x = x.iloc[: :2]
x_train x_test y_train y_test = train_test_split(x y train_size=0.7 random_state=1)
print y_test.shape
# 决策树参数估计
# min_samples_split = 10:如果该结点包含的样本数目大于10,则(有可能)对其分支
# min_samples_leaf = 10:若将某结点分支后,得到的每个子结点样本数目都大于10,则完成分支;否则,不进行分支
model = DecisionTreeClassifier(criterion=‘entropy‘)
model.fit(x_train y_train)
y_test_hat = model.predict(x_test) # 测试数据
# 保存
# dot -Tpng my.dot -o my.png
# 1、输出
with open(‘iris.dot‘ ‘w‘) as f:
tree.export_graphviz(model out_file=f)
# 2、给定文件名
# tree.export_graphviz(model out_file=‘iris1.dot‘)
# 3、输出为pdf格式
dot_data = tree.export_graphviz(model out_file=None feature_names=iris_feature_E class_names=iris_class
filled=True rounded=True special_characters=True)
graph = pydotplus.graph_from_dot_data(dot_data)
graph.write_pdf(‘iris.pdf‘)
f = open(‘iris.png‘ ‘wb‘)
f.write(graph.create_png())
f.close()
# 画图
N M = 50 50 # 横纵各采样多少个值
x1_min x2_min = x.min()
x1_max x2_max = x.max()
t1 = np.linspace(x1_min x1_max N)
t2 = np.linspace(x2_min x2_max M)
x1 x2 = np.meshgrid(t1 t2) # 生成网格采样点
x_show = np.stack((x1.flat x2.flat) axis=1) # 测试点
print x_show.shape
# # 无意义,只是为了凑另外两个维度
# # 打开该注释前,确保注释掉x = x[: :2]
# x3 = np.ones(x1.size) * np.average(x[: 2])
# x4 = np.ones(x1.size) * np.average(x[: 3])
# x_test = np.stack((x1.flat x2.flat x3 x4) axis=1) # 测试点
cm_light = mpl.colors.ListedColormap([‘#A0FFA0‘ ‘#FFA0A0‘ ‘#A0A0FF‘])
cm_dark = mpl.colors.ListedColormap([‘g‘ ‘r‘ ‘b‘])
y_show_hat = model.predict(x_show) # 预测值
print y_show_hat.shape
print y_show_hat
y_show_hat = y_show_hat.reshape(x1.shape) # 使之与输入的形状相同
print y_show_hat
plt.figure(facecolor=‘w‘)
plt.pcolormesh(x1 x2 y_show_hat cmap=cm_light) # 预测值的显示
plt.scatter(x_test[0] x_test[1] c=y_test.ravel() edgecolors=‘k‘ s=150 zorder=10 cmap=cm_dark marker=‘*‘) # 测试数据
plt.scatter(x[0
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-04-03 20:08 10.RandomForest\
目录 0 2017-04-03 20:08 10.RandomForest\.idea\
文件 459 2017-04-03 13:20 10.RandomForest\.idea\10.RandomForest.iml
文件 687 2017-04-03 13:20 10.RandomForest\.idea\misc.xm
文件 282 2017-04-03 15:50 10.RandomForest\.idea\modules.xm
文件 33260 2017-04-03 15:51 10.RandomForest\.idea\workspace.xm
文件 4872 2017-04-03 13:49 10.RandomForest\10.1.Iris_DecisionTree.py
文件 2620 2017-04-03 14:50 10.RandomForest\10.2.Iris_DecisionTree_Enum.py
文件 1282 2017-02-10 22:47 10.RandomForest\10.3.DecisionTreeRegressor.py
文件 1475 2017-04-03 14:38 10.RandomForest\10.4.MultiOutput_DTR.py
文件 2754 2017-04-03 14:50 10.RandomForest\10.5.Iris_RandomForest_Enum.py
文件 2026 2017-04-03 14:51 10.RandomForest\10.6.Bagging.py
文件 35831808 2016-11-03 12:11 10.RandomForest\graphviz-2.38.msi
文件 5632 2017-04-03 13:48 10.RandomForest\iris.dot
文件 30639 2017-04-03 13:48 10.RandomForest\iris.pdf
文件 567161 2017-04-03 13:48 10.RandomForest\iris.png
相关资源
- STM32F407音频处理代码-Cortex-M4 DSP数字音
- 公司门户网站前端页面
- jianshan pan的图像去模糊代码和文献1
- ffmpeg-win32-v3.2.4.exe
- 《TeeChart应用技术详解》(屈景辉)及
- 雷神的基于libvlc代码
- iocp服务器代码_tct&udp;测试工具
- 基于hog+pca+svm行人检测源码
- 车辆字符识别图片以及识别代码
- 第三次国土调查工作分类图示符号库
- 打砖块工程案例完美版.rar
- Qt词典软件源代码
- 并行算法的设计与分析+第3版+陈国良
- 基于VS2017+opencv3.4.3的立体匹配SGBM与
- JFreeChart 测试代码
- osgRiver: 基于osgOcean的基于河流渲染的
- 代码整洁之道代码整洁之道
- [BUPT]计算导论OJ上机题参考源代码 +
- 东北大学web开发程序设计实践实验报
- 最新CANFestival源码+stm32测试代码+移植
- turbo.zip turbo全套 吴雨霏理论代码 cc
- 畅购商城完整代码实现源码
- TortoiseSVN-1.10.1.28295-x64-svn-1.10.2+简体中
- 基于FPGA的数据采集系统资料齐全,代
- 机器人智能控制工程
- 基于STM32,hal库,使用CubeMX进行开发的
- 我们自己写的浏览器源代码
- 基于DCT算法视频压缩内含实验报告和
- 用128*64液晶显示的数字电压表VHDL程序
- Opencv+VS米粒图像处理实验源代码
评论
共有 条评论