Python简单实现决策树
__author__ = '糖衣豆豆'
#决策树
import pandas as pda
fname="~/coding/python/data/lesson.csv"
dataf=pda.read_csv(fname,encoding="gbk")
x=dataf.iloc[:,1:5].as_matrix()
y=dataf.iloc[:,5].as_matrix()
for i in range(0,len(x)):
for j in range(0,len(x[i])):
thisdata=x[i][j]
if(thisdata=="是" or thisdata=="多" or thisdata=="高"):
x[i][j]=int(1)
else:
x[i][j]=int(-1)
for i in range(0,len(y)):
thisdata=y[i]
if(thisdata=="高"):
y[i]=int(1)
else:
y[i]=int(-1)
#容易错的地方:直接使用
#正确的做法:转化好格式,将x,y转化为数据框,然后再转化为数组并指定格式
xf=pda.DataFrame(x)
yf=pda.DataFrame(y)
x2=xf.as_matrix().astype(int)
y2=yf.as_matrix().astype(int) #建立决策树
from sklearn.tree import DecisionTreeClassifier as DTC
dtc=DTC(criterion="entropy")
dtc.fit(x2,y2)
#直接预测决策树
import numpy as npy
x3=npy.array([[1,-1,-1,1],[1,1,1,1],[-1,1,-1,1]])
rst=dtc.predict(x3)
print(rst)
#可视化决策树
from sklearn.tree import export_graphviz
from sklearn.externals.six import StringIO with open("~/Downloads/dtc.dot","w") as file:
export_graphviz(dtc,feature_names=["combat","num","Promotion","datum"],out_file=file)
lesson.csv的日志如下
序号,实战,课时数,是否促销,是否提供配套资料,销量
1,是,多,是,否,高
2,否,少,是,是,低
3,是,少,是,否,低
4,是,多,否,否,低
5,是,少,否,是,高
6,是,多,是,是,高
7,否,多,是,否,低
8,否,少,是,是,高
9,是,多,是,否,高
10,否,少,否,否,低
11,是,少,否,否,高
12,否,多,是,否,低
13,是,少,否,是,高
14,是,多,否,是,高
15,否,少,是,是,低
16,是,多,否,否,低
17,是,多,否,否,低
18,是,多,否,是,高
19,否,多,是,否,高
20,是,少,否,是,低
21,是,多,否,否,高
22,否,少,是,是,低
23,否,少,否,否,低
24,否,多,是,是,高
25,是,少,否,是,高
26,是,多,否,否,低
27,是,多,是,是,高
28,否,少,否,否,低
29,是,少,是,是,高
Python简单实现决策树的更多相关文章
- Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析
Python数据挖掘之决策树DTC数据分析及鸢尾数据集分析 今天主要讲述的内容是关于决策树的知识,主要包括以下内容:1.分类及决策树算法介绍2.鸢尾花卉数据集介绍3.决策树实现鸢尾数据集分析.希望这篇 ...
- Python简单爬虫入门三
我们继续研究BeautifulSoup分类打印输出 Python简单爬虫入门一 Python简单爬虫入门二 前两部主要讲述我们如何用BeautifulSoup怎去抓取网页信息以及获取相应的图片标题等信 ...
- Python简单爬虫入门二
接着上一次爬虫我们继续研究BeautifulSoup Python简单爬虫入门一 上一次我们爬虫我们已经成功的爬下了网页的源代码,那么这一次我们将继续来写怎么抓去具体想要的元素 首先回顾以下我们Bea ...
- 亲身试用python简单小爬虫
前几天基友分享了一个贴吧网页,有很多漂亮的图片,想到前段时间学习的python简单爬虫,刚好可以实践一下. 以下是网上很容易搜到的一种方法: #coding=utf-8 import urllib i ...
- GJM : Python简单爬虫入门(二) [转载]
感谢您的阅读.喜欢的.有用的就请大哥大嫂们高抬贵手"推荐一下"吧!你的精神支持是博主强大的写作动力以及转载收藏动力.欢迎转载! 版权声明:本文原创发表于 [请点击连接前往] ,未经 ...
- Selenium + PhantomJS + python 简单实现爬虫的功能
Selenium 一.简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDrive ...
- 【美妙的Python之中的一个】Python简单介绍及环境搭建
美妙的Python之Python简单介绍及安装 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.Python: ...
- python 简单图像识别--验证码
python 简单图像识别--验证码 记录下,准备工作安装过程很是麻烦. 首先库:pytesseract,image,tesseract,PIL windows安装PIL,直接exe进行安装更方便( ...
- python简单的监控脚本-利用socket、psutil阻止远程主机运行特定程序
python简单的监控脚本-利用socket.psutil阻止远程主机运行特定程序 psutil是一个跨平台的库(http://code.google.com/p/psutil/),能够轻松的实现获取 ...
随机推荐
- pymongo基础
PyMongo是MongoDB数据库的python模块 MongoDB是由C++语音编写的非关系型数据库,是一个基于分布式文件存储的开源数据库系统. win10 安装 4.0 使用官网的配置 使用 n ...
- 软件工程first homework
1) 2017*****7193:我是最乐观的刘新飞:我的爱好是下中国象棋和听音乐: 我的码云个人主页是码云个人主页: 我的第一个项目地址是×××: 自己目前的代码量是三千行左右:我最喜欢蛋肠炒面(一 ...
- hibernate连接数据库和使用
hibernate.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibe ...
- [CentOS] rsync同步目录进行备份文件
操作不难,网上一堆.这里列几个 CentOS7 参考地址: https://www.server-world.info/en/note?os=CentOS_7&p=rsync Copy fil ...
- 201903<<高效15法则>>
高效15法则,这本书作为时间管理的入门书籍,易读易理解,结构清晰,但是中间的某些篇幅内容过于拖沓....
- Promise的那些事儿
在JavaScript中,异步操作非常多见,然而在Promise之前,我们是在类似以下的做法中处理多重异步回调,每一层里都要调另一个异步函数,形成了所谓的"回调地狱", Promi ...
- Vue系列之 => webpack-babel的配置
安装 cnpm i babel-core@6.26.3 babel-loader@7.0.0 babel-plugin-transform-runtime -D cnpm i babel-preset ...
- Oracle 体系结构chapter2
前言:Oracle 体系结构其实就是指oracle 服务器的体系结构,数据库服务器主要由三个部分组成 管理数据库的各种软件工具(sqlplus,OEM等),实例(一组oracle 后台进程以及服务器中 ...
- symfony command
symfony 的command系统,有两部分构成:Application和command 1. Application是一个容器,负责对command进行管理. 2.command是每一个具体的命令 ...
- Unity用Vuforia做AR实现脱卡效果
这篇不错,记录下,博主不让转载 http://blog.csdn.net/qwe161819/article/details/76107105