基于sklearn的决策树python3
来源:互联网 发布:windows pagefile.sys 编辑:程序博客网 时间:2024/06/05 05:47
首先读取数据,使用的是隐形眼镜数据集。进行数据预处理。
import numpy as npfrom sklearn.feature_extraction import DictVectorizerdata = []labels = []with open("lenses.txt") as ifile: for line in ifile: rowDict = {}#data需要是字典形式,因为之后需要使用DictVectorizer()修改字符串数据类型,以便符合DecisionTreeClassifier() tokens = line.strip().split('\t') rowDict['age']=tokens[0]#分割数据,将label与data分开 rowDict['prescript']=tokens[1] rowDict['astigmatic']=tokens[2] rowDict['tearRate']=tokens[3] data.append(rowDict) labels.append(tokens[-1])x = np.array(data)labels = np.array(labels)y = np.zeros(labels.shape)#初始label全为0y[labels =='hard']=1#当label等于这三种属性的话,设置为1。y[labels =='soft']=1vec = DictVectorizer()#转换字符串数据类型dx = vec.fit_transform(x).toarray()
查看数据如下:
调用sklearn的决策树,使用默认参数,即CART。
from sklearn.tree import DecisionTreeClassifierclf=DecisionTreeClassifier()clf.fit(dx,y)
生成的决策树如下:
DecisionTreeClassifier(class_weight=None, criterion=’gini’, max_depth=None,
max_features=None, max_leaf_nodes=None,
min_impurity_decrease=0.0, min_impurity_split=None,
min_samples_leaf=1, min_samples_split=2,
min_weight_fraction_leaf=0.0, presort=False, random_state=None,
splitter=’best’)
查看预测结果,并生成混淆矩阵:
from sklearn.metrics import classification_reportpredictions = clf.predict(dx)print(classification_report(y, predictions))
结果如下:
最后生成决策树:
from sklearn import treetree.export_graphviz(clf,out_file='tree.dot')
将dot文件转为jpg格式:在命令窗口中输入dot -Tjpg tree.dot -o tree.jpg即可。在jupyter notebook查看:
%pylab inlinefrom IPython.display import ImageImage('tree.jpg')
图片如下:
本节结束,下一篇将学习如何实现决策树参数的网格化搜索以及随机森林的实现。
阅读全文
0 0
- 基于sklearn的决策树python3
- 基于sklearn的感知机python3
- 基于python的sklearn库的决策树算法基本实现
- 基于python3-sklearn,Flask 的回归预测系统
- sklearn决策树
- Python3-sklearn
- 基于决策树的模型
- 基于决策树的分类
- 基于sklearn 的auc 计算方法
- sklearn中决策树实现
- sklearn中决策树实现
- 使用 sklearn 实现决策树
- sklearn只决策树
- sklearn之分类决策树
- sklearn之决策树实战
- sklearn 决策树可视化
- 决策树python sklearn 示例
- 【python sklearn】决策树运用
- 一种基于PHP的交互式Typecho反序列化漏洞利用工具
- 贪心策略笔记
- 数据结构及实现
- 常见web错误码 404 500
- Poj2774 Long Long Message
- 基于sklearn的决策树python3
- 动、静态网页服务器软件
- Linux Centos环境下通过LuaSQL访问Oracle数据库
- java基本程序设计 ------java基础
- Prim算法 数组实现
- IO基本的字节字符
- OpenMP的一点使用经验
- 数值型全讲解
- JMX中MBean实现