这几期和大家聊聊使用Python进行机器学习

题外话:之前一期“ scrapy抓取当当网82万册图书数据 ” 的 Github 链接

Python拥有强大的第三方库,使用Python进行科学计算和机器学习同样需要先配置运行环境。这里我们需要安装Anaconda,官方给出的下载链接太慢,而且经常下载到一半卡死,这里我提供我下载好的Numpy:提供数组支持,以及相应的高效处理函数;

Scipy:提供矩阵支持,以及矩阵相关的数值计算模块;

Matplotlib:数据可视化工具,作图库;

Pandas:强大、灵活的数据分析和探索工具;

Scikit - Learn:支持回归、分类、聚类等强大的机器学习库;决策树是一个类似流程图的树状结构,其中每个内部节点都表示在一个属性上的测试,每个分支代表一个属性输出,而每个树叶节点代表类或类分布,最顶层是根节点。

决策树方法在分类、预测等领域有广泛应用。我在百度上找了张图,决策树是长这样:

下面我用一个案例来简单介绍下用Python实现决策树的机器学习过程

1、案例背景:某连锁餐饮企业手头拥有一批数据,想了解周末和非周末对销量是否有很大区别,以及天气的好坏、是否有促销活动对销量的影响。以单个门店为例,数据结构如下:

2、过程分析:这里我们采用的算法为ID3算法,ID3算法是啥,那么多博客说的比我清楚,大家可以搜搜决策树ID3就明白了。总结一句话:ID3就是基于信息熵来选择最佳测试属性,采用信息增益作为选择测试属性的标准。ID3生成的决策树模型:

3、使用Scikit - Learn建立决策树模型

数据链接,密码:n7u5

#-*- coding: utf-8 -*-

import pandas as pd

#参数初始化

inputfile = '../FEB/data.xls' #这里输入你个人的文件路径

data = pd.read_excel(inputfile, index_col = u'序号') #导入数据

#数据是类别标签,要将它转换为数据

#用1来表示“好”、“是”、“高”这三个属性,用-1来表示“坏”、“否”、“低”

data[data == u'好'] = 1

data[data == u'是'] = 1

data[data == u'高'] = 1

data[data != 1] = -1

x = data.iloc[:,:3].as_matrix().astype(int)

y = data.iloc[:,3].as_matrix().astype(int)

from sklearn.tree import DecisionTreeClassifier as DTC

dtc = DTC(criterion='entropy') #建立决策树模型,基于信息熵

dtc.fit(x, y) #训练模型

#导入相关函数,可视化决策树。

from sklearn.tree import export_graphviz

x = pd.DataFrame(x)

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

f = export_graphviz(dtc, feature_names = x.columns, out_file = f)

这里我们在该python文件的同级目录下导出的结果是一个dot文件(长得和word类似),需要安装Graphviz才能将其转换为pdf格式

导出的dot文件:

运行命令:dot -Tpdf tree.dot -o tree.pdf将该dot文件转化成结构化图

总结:决策树的优点:直观、便于理解、小规模数据集有效;决策树的缺点:类别较多时,错误增加较快,可规模性不强。

