本文实例为大家分享了python编写决策树源代码,供大家参考,具体内容如下

因为最近实习的需要,所以用python里的sklearn包重新写了一次决策树。

工具:sklearn,将dot文件转化为pdf格式(是为了将形成的决策树可视化)graphviz-2.38,下载解压之后将其中的bin文件的目录添加进环境变量

源代码如下:

from sklearn.feature_extraction import DictVectorizer

import csv

from sklearn import tree

from sklearn import preprocessing

from sklearn.externals.six import StringIO

from xml.sax.handler import feature_external_ges

from numpy.distutils.fcompiler import dummy_fortran_file

# Read in the csv file and put features into list of dict and list of class label

allElectronicsData = open(r'E:/DeepLearning/resources/AllElectronics.csv', 'rt')

reader = csv.reader(allElectronicsData)

headers = next(reader)

featureList = []

lableList = []

for row in reader:

lableList.append(row[len(row)-1])

rowDict = {}

#不包括len(row)-1

for i in range(1,len(row)-1):

rowDict[headers[i]] = row[i]

featureList.append(rowDict)

print(featureList)

vec = DictVectorizer()

dummX = vec.fit_transform(featureList).toarray()

print(str(dummX))

lb = preprocessing.LabelBinarizer()

dummY = lb.fit_transform(lableList)

print(str(dummY))

#entropy=>ID3

clf = tree.DecisionTreeClassifier(criterion='entropy')

clf = clf.fit(dummX, dummY)

print("clf:"+str(clf))

#可视化tree

with open("resultTree.dot",'w')as f:

f = tree.export_graphviz(clf, feature_names=vec.get_feature_names(),out_file = f)

#对于新的数据怎样来查看它的分类

oneRowX = dummX[0,:]

print("oneRowX: "+str(oneRowX))

newRowX = oneRowX

newRowX[0] = 1

newRowX[2] = 0

predictedY = clf.predict(newRowX)

print("predictedY: "+ str(predictedY))

这里的AllElectronics.csv,形式如下图所示:

今天早上好不容易将jdk、eclipse以及pydev装进linux,但是,但是,但是,想装numpy的时候,总是报错,发现是没有gcc,然后又去装gcc,真是醉了,到现在gcc还是没有装成功,再想想方法

python决策树sklearn_python利用sklearn包编写决策树源代码相关推荐

  1. 机器学习算法——线性回归的详细介绍 及 利用sklearn包实现线性回归模型

    目录 1.线性回归简介 1.1 线性回归应用场景 1.2 什么是线性回归 1.2.1 定义与公式 1.2.2 线性回归的特征与目标的关系分析 2.线性回归api初步使用 2.1 线性回归API 2.2 ...

  2. golang python扩展_Python 利用Go语言编写 CPython 扩展 goPy的简单示例

    对python这个高级语言感兴趣的小伙伴,下面一起跟随编程之家 jb51.cc的小编两巴掌来看看吧! goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展. 示例代码: # ...

  3. Python爬虫,利用scrapy来编写一个爬虫

    本文将介绍我是如何在python爬虫里面一步一步踩坑,然后慢慢走出来的,期间碰到的所有问题我都会详细说明,让大家以后碰到这些问题时能够快速确定问题的来源,后面的代码只是贴出了核心代码,更详细的代码暂时 ...

  4. 利用sklearn中 ID3算法实现简单的课程销量预测+决策树可视化

    决策树中ID3算法是一种贪心算法,用来构造决策树.ID3算法主要用到每个属性的信息增益,使用到信息熵.ID3算法计算每个属性的信息增益,并选取具有最高增益的属性作为给定集合的测试属性.对被选取的测试属 ...

  5. 利用sklearn库决策树模型对iris数据多分类并进行评估

    1.导入所需要的库 from sklearn.tree import DecisionTreeClassifier from sklearn.datasets import load_iris 2.加 ...

  6. python中sklearn实现决策树及模型评估_sklearn实现决策树

    sklearn是一个功能非常强大的工具,可以用几行代码实现丰富的机器学习算法. 本文介绍使用sklearn实现决策树 决策树是经典的机器学习算法,很多复杂的机器学习算法都是由决策时演变而来.它是一种使 ...

  7. boost原理与sklearn源码_机器学习sklearn系列之决策树

    一. Sklearn库 Scikit learn 也简称 sklearn, 自2007年发布以来,scikit-learn已经成为Python重要的机器学习库了.支持包括分类.回归.降维和聚类四大机器 ...

  8. sklearn中的决策树(分类)

    本文在我的知乎上同步更新:sklearn中的决策树(分类) - 知乎 Sklearn库有很多机器学习模型,不同的模型有着不同的特点,针对不同的问题,选取对应的模型,可以很好地解决问题.树模型作为经典的 ...

  9. sklearn机器学习:决策树tree.DecisionTreeClassifier()

    sklearn中的决策树分类器 sklearn中的决策树分类器函数,格式如下: sklearn.tree.DecisionTreeClassifier(criterion='gini', splitt ...

最新文章

  1. MIT_18.03_微分方程_Fourier_Series_傅里叶级数_Notes
  2. SAP创建生产订单时要求输入销售订单
  3. c语言变量radius数据类型,c语言数据类型
  4. Android新增Activity,并实现多Activity之间的切换
  5. 如何为SAP API Portal上创建的API增添API key验证保护功能
  6. 最近写的一个qt应用软件
  7. Hive大数据-Hive的优缺点---大数据之Hive工作笔记0002
  8. python创意实用案例-分享10个给Python小白看的实用案例,入门Python就在这里了
  9. 容器技术Docker K8s 29 容器服务ACK基础与进阶-弹性伸缩
  10. 最好用的十六进制编辑器 010 Editor
  11. OSPF多区域配置实例
  12. 清除SQL Sever 2008数据库日志
  13. win11安装ie浏览器
  14. 视觉SLAM和激光SLAM的实现
  15. 导出RK3288开发板上的根文件系统,并打包img
  16. 学生成绩预测模型_2020年甘肃省建筑信息模型技术员(学生组)暨第三届全国装配式建筑职业技能竞赛(学生组)选拔赛成绩揭晓!...
  17. 在模仿学习中进步的智能机器人
  18. 关于partnerLinkType的相关实验
  19. LabWindows_CVI测试技术及工程应用_学习笔记1(构建一个简单的程序)
  20. CSS gradient渐变之webkit核心浏览器下的使用

热门文章

  1. hive 多用户访问模注意问题
  2. MapReduce计数器
  3. 次时代各制作插件使用方案以及技巧 包括UV 烘焙 减面等
  4. 【旧文章搬运】无Device的驱动如何通信
  5. 【接口时序】2、Verilog实现流水灯及与C语言的对比
  6. VMware的linux虚拟机实现和windows的文件共享
  7. angularJS中,怎么阻止事件冒泡
  8. 十万个为什么 —— 为什么一个数的 0 次方只能是 1
  9. 【转贴】利用 Javascript 获取 URL 参数(适合IE、FF)
  10. mysql-安装报错计算机中丢失MSVCR100.dll文件丢失