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/),能够轻松的实现获取 ...
随机推荐
- vs2017 在win10下安装后开始运行asp.net core 项目时出错
vs2017 在win10下安装后开始运行asp.net core 项目时出错 报找不到什么 解决方法: 下载 asp.net 2.2 安装好,重新启动电脑问题解决.
- 学号 20175313《Java程序设计》 第七周学习总结
目录 一.教材学习内容总结 二.教材学习中的问题和解决过程 三.代码托管 四.心得体会 五.学习进度条 六.参考资料 一.教材学习内容总结 第八章主要内容 了解String类 常量对象:常量池中的数据 ...
- Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'系列一:
从库报这个错误:Got fatal error 1236 from master when reading data from binary log: 'Could not find first lo ...
- 使用 dom4j 处理 xml (1)
解决问题需要,自己简单学习了一下dom4j 的基本用法: (1)读取 xml 文件: (2)修改 xml 文件. 需要的 jar 包: dom4j-xxx.jar (可以在 https://dom4j ...
- BeyondCompare使用一段时间后会因“许可证密钥已被撤销:3281-0350“而无法使用
解决方式: 1.用任意文本编辑软件打开“C:\Users\[Your User Name]\AppData\Roaming\Scooter Software\Beyond Compare 3\BCSt ...
- Hadoop HDFS 用java API 进行读写
public class HdfsApp { public static FileSystem getFileSystem() throws Exception { Configuration con ...
- postgresql 自定义函数
CREATE OR REPLACE FUNCTION "public"."pm25_aqi"("pm25_nd" numeric) RETU ...
- PostgreSql之在group by查询下拼接列字符串
首先创建group_concat聚集函数: CREATE AGGREGATE group_concat(anyelement) ( sfunc = array_append, -- 每行的操作函数,将 ...
- asp.net处理机制管道事件
自定义的托管模块HTTP模块可以向System.Web.HttpApplication对象注册下面一系列事件: AcquireRequestState 当ASP.NET运行时准备好接收当前HTTP请求 ...
- Thinking in work
Scheduler? Realtime? sure SCI? Power supply and ECU life. how to assure? EMC?