python决策树sklearn_python利用sklearn包编写决策树源代码

本文实例为大家分享了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还是没有装成功,再想想方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/435267.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何在WINCE中添加WebServer组件

wince 5.0有自带的Web server组件.第三方比较好用的有GoAhead Web Server ,这是开源软件,而且支持Linux. 一、wince 5.0自带的Web server组件 步骤一: 在PB中添加以下组件: Catalog item Sysgen variable Location in Catalog Web Server (HTTPD) SYSGEN_HTTPD Communicat…

arcmap添加WMTS服务

http://xdc.at/map/wmts/ 双击 拖拽 个人公众号

[sybase]自动增长字段创建方法

在Sybase数据库创建表时,对于自动增长字段的写法示例: CREATE TABLE dbo.BM_SM_ERR (SMCWBM int identity, -- 表主键SMCWDM varchar(10) NOT NULL, YYSLX smallint NOT NULL, SMCWMS varchar(100) NOT NULL, QYBJ tinyint …

基于嵌入式操作系统VxWorks的多任务并发程序设计――中断与任务

中断处理是整个运行系统中优先级最高的代码,可以抢占任何任务级代码运行。中断机制是多任务环境运行的基础,是系统实时性的保证。几乎所有的实时多任务操作系统都需要一个周期性系统时钟中断的支持,用以完成时间片调度和延时处理。VxWorks 提…

jwt获取token_JWT实现token认证

1.JWT是什么?Json Web Token(JWT)是目前比较流行的跨域认证解决方案,是一种基于JSON的开发标准,由于数据是可以经过签名加密的,比较安全可靠,一般用于前端和服务器之间传递信息,也可以用在移动端和后台传递…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(第一个Python程序)

从程序中了解知识点,有详细的备注 # 判断变量num是否为正数 # 注释语句 是对程序进行说明的语句,在程序运行过程中不被执行 # ctrl/进行多行注释num0 # 赋值语句 大小写敏感 可以以分号结尾,但是在同一行必须以分号隔开 # 其数据类型由所赋…

Sqlce与SQL Server2000/2005数据转换程序

先上图 功能介绍: 1.根据Mssql2000/2005创建sqlce数据库表结构及索引(如果操作的表为空,则取mssql2000/2005的所有表,否则取录入的操作的表,用逗号隔开) 2.从mssql2000/2005导数据到已建好的sqlce(如果操作的表为空,则…

SRAM和SDRAM的区别

DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据。而且是行列地址复用的,许多都有页模式。 SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且…

docker java镜像_Springboot整合MongoDB的Docker开发,其它应用也类似

1 前言Docker是容器开发的事实标准,而Springboot是Java微服务常用框架,二者必然是会走到一起的。本文将讲解如何开发Springboot项目,把它做成Docker镜像,并运行起来。2 把Springboot打包成Docker镜像Springboot的Web开发非常简单&…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python输入和输出)

从程序中学习知识点 1. #输出函数可以输出字符串常量 print("hello") #输出数学表达式 print(12) #输出变量 print(num) 2. #string input(提示信息) #接收用户的输入,并以字符串类型返回;即键盘输入123,并将123赋值给string numint(input…

ManulResetEvent与AutoResetEvent

定义 ManualResetEvent:通知正在等待的线程已发生事件。 AutoResetEvent:通知正在等待的线程已发生事件。 代码 ManualResetEvent测试 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading;…

Timer

[摘要] Timer是实时操作系统的一个重要组成部分。本文结合近阶段的学习和实验情况,对VxWorks中的时间函数和定时器作了一些探讨。主要介绍了Timer的机制,相关的函数,并给出了一些具体的例子。 一. Tick Tick是指每秒中定时器中断的次数。POS…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python常量、变量和表达式)

从程序中学习知识点 1. #支持6中表达形式 数字 字符串 列表 元组 字典 集合 #数字 整型(正整数 负整数 零) #Python3中的整数可以任意大,而不用担心位数不够而导致溢出的情况 intnum12345678909999999999999 print(intnum,type(intnum)) #浮点数 小数 floatnum1 …

reentrantlock非公平锁不会随机挂起线程?_程序员必须要知道的ReentrantLock 及 AQS 实现原理...

专注于Java领域优质技术,欢迎关注作者:Float_Luuu提到 JAVA 加锁,我们通常会想到 synchronized 关键字或者是 Java Concurrent Util(后面简称JCU)包下面的 Lock,今天就来扒一扒 Lock 是如何实现的,比如我们可以先提出一…

关于SOAP的几篇文章

转载自:/show-1598-1.shtml PHP操作soap我总觉得是一件非常痛苦的事情,但没有办法,现在很多功能都是基于WebService的,比如那个amazon的,但其实很多 公司都也还是提供了restful之类的接口,使得PHP与其他系统…

VxWorks动态加载

注:最近在做热补丁的功能,看到一篇gateway写的文章,觉得很通俗易懂的,就将搜集到的资料又整理了一下,供大家参考。 使用动态加载目标模块的方式有很多好处,比如可以在不破坏原来的环境下增加调试定位功能&a…

excel办公常用的宏_让领导看傻!精美168套办公常用excel模板免费领

HR们面试的时候,是不是经常看到应聘者的简历上技能那一栏写着精通Excel、PPT等办公技能?你知道Excel用到什么程度才算精通吗?能够用excel做表格就算精通吗?还是要能够熟练使用各种函数?你做出来的Excel报表也许是这样的…

神经网络与深度学习——TensorFlow2.0实战(笔记)(三)(python运算符和表达式)

从程序中学习知识点 1.算术运算符 #运算符(Operator):完成不同类型的常量、变量之间的运算 #除法运算 / 结果是一个浮点型的精确数的值,与java等其他语言的不同之处 print(7/2,7.0/2,-7/2) #整除运算 print(7//2,-7//2) print(7…

VxWorks系统BSP配置文件及生成下载

%A VxWorks BSP主要配置文件 config.h , Makefile 注解和 BSP生成下载实例。%A%A 相关内容可参考 VxWorks BSP和启动过程%A%A config.h文件配置%A%A /*%A This file contains the configuration parameters for the CPU evaluation board.%A */%A%A #ifndef INCconfigh%A #defi…

float32精度_PyTorch 1.6来了:新增自动混合精度训练、Windows版开发维护权移交微软...

刚刚,Facebook 通过 PyTorch 官方博客宣布:PyTorch 1.6 正式发布!新版本增加了一个 amp 子模块,支持本地自动混合精度训练。Facebook 还表示,微软已扩大了对 PyTorch 社区的参与,现在拥有 PyTorch 在 Windo…