关闭

机器学习(一):决策树算法及使用python构造一个决策树

1585人阅读 评论(0) 收藏 举报
分类:

本文使用python学习机器学习,其中anaconda包很强大,并且使用到scikit-learn这个机器学习的库

首先是第一个算法:决策树算法

一,安装配置python及anaconda,见我另一篇博客。http://blog.csdn.net/qq_32166627/article/details/52301641

二,安装scikit-learn库

三,决策树的理论知识参见网络

四,准备好数据:下图用于预测一个人是否会买电脑,特征有age,income,student,credit_rating,标签就是是否买电脑

该表保存到一个csv文件里面data.csv,可用excel编辑。


五,eclipse创建一个PyDev项目,代码如下:

# _*_ coding: utf-8 _*_

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

allData = open("E:\eclipse_file\Deeplearning\data\decisionTree.csv", "rU")
reader = csv.reader(allData)
headers = next(reader)#3.4版本使用该语法,2.7版本则使用headers=reader.next()
print(headers)#打印文件第一行


featureList = []
lableList = []
for row in reader:
    lableList.append(row[len(row)-1])
    rowDic = {}
    for i in range(1,len(row)-1):
        rowDic[headers[i]] = row[i]
    featureList.append(rowDic)
print("featureList:"+str(featureList))
print("lablelist:"+str(lableList))
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()


print("dummyX:"+str(dummyX))
print("get_feature_names():"+str(vec.get_feature_names()))


lb = preprocessing.LabelBinarizer()
dummyY = lb.fit_transform(lableList)
print("dummyY:"+str(dummyY))


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


with open("DecisionTree_BuyCompute.dot","w") as f:
    f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f)
    
oneRow = dummyX[0]
print("oneRow:"+str(oneRow))
oneRow[0] = 1
oneRow[2] = 0
predictY = clf.predict(oneRow)
print("predictY:"+str(predictY))



0
0
查看评论

Python3《机器学习实战》学习笔记(二):决策树基础篇之让我们从相亲说起

有读者反映,说我上篇文章Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文),太长了。一看那么长,读的欲望都降低了。既然如此,决策树的内容,我就分开讲好了。本篇讨论决策树的原理和决策树的构建,完整实例内容会在下一篇进行讲解。
  • c406495762
  • c406495762
  • 2017-07-21 16:44
  • 8441

机器学习经典算法详解及Python实现--决策树(Decision Tree)

决策树也是最经常使用的数据挖掘算法,决策树分类器就像判断模块和终止块组成的流程图,终止块表示分类结果(也就是树的叶子)。判断模块表示对一个特征取值的判断(该特征有几个值,判断模块就有几个分支)。决策树的生成过程就是一个数据集不断被划分的过程,划分数据集的最大原则是:使无序的数据变的有序。如果一个训练...
  • suipingsp
  • suipingsp
  • 2014-12-14 19:32
  • 49222

用Python开始机器学习(2:决策树分类算法)

从这一章开始进入正式的算法学习。首先我们学习
  • lsldd
  • lsldd
  • 2014-11-18 01:05
  • 60308

决策树原理-python实现

《机器学习实战》 CH3 决策树基本原理与实现。 决策树基本原理可以概括为:通过计算信息增益划分属性集,选择增益最大的属性作为决策树当前节点,依次往下,构建整个决策树。为了计算熵,需要先计算每个属性的信息增益值,通过下面公式计算: 创建数据集: def createDataSet()...
  • liz_zhong
  • liz_zhong
  • 2016-05-24 00:15
  • 3159

决策树原理及Python代码实现

决策树其实就是按节点分类数据集的一种方法。在本文中,我将讨论数学上如何使用信息论划分数据集,并编写代码构建决策树。 创建决策树进行分类的流程如下: (1)    创建数据集 (2)    计算数据集的信息熵 (3)...
  • Flying_sfeng
  • Flying_sfeng
  • 2017-03-16 15:31
  • 6527

决策树原理实例(python代码实现)

决策数(Decision Tree)在机器学习中也是比较常见的一种算法,属于监督学习中的一种。看字面意思应该也比较容易理解,相比其他算法比如支持向量机(SVM)或神经网络,似乎决策树感觉“亲切”许多。 优点:计算复杂度不高,输出结果易于理解,对中间值的缺失值不敏感,可以处理不相关特征数据。 缺点:可...
  • csqazwsxedc
  • csqazwsxedc
  • 2017-03-26 23:04
  • 4277

Python决策树

决策树有ID3 C4.5 CART比较经典的算法,不过现在用的比较少,一般用随机森林多。 这里简单学习一下ID3,它是基于信息熵的#-*- coding: utf-8 -*- #使用ID3决策树算法预测销量高低 import pandas as pd import numpy as np from...
  • xuyaoqiaoyaoge
  • xuyaoqiaoyaoge
  • 2016-11-26 15:42
  • 791

决策树python实现

  • 2014-03-10 21:36
  • 5KB
  • 下载

python实现决策树分类(一)

决策树是一种常见的分类算法, 每一个叶子节点对应一个分类,非叶子节点对应某个属性的划分。决策树主要有3个部分组成,分别为决策节点,分支和叶子节点。其中决策树最顶端的节点为根决策点,每一个分支都有一个新决策点。决策节点下面是叶子节点。决策的过程从根决策点开始,从上到下。构造决策树的过程是如何选择合适的...
  • momaojia
  • momaojia
  • 2017-06-23 14:38
  • 1040

Python机器学习(三)--决策树算法

一、决策树原理 决策树是用样本的属性作为结点,用属性的取值作为分支的树结构。 决策树的根结点是所有样本中信息量最大的属性。树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性。决策树的叶结点是样本的类别值。决策树是一种知识表示形式,它是对所有样本数据的高度概括决策树能准确地识别所有...
  • alvine008
  • alvine008
  • 2014-07-14 13:57
  • 41128
    个人资料
    • 访问:184013次
    • 积分:2530
    • 等级:
    • 排名:第17073名
    • 原创:110篇
    • 转载:6篇
    • 译文:0篇
    • 评论:32条
    最新评论