美文网首页机器学习和人工智能入门
决策树实例(机器学习)

决策树实例(机器学习)

作者: 言雍 | 来源:发表于2017-09-10 15:55 被阅读0次

决策树

决策树是一个类似于流程图的树结构:其中,每个内部节点表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶节点代表类或类分布。树的最顶层是根节点。


决策树优点
  • 直观、便于理解,小规模数据集有效,对中间值的确实不敏感,可以处理不相关特征数据
    决策树缺点
  • 处理连续变量不好
  • 类别较多时,错误增加的比较快
  • 可规模性一般
预备知识
  1. 信息熵(不了解的同学,点击(http://www.jianshu.com/p/ba7199bdb36b
  2. Python

准备

安装Python机器学习的库:scikit - learn
特征:

  • 简单高效的数据挖掘和机器学习分析
  • 对所用用户开放,根据不同需求高度可重用性
  • 基于Numpy、SciPy和matplotlib
  • 开源,商用级别:获的BSD许可
    覆盖问题领域:
  • 分类、回归、聚典、降维、模型选择、预处理
    温馨提示:windows下如果安装不起 Numpy、Scipy。请参考(http://blog.csdn.net/u011177305/article/details/52334023),记得一定要下载和自己使用的python版本和操作系统对应的whl文件(scipy‑0.19.1‑cp35‑cp35m‑win_amd64.whl,cp35表示Python3.5版本)

例子:

数据的准备(格式为.csv):


决策树Python代码:
需要将特征转化为0,1.例如特征age中youth为0,则除了youth,其它的都为1.好在sklearn为我们提供了preprocessing方法可以自动转化,省去了我们自己转的步骤。信息增益最大的为根节点,以此类推。

from sklearn.feature_extraction import DictVectorizer
import csv
from sklearn import preprocessing
from sklearn import tree
from sklearn.externals.six import StringIO

#决策树实例
decisionTreeData = open('C:\\Users\\hxjd009\\Desktop\\decisionTree.csv',encoding='utf-8')
reader = csv.reader(decisionTreeData)
headers = next(reader)
print(headers)
# for row in reader:
#     print(row)

featureList = []
lableList = []
for rows in reader:
    lableList.append(rows[len(rows) - 1])#获取标签
    print(lableList)
    rowDict = {}
    for i in range(1,len(rows) - 1):
        rowDict[headers[i]] = rows[i]#获取特征
    featureList.append(rowDict)
# print(featureList)

#特征的装换
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()
# print("dummyX:",dummyX)
# print(vec.get_feature_names())
# print(str(lableList))

#结果的转换(转化为0,1)
lb = preprocessing.LabelBinarizer()
dummyY = lb.fit_transform(lableList)
# print("dummyY:",dummyY)

clf = tree.DecisionTreeClassifier(criterion='entropy')
clf = clf.fit(dummyX,dummyY)
# print("clf:"+str(clf))

#dot文件转化为pdf文件
with open('E:\Arduino.dot','w') as f:
    f = tree.export_graphviz(clf,feature_names = vec.get_feature_names(),out_file = f)

#输入数据预测
oneRowX = dummyX[0]
print("newRowX:",oneRowX)

newRowX = oneRowX
newRowX[0] = 0
newRowX[1] = 0

# print("newRowX:"+str(newRowX))
# print("shape:"+str(newRowX.shape))
# print("reshape:"+str(newRowX.reshape(1, -1)))
predictedY = clf.predict(newRowX.reshape(1, -1))
print("predictedY:"+str(predictedY))

相关文章

  • 决策树实例(机器学习)

    决策树 决策树是一个类似于流程图的树结构:其中,每个内部节点表示在一个属性上的测试,每个分支代表一个属性输出,而每...

  • [机器学习]决策树

    决策树 @(技术博客)[机器学习, 决策树, python] 学习决策树首先要搞清楚决策树是什么(what),在弄...

  • 6.machine_learning_Decision_Tree

    1 机器学习决策树 1.1机器学习中的决策树模型 ① 树模型不用做scaling ② 树模型不太需要做离散化 ③ ...

  • 决策树学习

    决策树学习的适用问题 通常决策树学习最适合具有以下特征的问题: 实例是由“属性-值”对(pair)表示的。实例是用...

  • 机器学习 - 决策树算法[一]

    1 决策树模型与学习 1.1 决策树模型 决策树定义: 分类决策树模型是一种描述对实例进行分类的树形结构。决策树由...

  • 机器学习 | 决策树及若干基础问题

    决策树 1.构造决策树 学习决策树就是学习一系列if/else问题,是我们能够以最快的速度得到正确答案。在机器学习...

  • ID3、C4.5、CART决策树生成算法总结

    简介 决策树模型是最常见的机器学习方法之一,也是入门机器学习必须掌握的知识。决策树模型呈现树形结构,在分类问题中,...

  • 机器学习之决策树(Decision Tree)及其Python

    机器学习之决策树(Decision Tree)及其Python代码实现

  • 机器学习笔记(6):决策树

    本文来自之前在Udacity上自学机器学习的系列笔记。这是第6篇,介绍了监督学习中的决策树模型。 决策树 决策树是...

  • 机器学习决策树—Apple的学习笔记

    决策树学习的目标:根据给定的训练数据集构建一个决策树模型,使它能够对实例进行正确的分类。 决策树学习的本质:从训练...

网友评论

    本文标题:决策树实例(机器学习)

    本文链接:https://www.haomeiwen.com/subject/suvzjxtx.html