python数据挖掘分析案例python_Python 数据挖掘实例 决策树分析

友情提示:此篇文章大约需要阅读 7分钟57秒,不足之处请多指教,感谢你的阅读。

安装Anaconda Python集成环境

下载环境

anaconda下载选择

安装环境

下载过程中使用默认,但有一个页面需要确认,如下图。

anaconda选择页面

第一个勾是是否把 Anaconda 加入环境变量,这涉及到能否直接在 cmd中使用 conda、jupyter、 ipython 等命令,推荐打勾。

第二个是是否设置 Anaconda 所带的 Python 3.6 为系统默认的 Python 版本,可以打勾。

安装完成后,在开始菜单中显示“Anaconda2”如下图所示。

安装显示界面

安装第三方程序包 Graphviz

目的是在决策树算法中八进制最终的树结构。

1、打开 Anaconda Prompt ,输入 conda install python-graphviz,回车即可完成安装,如下图所示,本图所示已经安装 了 graphviz包,若之前没有安装,这时会花点时间安装,安装不用干预。

安装决策树依赖包

安装完成后先输入 python,然后再输入 import graphviz,测试是否成功安装,如上图所示。

需要设置环境变量,才能使用新安装的 graphviz。

Anaconda及依赖包环境变量设置

首先查看 anaconda安装在哪个目录下,可以打开 Spyder的属性,看一看目标是什么目 录。例如本机的 anaconda安装路径为 C:\Users\lenovo\Anaconda2。

下面设置环境变量

(1) 在用户变量“path”里添加 C:\Users\lenovo\Anaconda2\Library\bin\graphviz

(2) 在系统变量的“path”里添加 C:\Users\lenovo\Anaconda2\Library\bin\graphviz\dot.exe

(3) 如果现在有正在打开的 anaconda 程序,例如正在 Spyder,那么关闭 Spyder,再启动,这 样刚才设置的环境变量生效。

决策树分析

格式化原始数据

将下图的表 demo输入到 Excel中,保存为.csv 文件(.csv为逗号分隔值文件格式)。

注意将表 demo中的汉字值转换成数据字值,例如“是否是公司职员”列中的“是”为“1”, “否”为“0”。转换后的表中数据如下图所示。

学习表

编写数据分析代码

编写程序对上面的数据进行决策树分类,采用信息熵(entropy)作为度量标准。参考代码如下所示:

from sklearn.tree import DecisionTreeClassifier,export_graphviz

import graphviz

import csv

dataset = []

reader = csv.reader(open("demo.csv"))

for line in reader:

if reader.line_num == 1:

continue

dataset.append(line)

X = [x[0:4] for x in dataset]

y = [x[4] for x in dataset]

clf = DecisionTreeClassifier(criterion='entropy').fit(X, y)

dot_data = export_graphviz(clf, out_file=None)

graph = graphviz.Source(dot_data)

graph.render("table");

digraph Tree {

node [shape=box] ;

0 [label="X[0] <= 0.5\nentropy = 0.94\nsamples = 14\nvalue = [9, 5]"] ;

1 [label="X[1] <= 1.5\nentropy = 0.985\nsamples = 7\nvalue = [3, 4]"] ;

0 -> 1 [labeldistance=2.5, labelangle=45, headlabel="True"] ;

2 [label="entropy = 0.0\nsamples = 3\nvalue = [0, 3]"] ;

1 -> 2 ;

3 [label="X[1] <= 2.5\nentropy = 0.811\nsamples = 4\nvalue = [3, 1]"] ;

1 -> 3 ;

4 [label="entropy = 0.0\nsamples = 2\nvalue = [2, 0]"] ;

3 -> 4 ;

5 [label="X[3] <= 0.5\nentropy = 1.0\nsamples = 2\nvalue = [1, 1]"] ;

3 -> 5 ;

6 [label="entropy = 0.0\nsamples = 1\nvalue = [1, 0]"] ;

5 -> 6 ;

7 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1]"] ;

5 -> 7 ;

8 [label="X[1] <= 2.5\nentropy = 0.592\nsamples = 7\nvalue = [6, 1]"] ;

0 -> 8 [labeldistance=2.5, labelangle=-45, headlabel="False"] ;

9 [label="entropy = 0.0\nsamples = 4\nvalue = [4, 0]"] ;

8 -> 9 ;

10 [label="X[3] <= 0.5\nentropy = 0.918\nsamples = 3\nvalue = [2, 1]"] ;

8 -> 10 ;

11 [label="entropy = 0.0\nsamples = 2\nvalue = [2, 0]"] ;

10 -> 11 ;

12 [label="entropy = 0.0\nsamples = 1\nvalue = [0, 1]"] ;

