Python实现决策树的构建

Python机器学习-决策树的构建

决策树(ID3算法)

开发环境为anaconda中的spyder,所有库已经默认安装,若使用其它环境需要安装外部库,主要代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Aug  1 16:09:50 2017

@author: Administrator
"""

# 用来提供数据转换
from sklearn.feature_extraction import DictVectorizer
# 处理csv文件
import csv
from sklearn import preprocessing

# 决策树算法
from sklearn import tree
from sklearn.externals.six import StringIO

allElectronicsData = open(r'D:/data_com.csv')

read = csv.reader(allElectronicsData)

headers = next(read)




featureList = []
labelList = []
for row in read:
    labelList.append(row[-1])
    
    rowDict = {}
    # 从第二列到倒数第二列
    for i in range(1,len(row)-1):
        
        rowDict[headers[i]] = row[i]
    
    featureList.append(rowDict)

# print(featureList)

# 创建一个dummyX 001:youth 010:sensior 100:middle_aged 等等
vec = DictVectorizer()
dummyX = vec.fit_transform(featureList).toarray()

lb = preprocessing.LabelBinarizer()

dummyY = lb.fit_transform(labelList) 
# print(dummyX)

# print(vec)

# print(dummyY)

clf = tree.DecisionTreeClassifier(criterion = 'entropy')
clf = clf.fit(dummyX,dummyY)

with open('D:/allElectronicInformationGainOri.dot','w') as f:
    f = tree.export_graphviz(clf,feature_names=vec.get_feature_names(),out_file=f)

输出的dot文件可以使用graphvize软件转为PDF,graphvize安装目录中的bin目录放入到环境变量的Path中
使用如下命令

dot -Tpdf  xx.dot -o xx.pdf

运行完结果如下:

决策树的构建.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、决策树算法 决策树(decision tree)又叫判定树,是基于树结构对样本属性进行分类的分类算法。以二分类...
    JasonJe阅读 7,858评论 0 22
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,725评论 6 427
  • 写在之前 想看程序参数说明的请到: http://scikit-learn.org/stable/modules/...
    hainingwyx阅读 27,369评论 7 24
  • 1. 介绍 任何语言的包,依赖和环境管理:Python,R,Ruby,Lua,Scala,Java,Javascr...
    Himryang阅读 74,691评论 6 67
  • 真正关系好的朋友 不论何时都不用拐弯抹角 不用寒暄 我需要你了就找你聊上一整天 你想起我了就来我这住上一阵 你心情...
    小汐king阅读 1,459评论 0 0

友情链接更多精彩内容