python数据挖掘实验报告_Python数据挖掘实践—决策树相关推荐

  1. python外星人实验报告_Python 项目实践一(外星人入侵)第一篇

    python断断续续的学了一段实践,基础课程终于看完了,现在跟着做三个小项目,第一个是外星人入侵的小游戏: 一 Pygame pygame 是一组功能强大而有趣的模块,可用于管理图形,动画乃至声音,让 ...

  2. python综合实验报告_Python程序设计实验报告五:综合运用三种基本结构进行程序设计(综合性实验)...

    安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名姚彩琴学号3190505129 成绩 日期 2020.4.22 指导老师修宇 [实验名称]综合运用三种基本结构进行程序设计(综合性实 ...

  3. python综合实验报告_Python程序设计 实验报告

    安徽工程大学 Python程序设计 实验报告 班级:物流192       姓名:刘马汉卿学号:319005211 成绩:            日期:2020年4月29日        指导老师:修 ...

  4. python数据分析实验报告_Python数据分析综合小练习:销售数据分析

    有这样一个小小的练习题: 卖电子商品的老板,每天记录了自己卖出的U盘,电脑支架,插座,电池,音箱,鼠标,usb数据线,手机充电线等数量,客户的需求是一方面,也可以通过客户购买关联性比较强的商品进行引导 ...

  5. 基于python的数据挖掘实验报告_数据挖掘实验报告一

    . '. 数据预处理 一. 实验原理 预处理方法基本方法 1 .数据清洗 去掉噪声和无关数据 2 .数据集成 将多个数据源中的数据结合起来存放在一个一致的数据存储中 3 .数据变换 把原始数据转换成为 ...

  6. python爬虫实验报告_python爬虫实验

    原博文 2013-06-28 13:30 − 那天在新浪微博上看到北北出的题目,由于最近也在做类似的爬虫研究,所以就有了这个实验. 后来在QQ上和北北说了下,要求是啥都抓,就抓乌云的... 然后就开始 ...

  7. python分类算法报告_Python机器学习(1)——决策树分类算法

    1.决策树算法 决策树用树形结构对样本的属性进行分类,是最直观的分类算法,而且也可以用于回归.不过对于一些特殊的逻辑分类会有困难.典型的如异或(XOR)逻辑,决策树并不擅长解决此类问题. 决策树的构建 ...

  8. python数据分析实验报告_Python 数据分析入门实战

    本训练营中,我们将学习怎么样使用 Python 进行数据分析.课程将从数据分析基础开始,一步步深入讲解.从 Python 的基础用法到数据分析的各种算法,并结合各种实例,讲解数据分析过程中的方方面面. ...

  9. python投资分析实验报告_Python的实验报告怎么写?

    以面向对象程序设计实验为例: 一.实验目的了解面向对象程序设计思想 了解对象.类.封装.继承.方法.构造函数和析构函数基本概念 掌握定义类.成员变量.成员函数.静态变量和静态方法 掌握通过类定义实现继 ...

  10. python冒泡排序实验报告_python中的冒泡排序

    首先,再将python的冒泡排序之前,先来复习一个python中的自带排序函数:sort(但是这个函数是没有返回值的,并且只能针对列表,大家使用的时候需要注意一下): 例子如下: li=[11,22, ...

最新文章

  1. python实战演练_python实战演练(三)购物车程序
  2. 【转载】让我们来FirePHP
  3. mysql性能监控qps,tps,iops
  4. Java程序猿的JavaScript学习笔记(汇总文件夹)
  5. win7-X64下用VM安装linux系统CentOS
  6. SAP支持包、插件程序和附件
  7. java multivaluemap_java – 使用自定义值集合类型创建Commons Collections MultiValueMap
  8. Android向本地写入一个XML文件和解析XML文件
  9. linux上设置git高亮
  10. controller属于哪一层_别急着换5G,4G手机同样值得考虑!哪几款安卓手机称得上4G机皇?...
  11. Springboot配置devtools实现热部署
  12. Word中如何删除某一页的页眉与页眉中的横线
  13. 华为路由器显示连接到服务器失败怎么办,华为路由器设置好了不能用怎么办 华为路由器无法上网问题-192路由网...
  14. vue @click.native和@click.stop和@click.self
  15. 记一次feign调用报错:feign.codec.DecodeException: Error while extracting response for type [java...
  16. 一些GIS地图的基础知识
  17. odoo 中的 domian 和 运算符
  18. Qt的各版本直接下载地址
  19. Python爬虫之PyQuery
  20. 推荐官方开源 PInvoke 库 包含大量 win32 封装

热门文章

  1. android ListView刷新抢占屏幕焦点
  2. Visual C++ 2010 (中文)学习版 安装教程
  3. 科来网络分析系统网络故障分析方法
  4. 文本框改变之onpropertychange事件
  5. 2015年阿里巴巴1688.com实名供应商数据84万
  6. 2007最新最强杀毒软件破解大全
  7. 搭建属于自己的复古传奇私服
  8. sqlParameter的使用------七个构造函数
  9. 你的脸儿圆又圆改变MSN头像(转)
  10. mybatis 使用简单的增删查改