10 -> 12 ;

}

数据分析结果

程序运行结果在与该程序在同一目录下的 table.pdf 文件中,将每一个叶子结点转换成IF-THEN 规则。

决策树分析结果

IF-THEN分类规则

(1)IF"不是公司员工" AND "年龄大于等于40", THEN "不买保险"。

(2)IF"不是公司员工" AND "年龄小于40", THEN "买保险"。

(3)IF"不是公司员工" AND "年龄大于50" AND "信用为良", THEN "不买保险"。

(4)IF"不是公司员工" AND "年龄大于40" AND "信用为优", THEN "买保险"。

(5)IF"是公司员工" AND "年龄小于50", THEN "不买保险"。

(6)IF"是公司员工" AND "年龄小于50" AND "信用为优", THEN "买保险"。

(7)IF"是公司员工" AND "年龄小于50" AND "信用为良", THEN "不买保险"。

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

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

相关文章

服务器开机显示f1 f2,开机提示按F1/F2才能进入系统的解决方法

电脑开机出现了一个怪现象&#xff0c;那就是每次开机的时候都会有“F1”或者是“F2”的提示&#xff0c;并且要按一下才能正常进入系统&#xff0c;该怎么解决呢&#xff1f;下面秋叶系统小编教大家解决办法&#xff01;下图为开机按F1键才能正常进入系统的画面&#xff01;下…

mysql日志监控 zabbix_zabbix监控mysql哪些性能

匿名用户1级2017-09-27 回答一、从网上下载相应脚本与XML定义文件。extensive_mysql_monitoring_including_replication1.   Template_MySQL_Server&#xff0e;xml2.   Template_MySQL_Replication_Master&#xff0e;xml3.   Template_MySQL_Replication_Slave&#xf…

apache httpclient 工具类_HttpClient 和Mycat 主从节点和读写分离

第175次(HttpClient)学习主题&#xff1a;HttpClient学习目标&#xff1a;1 掌握HttpClient自定义工具以及HttpClient具体的使用对应视频: http://www.itbaizhan.cn/course/id/85.html对应文档:无对应作业1. HttpClient自定义工具类的使用(1) 如何编写一个HttpClient工具类&…

已通过os信号请求关闭服务器,redis(一)内部机制的介绍和启动过程

redis(一)内部机制的介绍和启动过程redis的基本介绍redis服务端redis客户端redis的持久化redis中的文件事件和时间时间redis的启动过程redis的基本介绍redis是一种非关系型数据库&#xff0c;采用key&#xff0c;value的形式来存储数据。key是二进制数据&#xff0c;对于value的…

datalist可以放div吗?_混凝土中能放竹子吗?可以代替钢筋吗?为何打地坪混凝土放竹子?...

大家好&#xff0c;我是专注家居和装修知识分享的家居杂坛。喜欢的就点击一下关注吧&#xff01;对于在地面上所浇筑的混凝土&#xff0c;常规有两种做法。例如&#xff0c;在混凝土中铺设钢筋&#xff0c;打成钢筋混凝土的地面&#xff0c;又或者还有一些朋友在钢混凝土中放入…

snmp协议_软件评测师写作专栏之OSI七层模型及其常见的协议11

各位学员大家好&#xff0c;大家在学习计算机网络的时候&#xff0c;OSI七层模型及其常见的协议是必考的内容。为了让大家快速掌握这方面的知识点&#xff0c;接下来就带领大家一起来学习一下&#xff01;例题&#xff1a;下面的协议中属于应用层协议的是( 1 )&#xff0c;该协…

nginx文件服务器密码登录,风的方向

说明很多时候我们服务器上的页面或者服务可能没有安全配置&#xff0c;使得服务开放的暴露在互联网中&#xff0c;很不安全。nginx可以给我们提供密码配置&#xff0c;来保护我们的服务器上的服务的安全性。配置nginx配置文件在需要配置密码的服务的相关nginx配置文件中的locat…

selenium python下载_使用Selenium、Chrome和Python下载PDF

我试着按照前面关于这个主题的文章来写&#xff0c;比如这些(post 1&#xff0c;post 2)&#xff0c;但是我还是被卡住了。我的脚本必须使用一组凭据登录到站点&#xff0c;然后通过一些下拉菜单导航以选择报表。选择报表后&#xff0c;将弹出一个新窗口&#xff0c;在该窗口中…

劲乐团u显示服务器维护,劲乐团9YOU原版服务端架设教程

我来做一个o2jam的服务端架设教程&#xff0c;希望新手能有点帮助相信你已经全的数据库文件了,其实只要里面的三个就可以了test2...o2jamtrade---onlinereport那么GO了.首先确定你已经安装好了MSSQL.如果没有.........那就先安装下......企业版安装在SQL服务器的安装盘中找到MS…

