#-*- coding: utf-8 -*-
import pandas as pd
inputfile = '../data/sales_data.xls'
data = pd.read_excel(inputfile, index_col = u'序号')
data[data == u'好'] = 1
data[data == u'是'] = 1
data[data == u'高'] = 1
data[data != 1] = -1
print(data)
print("-------------------------------------")
x = data.iloc[:,:3].as_matrix().astype(int)
y = data.iloc[:,3].as_matrix().astype(int)
print("x=",x)
print("y=",y)
from sklearn.tree import DecisionTreeClassifier as DTC
dtc = DTC(criterion='entropy')#熵
dtc.fit(x, y)#训练模型
from sklearn.tree import export_graphviz
x = pd.DataFrame(x)
from sklearn.externals.six import StringIO
x = pd.DataFrame(x)
with open("tree.dot", 'w') as f:
f = export_graphviz(dtc, feature_names = x.columns, out_file = f)
print("OK")
使用的数据集为:
| 序号 | 天气 | 是否周末 | 是否有促销 | 销量 |
| 1 | 坏 | 是 | 是 | 高 |
| 2 | 坏 | 是 | 是 | 高 |
| 3 | 坏 | 是 | 是 | 高 |
| 4 | 坏 | 否 | 是 | 高 |
| 5 | 坏 | 是 | 是 | 高 |
| 6 | 坏 | 否 | 是 | 高 |
| 7 | 坏 | 是 | 否 | 高 |
| 8 | 好 | 是 | 是 | 高 |
| 9 | 好 | 是 | 否 | 高 |
| 10 | 好 | 是 | 是 | 高 |
| 11 | 好 | 是 | 是 | 高 |
| 12 | 好 | 是 | 是 | 高 |
| 13 | 好 | 是 | 是 | 高 |
| 14 | 坏 | 是 | 是 | 低 |
| 15 | 好 | 否 | 是 | 高 |
| 16 | 好 | 否 | 是 | 高 |
| 17 | 好 | 否 | 是 | 高 |
| 18 | 好 | 否 | 是 | 高 |
| 19 | 好 | 否 | 否 | 高 |
| 20 | 坏 | 否 | 否 | 低 |
| 21 | 坏 | 否 | 是 | 低 |
| 22 | 坏 | 否 | 是 | 低 |
| 23 | 坏 | 否 | 是 | 低 |
| 24 | 坏 | 否 | 否 | 低 |
| 25 | 坏 | 是 | 否 | 低 |
| 26 | 好 | 否 | 是 | 低 |
| 27 | 好 | 否 | 是 | 低 |
| 28 | 坏 | 否 | 否 | 低 |
| 29 | 坏 | 否 | 否 | 低 |
| 30 | 好 | 否 | 否 | 低 |
| 31 | 坏 | 是 | 否 | 低 |
| 32 | 好 | 否 | 是 | 低 |
| 33 | 好 | 否 | 否 | 低 |
| 34 | 好 | 否 | 否 | 低 |
y = data.iloc[:,3].as_matrix().astype(int)#指的是取第4列数据
本文介绍了一种利用决策树算法预测销售业绩的方法。通过对天气、是否为周末及是否有促销活动等因素进行编码,并使用决策树分类器进行训练,最终生成了用于预测销量高低的决策树模型。
8490

被折叠的 条评论
为什么被折叠?



