【Python机器学习】——决策树-sklearn【某互金公司决策树开发实例详解图文结合】

采用的方法见【Python机器学习】——决策树-sklearn这里不讲方法了,理论基础都在这里
这个属于粗略版,然后大家想看详版可以关注一下wx公众号叫:小猪课堂,文章标题一样,那个发布的是我有道笔记上记录的详版

from sklearn.feature_extraction import DictVectorizer
#DictVetorizer 用于传入构造dummy_array,也可以使用pandas.get_dummies()来实现
import pandas as pd
import numpy as np
import csv#调用csv模块
from sklearn import tree#调用决策树模块
from sklearn import preprocessing#调用预处理模块

看一下数据集样子(列名过于敏感隐去)
【Python机器学习】——决策树-sklearn【某互金公司决策树开发实例详解图文结合】_第1张图片
将特征、数据和label都筛选出来

feature=np.array(data.columns[1:-1])
dummy_y=np.array(data.values[:,-1])
dummy_x=np.array(data.values[:,1:-1])
print(feature)
print(dummy_y)
print(dummy_x)

【Python机器学习】——决策树-sklearn【某互金公司决策树开发实例详解图文结合】_第2张图片

clf = tree.DecisionTreeClassifier(criterion='entropy',min_samples_leaf=5,max_depth=5)#这个采用的信息增益来划分节点的
clf.fit(dummy_x,dummy_y )

【Python机器学习】——决策树-sklearn【某互金公司决策树开发实例详解图文结合】_第3张图片
生成决策树的效果有三种
需要使用的包

import pydotplus
import matplotlib.pyplot as plt
#from PIL import Image#这个是做网页截图的不用这个
from IPython.display import Image 

一、直接就生成pdf

import pydotplus 
dot_data = tree.export_graphviz(clf, out_file=None) 
graph = pydotplus.graph_from_dot_data(dot_data) 
path=r"D:\learning\test1.pdf"
graph.write_pdf(path) 

二、保存成.dot文件 然后本地转化.PDF文件

with open('allElectronicInformationGainOri.dot','w')as f: 
#allElectronicInformationGainOri.dot 这个是自己定义的名字,或者说是要生成的名字
	f=tree.export_graphviz(clf,feature_names=feature,out_file=f)

三、直接再jupyter上生成决策树效果图

dot_data = tree.export_graphviz(clf, out_file=None, 
                                feature_names=list,  
#                          class_names=iris.target_names,  
                         filled=True, rounded=True,  
                         special_characters=True)  
graph = pydotplus.graph_from_dot_data(dot_data)
Image(graph.create_png())

同时还有一个就是解决决策树中有中文的问题,但是我一直都没解决
不过推荐两篇文章可以给大家参考一下
文章1:graphviz画决策树图中文乱码问题解决
文章2:解决Graphviz无法显示决策树中文问题

喜欢给个赞吧,谢谢啦~
更多内容VX关注【小猪课堂】公众号,你想要的干货都在这里

你可能感兴趣的:(python机器学习)