基于sklearn的决策树python3
2017-11-27 20:00
567 查看
首先读取数据,使用的是隐形眼镜数据集。进行数据预处理。
查看数据如下:
调用sklearn的决策树,使用默认参数,即CART。
生成的决策树如下:
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’)
查看预测结果,并生成混淆矩阵:
结果如下:
最后生成决策树:
将dot文件转为jpg格式:在命令窗口中输入dot -Tjpg tree.dot -o tree.jpg即可。在jupyter notebook查看:
图片如下:
本节结束,下一篇将学习如何实现决策树参数的网格化搜索以及随机森林的实现。
import numpy as np from sklearn.feature_extraction import DictVectorizer data = [] 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全为0 y[labels =='hard']=1#当label等于这三种属性的话,设置为1。 y[labels =='soft']=1 vec = DictVectorizer()#转换字符串数据类型 dx = vec.fit_transform(x).toarray()
查看数据如下:
调用sklearn的决策树,使用默认参数,即CART。
from sklearn.tree import DecisionTreeClassifier clf=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_report predictions = clf.predict(dx) print(classification_report(y, predictions))
结果如下:
最后生成决策树:
from sklearn import tree tree.export_graphviz(clf,out_file='tree.dot')
将dot文件转为jpg格式:在命令窗口中输入dot -Tjpg tree.dot -o tree.jpg即可。在jupyter notebook查看:
%pylab inline from IPython.display import Image Image('tree.jpg')
图片如下:
本节结束,下一篇将学习如何实现决策树参数的网格化搜索以及随机森林的实现。
相关文章推荐
- 基于sklearn的常用分类任务指标Python实现
- [置顶] 【python sklearn】决策树运用
- 基于Python实现的ID3决策树功能示例
- 基于python3-sklearn,Flask 的回归预测系统
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- 使用python+sklearn的决策树方法预测是否有信用风险
- 【Machine Learning】决策树案例:基于python的商品购买能力预测系统
- python基于ID3思想的决策树
- 基于python的sklearn库的决策树算法基本实现
- 基于python的机器学习库Sklearn
- 决策树python sklearn 示例
- 基于sklearn的感知机python3
- 基于python3-sklearn,Flask 的回归预测系统
- n-gram python实现(基于sklearn)
- Python决策树之基于信息增益的特征选择示例
- python进行文本分类,基于word2vec,sklearn-svm对微博性别分类
- 基于信息增益的决策树归纳的Python实现【CD4.5算法】
- selenium常用方法——基于Python
- 使用python基于http下载视频或音频
- Python实现基于POS算法的区块链