linux部署tomcat项目404_一个tomcat下部署多个项目或一个服务器部署多个tomcat

点击上方[全栈开发者社区]→右上角[...]→[设为星标⭐]♪ 点击上方绿标 收听一个tomcat下部署多个项目或一个服务器部署多个tomcat最近需要把两个项目同时部署到服务器上&#xff0c;于是研究了一下&#xff0c;页借鉴了很多别人的方法&#xff0c;把过程记录下来&#xff0c;以…

科学计数法_第一章 科学计数法与近似数

生活中&#xff0c;我们常常遇到一些较大的数&#xff0c;如10000000、3450000000等.利用科学计数法表示某些较大的数可以免去一些不必要的麻烦&#xff0c;尤其是遇到一些乘法运算时&#xff0c;如20000000245000000.科学记数法表示数时&#xff0c;不改变数的符号&#xff0c…

python调用浏览器打开网页_python调用浏览器,实现刷网页浏览小程序!

Python 和放大镜的二进制代码私信小编007即可自动获取大量Python视频教程以及各类PDF&#xff01;python 打开浏览器&#xff0c;可以做简单的刷网页的小程序 and 其他有想象力的程序。不过仅供学习&#xff0c;勿用非法用途。python的webbrowser模块支持对浏览器进行一些操作主…

# 傅立叶变换 画曲线_让你永远忘不了的傅立叶变换解析

使用联想链条和几何直观&#xff0c;辅以从实际需求衍生概念的思考模式&#xff0c;详解什么是傅立叶变换&#xff0c;为什么要做傅立叶变换等&#xff0c;帮助记忆和理解&#xff0c;目的当然是标题所说&#xff1a;让你永远忘不了傅立叶变换这个公式。另&#xff0c;这篇博客…

bat批处理执行python_通过批处理来运行python程序

》准备》》在所用的python源程序最前面指定该源程序要用那种可执行程序去运行它》》例如&#xff1a;#!/bin/sh shell脚本#!/usr/bin/perl perl脚本#!/usr/bin/python python脚本#!/usr/bin/python3 python3脚本#!/usr/bin/python2 python2脚本》》我的程序使用的解释器》》》#…

messagehub讲解_艾舜杰SAP Data Hub 数据服务总线技术深度讲解

原标题&#xff1a;艾舜杰SAP Data Hub 数据服务总线技术深度讲解艾舜杰SAP Data Hub 是一个多方面的数据编排解决方案, 旨在解决在不断增长的分布式数据环境中的挑战。它的关键功能包括&#xff1a;数据管道、治理和架构管理。解决方案可弹性扩展, 可编排并自动化处理不同数据…

select报错 spark_spark-sql master on yarn 模式运行 select count(*) 报错日志

启动hive --service metastore启动 dfs yarn[rootbigdatastorm bin]# ./spark-sql --master yarn --deploy-mode client --driver-memory 512m --executor-memory 512m --total-executor-cores 1spark-sql>select count(*) ;LogSLF4J: Class path contains multiple SLF4J …

python字符串填充_填充函数(Python)字符串.zfi

我想更改下面的Python函数&#xff0c;以涵盖我的business_代码需要填充的所有情况。string.zfillPython函数处理此异常&#xff0c;将填充到左侧直到达到给定的宽度&#xff0c;但我以前从未使用过它。在#function for formating business codesdef formatBusinessCodes(code)…

找不到天隆虚拟机_玩转虚拟机,教你如何装系统

最近小白系统收到很多小伙伴的私信想要知道虚拟机如何安装系统&#xff0c;那么今天小白系统整理了下虚拟机安装系统的教程&#xff0c;下面一起看下吧。虚拟机安装系统适合什么人群呢&#xff1f;1、如果你新买的电脑不支持安装Win7系统&#xff0c;那么装个虚拟机吧&#xff…

ios 主题切换 思路_IOS主题切换ThemeManager

#import "ThemeManager.h"#define kDefaultThemeName "默认主题"#define kThemeName "kThemeName"implementation ThemeManagerstatic ThemeManager *instance nil;(ThemeManager *)shareInstance{static dispatch_once_t onceToken…

从数据类型 nvarchar 转换为 numeric 时出错_JS入门篇(三):javascript的数据类型详解...

JavaScript的数据类型分为两大类&#xff0c;基本数据类型和复杂数据类型。基本数据类型&#xff1a;Undefined、Null、Boolean、Number、String。复杂数据类型&#xff1a;Object。(1)Undefined类型Undefined 类型只有一个值&#xff0c;即特殊的 undefined。在使用 var 声明变…