python决策树sklearn.tree、graphviz

这里写图片描述
根据天气的好坏、是否是周末、是否促销来判断销量的高低,对此使用决策树来决策
数据预处理

import pandas as pd
filename = 'B:\pycharm\DataMining\data\sales_data.xls'
data = pd.read_excel(filename, index_col='No')
data[data == u'好'] = 1
data[data == u'是'] = 1
data[data == u'高'] = 1
data[data != 1] = -1
#print(data)
x = pd.DataFrame(data.iloc[:, :3].astype(int))
#x = data.iloc[:, :3].values.astype(int) 
print(x)
y = pd.DataFrame(data.iloc[:, 3].astype(int))
print(y)

注意的是需要保留表头
建立决策树,采用的是基于信息熵的分析模型

from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy') #建立决策树模型,基于信息熵
dtc.fit(x, y)

决策树可视化

from sklearn.tree import export_graphviz #可视化决策树
name = 'B:\pycharm\DataMining\data\\tree.dot'
with open(name, 'w') as f:
    f = export_graphviz(dtc, feature_names=x.columns, out_file=f)

使用graphviz将dot文件转化为png文件
这里写图片描述
打开png文件
这里写图片描述
最上面的参与决策的标签(Weekend? Sale?)
entropy是基于ID3算法的信息增益
samples是这个决策下的样本总数目
values是一个pairs:表示的是销量低的数据和销量高的数据的数目

猜你喜欢

转载自blog.csdn.net/weixin_36372879/article/details/80981691