决策树实现预测是否购买点电脑

Python机器学习的库:scikit-learn
  • 简单高效的数据挖掘和机器学习分析

  • 对所有用户开放,根据不同需求高度可重用性

  • 基于Numpy, SciPy和matplotlib(如果大家需要关于数据分析方面的笔记,可查看公众号以前的文章,有什么好的学习经验或者技术可与作者取得联系,加入[码龙社]技术交流群,一起学习,共同进步)

  • 开源,商用级别:获得 BSD许可

这里就用上一篇文章的案例

这里写图片描述

文档: http://scikit-learn.org/stable/modules/tree.html

这里仅截取核心代码,全部代码已上传相关微信群

for row in reader:
    # 取每一行最后一个值,即Class_buys_computer的值
    labelList.append(row[len(row)-1])
    # 对每一行进行取特征值,从age到credit_rating取值
    rowDict = {}
    for i in range(1, len(row)-1):
        rowDict[headers[i]] = row[i]
    featureList.append(rowDict)

对表格数据进行取值后,需要将数据格式化成决策树函数所能识别的格式

# 实例DictVectorizer对象
vec = DictVectorizer()
# 转化成需要的格式,及所有特征进行矩阵化
dummyX = vec.fit_transform(featureList) .toarray()

将结果写入到dot文档中

# 可视化模型
with open("allElectronicInformationGainOri.dot", 'w') as f:
    f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(), out_file=f)

到这一步,可以说已经训练成功了,现在我添加一个新人,让机器自动学习,判断他到底是买还是不买电脑

oneRowX = dummyX[0, :]
print("oneRowX: " + str(oneRowX))

newRowX = oneRowX

# 将第一个人的数据的第一个值和第三个值修改,age改为middle_aged
# 将年轻人变位中年人
newRowX[0] = 1
newRowX[2] = 0
print("newRowX: " + str(newRowX))

predictedY = clf.predict(newRowX)
print("predictedY: " + str(predictedY))

判断结果:

[1]

那么,呵呵,这位顾客就会买,如果你现在是电脑商城的小姐姐,知道怎么做了吧?

微信公众号首发,欢迎关注,可进相关群,互相学习,共同进步!

这里写图片描述

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值