教程丨手把手教你做数据挖掘 !(附教程&数据源)

640?wx_fmt=png

转载自:数据派THU(ID:DatapiTHU)

作者:宋莹

本文 11836字59图,建议阅读 30分钟
本文介绍一个极其详尽的数据挖掘实例。

本文主要介绍基于集成学习的决策树,其主要通过不同学习框架生产基学习器,并综合所有基学习器的预测结果来改善单个基学习器的识别率和泛化性。


引言

最近笔者学到了一个新词,叫做“认知折叠”。就是将复杂的事物包装成最简单的样子,让大家不用关心里面的细节就能方便使用。作为数据科学领域从业者,我们所做的事情就是用数学模型来解决实际的商业决策问题,最后包装成客户能看懂的简单图表。

笔者利用碎片化时间对“数据挖掘”这一领域知识进行了“折叠”。希望在这个碎片化的时代,对数据科学领域感兴趣的读者能够用最少的时间来学习最精华的东西。

640?wx_fmt=png
图 1:数据挖掘思维导图


一、什么是数据挖掘

简单地说,数据挖掘是指从大量数据中提取或“挖掘”知识,也叫做数据中的知识发现。

二、为什么需要数据挖掘

随着互联网工具的发展,分享和协作的成本大大降低。我们每天用手机聊天、购物、刷短视频、看新闻等日常的不经意动作给互联网行业提供了体量庞大的数据。这些数据通常被收集、存放在大型数据存储库中,没有强有力的工具,理解它们已经远远超出了我们的能力。而数据挖掘技术的出现解决了这一问题。它可以从海量的数据中提取出有价值的信息,从而作为决策的重要依据。

三、演化过程

柏拉图曾说过“需要是发明之母”,每一项新技术的诞生都是顺应了这个时代的发展。数据挖掘”也是信息技术自然演化的结果。如下表格展示了该演化过程。

640?wx_fmt=png


四、数据挖掘的具体步骤

许多人把数据挖掘视为“数据中的知识发现”,以下是其具体的步骤:
  • 数据清理(消除噪声和不一致数据)
  • 数据集成(不同来源与格式的数据组合到一起)
  • 数据选择(挖掘所需的数据)
  • 数据变换(数据变换成适合挖掘的形式,如汇总,聚集操作)
  • 数据挖掘(方法,建模)
  • 模式评估(结果模型)
  • 知识表示(可视化)


五、数据挖掘的系统结构

640?wx_fmt=png

图 2:数据挖掘系统结构图


六、对何种数据进行挖掘

原则上讲,数据挖掘可以应用于任何类型的信息存储库及瞬态数据(如数据流),如数据库、数据仓库、数据集市、事务数据库、空间数据库(如地图等)、工程设计数据(如建筑设计等)、多媒体数据(文本、图像、视频、音频)、网络、数据流、时间序列数据库等。

七、挖掘任务

数据挖掘功能用于指定数据挖掘任务要找的模型类型。一般而言,数据挖掘任务可以分为两类:描述和预测。描述性挖掘任务描述数据库中数据的一般性质。预测性挖掘任务对当前数据进行推断,以做出预测。其中描述类任务包含:特征化和区分等。

针对“特征化”,我们来举一个简单的例子:数据挖掘系统应当能够产生数据挖掘工程师特征的汇总描述,作为对该职位招聘的依据。结果可能是符合该职位的一般轮廓,如计算机相关专业、熟悉常用的数据挖掘算法、会使用统计分析工具、大数据开发经验等。那么,什么又是“区分”呢?继续之前的例子,数据挖掘系统应当能够描述出优秀数据挖掘工程师与一般数据挖掘工程师的轮廓。

优秀的数据挖掘工程师:超强的讲故事的能力、逻辑思维强、终身学习、喜欢用数学模型解决实际的问题。一般的数据挖掘工程师:了解常用数据挖掘算法、对工作能够积极完成、对挖掘结果无法清晰描述给相关人、不会主动学习该行业知识、从事此行业只是为了赚钱。这两个轮廓将作为我们评判优劣的依据。预测类任务为:关联分析、分类和预测、聚类分析、孤立点分析和趋势和演变分析等。下面章节的实例将介绍其中某些预测类模型。在这里就不再赘述。

八、挖掘什么模式的数据

1.易于理解的。
2. 在某种程度上,对于新的或检验数据是有效的。
3. 潜在有用的。
4. 新颖的。
5. 客观度量(支持度,置信度)。
6. 用户想要了解的,对用户有价值的。


九、数据挖掘的局限性

数据科学家吴军老师在《数学之美》一书中强调数学之所以美,是因为数学的简单性。我们的计算机基础就是布尔代数,其运算元素只由0,1组成。虽然数学如此简单,但其在各个领域的作用却不容忽视。它可以帮助我们发现仅凭经验无法发现的规律,找到仅凭经验无法总结出来的办法。因此在这个大数据时代,以数学为基础的数据挖掘领域常常会被大家神话。

认为现在的数据体量足够大,支持的异构数据种类越来越多,信息的数据化程度越来越完善,分布式的框架也给大数据的深度挖掘提供了有力支持,数据挖掘结果也就会越来越精准。其实不然,虽然这些有力条件提高了数据预测能力,但是毕竟还有很多事物暂时还无法数据化。比如人的思维,同时还有互联网没有采集到的人们的日常活动等。这些未被采集的信息,会导致我们挖掘的结果有偏差,甚至完全不可用。并且单一化的数学工具挖掘出的结果通常都比较片面。因此就需要我们建立多元化思维,在进行挖掘的时候要按照“T”型结构。

所谓“T”型结构就是利用现如今的有利条件进行纵向深度挖掘,同时也要横向扩展多学科知识。未来的数据挖掘领域,绝不是单一的数学一门单一学科就能搞定,而是多学科结合,综合考虑得出结论。

十、数据挖掘实例

1.准备工作

为了让大家更直观的了解数据挖掘的整个流程,我将该实例中需要用到的软件,以及如何安装、配置的过程整理出来,作为实例开始前的准备工作。我选取的是数据挖掘工具Rapidminer。之所以选择此工具,是由于它的便捷性,用拖拽的方式就可以进行分析挖掘,而本篇文章的侧重点是想展示数据挖掘的整个流程。这个工具无疑是最好的选择。

  • 1.1Rapidminer工具简介

Rapidminer是一款预测性分析和数据挖掘软件。它的特点是拖拽操作,无需编程,运算速度快,有开源版和商业版。它具有丰富数据挖掘分析和算法功能。常用于解决各种的商业关键问题。 如营销响应率、客户细分、客户忠诚度及终身价值、资产维护、资源规划、预测性维修、质量管理、社交媒体监测和情感分析等典型商业案例。解决方案覆盖了各个领域,包括汽车 、银行、保险、生命科学、制造业、石油和天然气、零售业及快消行业、通讯业、以及公用事业等各个行业。

编程:
https://baike.baidu.com/item/%E7%BC%96%E7%A8%8B

  • 1.2Rapidminer安装

我们需要登录rapidminer的官网来下载这个数据挖掘工具,如下是该网址: https://rapidminer.com/get-started/
登录后我们会看见如下所示的下载界面,在此页面上填写个人邮箱信息等信息,然后点击download按钮。

640?wx_fmt=png

图 3:rapidminer下载界面

在downloads页面,选择适合自己操作系统的安装包即可下载。下载后直接点击安装即可。

640?wx_fmt=png

图 4:不同操作系统的不同安装包
  • 1.3Rapidminer配置

rapidminer软件安装成功后,点击桌面的软件图标,即可打开该软件,由于我们的实例要进行数据库的读写操作。因此,我们需要创建一个数据库连接,笔者提前在电脑上安装了mysql数据库,数据库的安装过程超出了此文章的范围,读者需要提前安装一个数据库,不限于mysql。

如下所示,我们在界面左侧的数据库连接处进行数据库连接的创建。并填写数据库信息,最后进行连接测试,当像图7一样显示“Test successful”时,说明已经配置好了。

640?wx_fmt=png

图 5:创建数据库链接

640?wx_fmt=png

图 6:数据库连接名


640?wx_fmt=png

图 7:数据库信息

2.数据挖掘实例演示

下面我们利用Rapidminer数据挖掘工具,按照CRISP-DM(数据挖掘标准流程)来进行数据挖掘的实例演示。

640?wx_fmt=png

图 8:数据挖掘标准流程
  • 2.1商业理解

为了让大家体验真实的、完整的数据挖掘流程。我对一个真实的商业问题做了一个市场调查。并通过这个市场调查结果进行分析。要想把这个商业问题说清楚,我必须在这里介绍一下我的情况。

去年年底,我的女儿出生了。由于家里无人可以帮忙照顾,只好辞职在家全职带宝宝。也跟大多数的全职妈妈一样,成为了一个名副其实的微商。由于本人特别喜欢看书,就在微信上做起了卖书的小生意。我的生意以童书为主。在卖书的过程中,我发现爱给孩子买书的家长大多数自己本身就喜欢看书或者有学习意识。为了更精准的定位我的目标客户。我设计了一份专门针对宝妈的调查问卷,目的就是要研究爱学习的宝妈身上都有哪些特质。根据这些特质去有针对性的寻找我的目标客户,进而提高销量。

  • 2.2数据理解

在“宝妈情况问卷调查”中,我设计了20个与宝妈日常生活息息相关的问题,其具体内容如下:

1.姓名(m_name):调查者的姓名。由于本篇文章会在公众平台上发表,对姓名我会做脱敏处理,只留下“姓”作为区分宝妈的依据,如:“吴军”会被展示成“吴**”。

2.学历(eduction):调查者的学历信息。

3.专业(major):调查者的专业信息。

4.年龄(age):调查者的年龄。

5.工作年限(work_seniority):调查者的工作年限。

6.工作岗位(m_work):调查者的工作岗位。

7.孩子小名(nickname):宝宝的小名。由于孩子真实姓名也比较敏感,所以这里只填写小名。

8.孩子年龄(child_age):宝宝的年龄。

9.孩子性别(child_sex):宝宝的性别。

10.你认为自己家的孩子是否好带(care_level):

1——4,1表示好带,4表示特别不好带。

选项A.1      B.2     C.3       D.4

11.你现在当前的状态(state_now): 

A.全职在外工作  B.兼职在外工作  C.兼职在家  D.全职带娃 E.其它

12. 如果是自己带娃,其原因(myself_care_reason):

A.无人给带 B.别人带娃不放心  C.特别想自己带 D.其它

13. 作为女性,你认为工作和生活哪个更重要(m_import):

A.工作  B.生活   C.全都重要   D.具体哪个重要也说不清

14. 如果有别人给带娃,那个人是谁(care_child_people): 

A.爸爸妈妈     B.公公婆婆      C.其它亲戚     D.育儿嫂

15. 如果爸爸妈妈或公公婆婆想把孩子带老家养,什么都不用你们管,是否同意(go_home_or_not):

 A.同意      B.不同意

16. 工作\带娃的空闲时间是否考虑过学些专业知识提高自己的竞争力(study_or_not): 

A.是       B.否

17. 有没有学习过专业的育儿经验(parenting_knowledge_or_not):

A.学过      B.没学过

18. 是否认为自己是一个称职的妈妈(qualified_mothers_or_not): 

A.称职      B.不称职

19.如果有一个网站专门提供在家上班的工作,工作不耽误带娃,薪资水平也也不错,是否考虑注册一个账号,并在上面找一个合适的工作(work_home_or_not):

A.考虑     B.不考虑

20. 作为宝妈,你是否有时候感觉自己心情很低落,像是得了抑郁症,很需要别人进行情感疏导(mothers_mood):

 A.有           B.没有,心情一直很好

  • 2.3数据准备

在接下来的数据准备阶段,大家可以按照如下地址来下载所需的数据:

https://pan.baidu.com/s/145ljBAR2V0bG8FcXGL3j9A

  • 2.3.1数据收集

我通过调查问卷的形式进行了数据收集,以纸质问卷和腾讯问卷两部分组成,来模拟不同数据来源。纸质问卷的调查地点选择了人流量比较大的商场。如下是调查问卷中的一份:

640?wx_fmt=png

图 9:宝妈情况问卷调查

腾讯问卷是在 微信上进行收集的。如下是腾讯问卷调查的部分结果截图,姓名已做脱敏处理。

640?wx_fmt=png

图 10:宝妈情况问卷调查-腾讯问卷

由于纸质的调查问卷无法用来直接分析,因此我将问卷的结果整理到了excel中。如下是整理好的纸质调查问卷部分截图。excel文档的名字叫做“纸质调查问卷.xlsx”:

640?wx_fmt=png

图 11:纸质调查问卷

腾讯问卷部分,可以直接在线导出CSV格式。如下是导出的CSV文件中的部分数据截图。

640?wx_fmt=png

图 12:腾讯问卷

同时,我观察到腾讯问卷的导出结果已将选择题的A,B,C,D选项结果转换成了数字1,2,3,4。为后续的分析工作提供了方便。对比如下:

640?wx_fmt=png

图 13:腾讯问卷原始文件截图

640?wx_fmt=png

图 14:腾讯问卷导出csv后的文件

为了看起来方便,我们把导出的CSV文件名称改成“腾讯问卷结果.csv”。

  • 2.3.2数据清洗

1.在Rapidminer中新建一个流程,名字叫“1纸质问卷数据清洗过程”。这个流程的主要目的就是对纸质调查问卷数据进行清洗工作。具体情况如下所示:

640?wx_fmt=png

图 15:新建流程“1纸质问卷数据清洗过程”目录


640?wx_fmt=png

图 16:纸质调查问卷部分内容


640?wx_fmt=png

图 17:流程“1纸质问卷数据清洗过程”

纸质问卷数据清洗过程解读:

(1)“读取纸质调查问卷”的作用是将“纸质调查问卷.xlsx”文档中的内容读入Rapidminer中。(read excel控件)
(2)“过滤姓名为空的行”的作用是过滤掉“图16:纸质调查问卷部分内容”中的第七行内容,该行缺少很多必要信息,不适合做分析。
(3)“空值替换”的作用是将“图16:纸质调查问卷部分内容”中eduction、major、m_work列里的空值替换成默认的“无”。( Reolace Missing Values控件)
(4)“选项A替换成1”、 “选项B替换成2”、 “选项C替换成3”、 “选项D替换成4”、 “选项E替换成5”的作用是将“图16:纸质调查问卷部分内容”中state_now以后(包含state_now)(filter Examples控件)的字段中含有A、B、C、D、E选项的内容转换成1、2、3、4、5,便于后续模型的创建,及与腾讯问卷的导出结果保持一致。(Reolace控件)
(5)“写入数据库”的作用是将清洗好的“纸质调查问卷.xlsx”数据存入数据库questionnaire_excel表中。(Write Database控件)

2.在Rapidminer中新建一个流程,名字叫“1腾讯问卷数据清洗过程”。这个流程的主要目的就是对腾讯调查问卷数据进行清洗工作。具体情况如下所示:

640?wx_fmt=png

图 18:新建流程“1腾讯问卷数据清洗过程”目录


640?wx_fmt=png

图 19:腾讯调查问卷部分内容

640?wx_fmt=png

图 20:流程“1腾讯问卷数据清洗过程”

腾讯问卷数据清洗过程解读:

(1)“读取腾讯问卷结果” 的作用是将“腾讯问卷结果.csv”文档中的内容读入Rapidminer中。(Read CSV控件)
(2)”去掉不用的列信息”的作用是将“图19:腾讯调查问卷部分内容”中的编号、开始答题时间、结束答题时间、答题时长、自定义字段这5列信息去掉,因为这5列信息不是我们挖掘关注的指标。(Select Attributes控件)
(3)“修改字段名”的作用是将“图19:腾讯调查问卷部分内容”中的中文字段名改成与纸质调查问卷一样的字段名。如”1.姓名”改成”m_name”。( Rename控件)
(4)“字段值替换”的作用是将“图19:腾讯调查问卷部分内容”中第八行、“5.工作年限”(work_seniority)列的“不清楚”替换成空值。(Reolace控件)
(5)“缺失值替换1”的作用是将“图19:腾讯调查问卷部分内容”中“2.学历”、“3.专业”、”6.工作岗位”、“7.孩子小名”、“9.孩子性别”列的空值转换成默认值“无”,以及将“5.工作年限”、“8.孩子年龄”中的空值转换成该列的平均值。( Reolace Missing Values控件)
(6)“缺失值替换2”的作用是将“图19:腾讯调查问卷部分内容”中“12.如果是自己带娃,其原因?”中的空值转换成“4”4的含义是“其它”。( Reolace Missing Values控件)
(7)“写入数据库”的作用是将清洗好的腾讯问卷结果写入数据库questionaire_csv表中。(Write Database控件)

  • 2.3.3数据集成

1.在Rapidminer中新建一个流程,名字叫“2数据集成”。这个流程的主要目的就是将纸质问卷与腾讯问卷清洗好的数据进行整合。为下面的建模做准备。具体情况如下所示:

640?wx_fmt=png

图 21:新建流程“2.数据集成”目录


640?wx_fmt=png

图 22:流程“1纸质问卷数据清洗过程”结果


640?wx_fmt=png

图 23:流程“1腾讯问卷数据清洗过程”结果


640?wx_fmt=png

图 24:流程“2.数据集成”

数据集成解读:

(1)“读取清洗后纸质问卷”的作用是将流程“1纸质问卷数据清洗过程”(在数据库questionnaire_excel表中存放)的结果读取出来。(Read Database控件)
(2)“读取清洗后腾讯问卷”的作用是将流程“1腾讯问卷数据清洗过程”(在数据库questionnaire_csv表中存放)的结果读取出来。(Read Database控件)
(3)“数据类型转换1”的作用是将清洗后的纸质问卷数据的数据类型进行调整,如:state_now(当前状态)字段,清洗前是含有A、B、C、D选项的字符型。清洗后变成含有1、2、3、4选项的数值型。(Guess Types控件)
(4)数据类型转换2”的作用是将清洗后的腾讯问卷数据的数据类型进行调整,如:work_seniority(工作年限)字段,清洗前是含有“不清楚”字样的字符型,清洗后变成数值型。(Guess Types控件)
(5)“数据合并”的作用是将纸质问卷与腾讯问卷数据进行整合。(Union控件)
(6)“写入数据库”的作用是将整合后的数据存入数据库的questionnaire表中。(Write Database控件)

  • 2.3.4数据选择

1.在Rapidminer中新建一个流程,名字叫“3数据选择”。这个流程的主要目的就是选择建模需要用到的列,将不需要的列筛选下去。具体情况如下所示:

640?wx_fmt=png

图 25:新建流程“3.数据选择”目录


640?wx_fmt=png

图 26:流程“2数据集成”结果


640?wx_fmt=png

图 27:流程“3.数据选择” 

数据选择解读:

(1)“读取集成后数据”的作用是将流程“2数据集成”(在数据库questionnaire表中存放)的结果读取出来。(Read Database控件)
(2)“去掉nickname列”的作用是将nickname(孩子小名)列去掉。保留其它列信息,主要原因是此列对所要研究的问题建模没有意义。(Select Attributes控件)
(3)“写入数据库”的作用是将选择好的数据写入数据库questionnaire_select表中。(Write Database控件)

  • 2.3.5数据变换

1.在Rapidminer中新建一个流程,名字叫“4数据变换”。这个流程的主要目的就是将eduction、major、m_work及child_sex列中的类别变换成数字,便于建模。具体情况如下所示:

640?wx_fmt=png

图 28:新建流程“4.数据变换”目录

640?wx_fmt=png

图 29:流程“3数据选择”结果


640?wx_fmt=png

图 30:流程“4数据变换”

数据变换解读:

(1)“读取选择后数据”的作用是将流程“3数据选择”(在数据库questionnaire_select表中存放)的结果读取出来。(Read Database控件)
(2)“字典表”的作用是将数据库中新建的eduction、major、m_work及child_sex列与数字的映射关系读取出来。(Read Database控件)
(3)“映射变换”的作用是将eduction、major、m_work及child_sex列根据字典表的映射关系,转换成数字。(Replace (Dictionary))
(4)“数据类型转换”的作用是将eduction、major、m_work及child_sex列的数据类型由字符型转换成数值型。(Guess Types控件)
(5)“写入数据库”的作用是将变换好的数据存入数据库questionnaire_change表中。(Write Database控件)

其中学历信息映射:

640?wx_fmt=png

640?wx_fmt=png


其中专业信息映射:


640?wx_fmt=png

其中工作岗位信息映射:


640?wx_fmt=png


其中孩子性别信息映射:

640?wx_fmt=png

  • 2.3.6离群点分析

1.在Rapidminer中新建一个流程,名字叫“5离群点分析”。这个流程的主要目的是分析数据中是否有不和规范的数据。主要看分析出来的离群点是真的有问题,还是有新发现。具体情况如下所示:

640?wx_fmt=png

图 31:新建流程“5离群点分析”目录

640?wx_fmt=png

图 32:流程“4数据变换”结果

640?wx_fmt=png

图 33:流程“5离群点分析”

640?wx_fmt=png

图 34:离群点分析结果

640?wx_fmt=png

图 35:离群点分析图表展示1

640?wx_fmt=png

图 36:离群点分析图表展示2

640?wx_fmt=png

图 37:离群点分析图表展示3

离群点分析解读:

(1)“读取变换后数据”的作用是将流程“4数据变换”(在数据库questionnaire_change表中存放)的结果读取出来。(Read Database控件)
(2)“离群点分析”的作用是找出数据表中的离群点,并标记出来。这里可以设置需要找多少个离群点,因为我们的样本数据比较少,所以笔者设置标记2个离群点数据。(Detect Outlier (Distances)控件)
(3)“写入数据库”的作用是将经过离群点分析后的数据写入到数据库questionnaire_ distance表中。(Write Database控件)
执行流程后,找到了2个离群点如“图34:离群点分析结果”所示。
其中“吴**”如“图35:离群点分析图表展示1”与“图36:离群点分析图表展示2”所示工作年限21年,比其它人的工作年限都长,但是这个人的年龄同时也很大,所以这个离群点是合理的。不用对它进行处理。
另一个“马*”如“图37:离群点分析图表展示3”所示,她的年龄是7岁,7岁的宝妈,显然数据有问题,笔者猜测这个被调查者有可能是想写27岁。

  • 2.3.7处理离群点

1.在Rapidminer中新建一个流程,名字叫“6处理离群点”。这个流程的主要目的是将有问题的离群点数据进行处理,没问题的离群点进行保留。具体情况如下所示:

640?wx_fmt=png

图 38:新建流程“6处理离群点”目录

640?wx_fmt=png

图 39:流程“6处理离群点”

处理离群点解读:

(1)“读取离群点分析后数据”的作用是将流程“5离群点分析”(在数据库questionnaire_distance表中存放)的结果读取出来。(Read Database控件)
(2)“过滤掉年龄为7的数据”的作用是将流程“5离群点分析”中的异常点过滤掉。(filter Examples控件)
(3)“去掉离群点分析列”的作用是将流程“5离群点分析”中用于标记离群点的outlier列去掉。(Select Attributes控件)
(4)“写入数据库”的作用是将处理离群点后的数据存入数据库questionnaire_deal表中。(Write Database控件)

  • 2.4.建模

  • 2.4.1决策树

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。

基础:
https://baike.baidu.com/item/%E5%9F%BA%E7%A1%80/32794

期望:
https://baike.baidu.com/item/%E6%9C%9F%E6%9C%9B/35704

  • 2.4.2决策树建模

1.在Rapidminer中新建一个流程,名字叫“7决策树建模”。这个流程的主要目的是对所提出的问题进行建模,从而对问题进行预测。具体情况如下所示:

640?wx_fmt=png

图 40:新建流程“7决策树建模”目录

640?wx_fmt=png

图 41:流程“6处理离群点”结果

640?wx_fmt=png图 42:流程“决策树建模”

640?wx_fmt=png

图 43:决策树模型运行结果

640?wx_fmt=png

图 44:决策树模型结果描述

决策树建模解读:

(1)“读取处理离群点后数据”的作用是将流程“6处理离群点”(在数据库questionnaire_deal表中存放)的结果读取出来。(Read Database控件)

(2)“数据类型转换”的作用是将要预测的study_or_not(空闲时间是否学习)字段的数据类型转换成字符型。(Numerical to Polynominal控件)

(3)“设置角色”的作用是将m_name(姓名)列的角色设置成ID唯一标识,并且将study_or_not(空闲时间是否学习)列设置成label标识(rapidminer中需要将预测列标识成label字段才可以执行流程)。(Set Role控件)

(4)“决策树模型”的作用是应用该模型对现有数据进行预测。如“图43:决策树模型运行结果”是决策树模型的运行结果。(Decision Tree控件)

  • 2.5.评价

  • 2.5.1决策树模型评估

1.在Rapidminer中新建一个流程,名字叫“8决策树评估”。这个流程的主要目的是由于建模过程形成的众多结果,我们没有办法去判断哪个模型最符合现实的情况,因此,我们需要对所建的模型进行评估,通过评估结果来选择预测最准确的那个模型。具体情况如下所示:

640?wx_fmt=png

图 45:流程“8决策树评估”目录

640?wx_fmt=png

图 46:流程“8决策树评估”

640?wx_fmt=png

 图 47:流程“8决策树评估”2

640?wx_fmt=png

图 48:模型评估控件参数设置

640?wx_fmt=png

图 49:决策树评估结果

决策树评估解读:

(1)“读取处理离群点后数据” 的作用是将流程“6处理离群点”(在数据库questionnaire_deal表中存放)的结果读取出来。 (Read Database控件)
(2)“数据类型转换”的作用是将要预测的study_or_not(空闲时间是否学习)字段的数据类型转换成字符型。 (Numerical to Polynominal控件)
(3)“设置角色”的作用是将m_name(姓名)列的角色设置成ID唯一标识,并且将study_or_not(空闲时间是否学习)列设置成label标识(rapidminer中需要将预测列标识成label字段才可以执行流程)。 (Set Role控件)
(4)“模型评估”的作用是对不同的模型进行训练,然后对训练好的模型进行测试。 该模型内部也有一个流程,主要是进行模型训练,最后对训练好的模型进行评估。 此外如图“图48: 模型评估控件参数设置”训练数据和测试的分配比率设置成了0.7,也就是说这个控件将数据的70%当成训练数据,30%当成测试数据。 来对这个模型进行评估。 (Split Validation控件)
(5)“决策树模型”的作用是应用该模型对现有数据进行预测。 如“图43: 决策树模型运行结果”是决策树模型的运行结果。 (Decision Tree控件)
(6)“模型应用”的作用是按照现有的训练好的模型对测试数据进行预测。 (Apply Model控件)
(7)“性能评估”的作用是应用一系列标准值对模型进行评估。 如“图49: 决策树评估结果”所示,决策树模型准确率是100%。 (Performance控件)

6.部署

  • 6.1可视化展示

如下图所示,是决策树模型的可视化结果:

640?wx_fmt=png

图 50:决策树模型运行结果

640?wx_fmt=png

图 51:决策树模型结果描述


7.小结

640?wx_fmt=png

图 52:决策树评估中设置的角色

类别

中文值

转换值

study_or_not(工作\带娃的空闲时间是否考虑过学些专业知识提高自己的竞争力)

A.是

1

study_or_not(工作\带娃的空闲时间是否考虑过学些专业知识提高自己的竞争力)

B.否

2

m_import(作为女性,你认为工作和生活哪个更重要)

A.工作

1

m_import(作为女性,你认为工作和生活哪个更重要)

B.生活

2

m_import(作为女性,你认为工作和生活哪个更重要)

C.全都重要

3

m_import(作为女性,你认为工作和生活哪个更重要)

D.具体哪个重要也说不清

4

eduction(学历)

初中

1

eduction(学历)

高中

2

eduction(学历)

中专

3

eduction(学历)

大专

4

eduction(学历)

职高

5

eduction(学历)

大学本科

6

eduction(学历)

本科

6

eduction(学历)

硕士

7

eduction(学历)

研究生

7

eduction(学历)

0

通过“图52:决策树评估中设置的角色”中我们可以看出,我们将study_or_not字段设置成了label标签属性,在Rapidminer中,我们把哪个指标设置成label属性,我们分析的就是哪个指标。也就是笔者想要分析的“工作\带娃的空闲时间是否考虑过学些专业知识提高自己的竞争力”。并且通过上面的映射表可以看出study_or_not等于1是会利用业余时间学习的人,等于2是业余时间不学习的人。
 
通过“图50:决策树模型运行结果”及“图51:决策树模型结果描述”可以很直观的看到,当m_import(作为女性,你认为工作和生活哪个更重要)>2.5时有25个人会利用业余时间学习、1个人业余时间不学习。通过观察数据,会发现m_import大于2.5的数据都是3(C.全都重要)。接下来我们来看决策树的另一个分支:当m_import(作为女性,你认为工作和生活哪个更重要)<=2.5的时候,通过观察数据,会发现m_import小于等于2.5的数据是1和2的(1.工作,2.生活)。我们的数据还需要进一步判断eduction(学历)。当eduction学历大于5时没有人利用业余时间学习、3个人业余时间不学习。当eduction(学历)小于等于5时2个人利用业余时间学习、没有人业余时间不学习。通过上面表格可以看出eduction(学历)小于等于5的是本科以下学历的。
 

综上所述,笔者想要找到爱学习的宝妈,通过模型可以看出爱学习的宝妈有两部分组成,一部分是认为工作与生活全都重要的人。另一部分是认为工作、生活有一个重要,并且学历在本科以下的人。


——END——

640?wx_fmt=png
640?wx_fmt=png

「已注销」
关注 关注
  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数据挖掘的一般过程
evillist的博客
06-15 6万+
数据挖掘的一般过程本文主要参考了一篇文章(最后),那篇文章不太全面,因此加入了自己一点理解。由于实践经验太少,水平有限,希望大神指正。 1. 数据集选取或构造根据任务的目的,选择数据集。或者从实际中构造自己需要的数据。2. 数据预处理确定数据集后,就开始对数据进行预处理使得数据能够为我们所用了。数据预处理提高数据质量:准确性、完整性和一致性,包括数据清理、数据集成、数据规约和数据变换方法。 (
【计算机三级数据库技术】第14章 数据仓库与数据挖掘--思维导图
BetterBench的博客
03-04 756
目录1 基本概念2 决策支持系统(DSS)的发展2.1 基本概念2.2 基于数据仓库的决策支持系统3 数据仓库技术概述3.1 数据仓库的概念和特性3.2 数据仓库的体系结构和环境3.3 数据仓库的数据组织3.4 元数据3.5 操作型数据存储4 设计与建造数据仓库4.1 数据仓库设计的需求与方法4.2 数据仓库的数据模型4.3 数据仓库设计步骤5 数据仓库的运行与维护5.1 数据仓库数据的更新维护5.2 数据仓库监控与元数据管理6 联机分析处理(OLAP)与多维数据模型6.1 基本概念6.2 多维分析的基本
数据挖掘基本流程
12-21 1万+
一、数据挖掘过程可以分成以下 6 个步骤。 1. 商业理解:数据挖掘不是我们的目的,我们的目的是更好地帮助业务,所以第一步我们 要从商业的角度理解项目需求,在这个基础上,再对数据挖掘的目标进行定义。 2. 数据理解:尝试收集部分数据,然后对数据进行探索,包括数据描述、数据质量验证 等。这有助于你对收集的数据有个初步的认知。 3. 数据准备:开始收集数据,并对数据进行清洗、数据集成等操作,完成数据...
python数据分析与挖掘实战—第5章(挖掘建模)(1)
qq_42720463的博客
01-22 2045
经过数据探索与数据预处理,得到了可以直接建模的数据。根据数据挖掘目标和数据形式: 5.1 分类与预测 分类:预测分类标号(离散属性),构造一个分类模型,输入样本的属性值,输出对应的类别,将每个样本映射到预先定义好的类别。分类模型建立在已有类标记的数据集上,模型在已有样本上的准确率可以方便计算,所以分类属于有监督的学习。 预测:建立连续值函数模型,预测给定自变量对应的因变量的值,建立两种或两种以上变量间相互依赖的函数模型,然后进行预测或控制。 5.1.1 实现过程 分类算法: 第一步:学习步 通过归纳分析
数据挖掘的开源工具和库:最佳实践和使用指南
最新发布
禅与计算机程序设计艺术
12-30 996
1.背景介绍 数据挖掘是指从大量数据中发现有价值的信息和知识的过程。随着数据的增长,数据挖掘技术变得越来越重要,帮助组织更好地理解其数据,从而提高业务效率。 在过去的几年里,许多开源工具和库已经成为数据挖掘领域的主要力量。这些工具和库提供了各种数据挖掘算法和技术,使得数据科学家和分析师能够更轻松地处理和分析数据。 在本文中,我们将讨论一些最常用的开源数据挖掘工具和库,并提供一些最佳实践和使用...
教程手把手教你做问答系列答案.docx
01-09
这是教程手把手教你做问答系列的资源。 系列专题:https://blog.csdn.net/weixin_43233491/category_9656513.html
说明(必看!教程手把手教你做问答系列).txt
01-09
这是教程手把手教你做问答系列的资源。 系列专题:https://blog.csdn.net/weixin_43233491/category_9656513.html
手把手教你构建数据集.docx
12-16
手把手教你构建数据集.docx
MFC案例教程手把手教你完成一个MFC案例。)
06-14
手把手教你完成一个MFC案例。通过此案例,可以帮助你完成课设及MFC的学习
手把手教你搭建数据驱动测试框架构
02-24
本文来自于testerhome,文章介绍了如何搭建基于SeleniumWebDriver的...如果想使用一组不同的数据来执行的相同的操作没那么你就可以选择数据驱动。比如,在这么一种场景下,例如你需要用多个不同的账号和密码来登陆某个
【python】数据挖掘分析清洗——特征选择(特征筛选)方法汇总
weixin_47058355的博客
04-27 1万+
特征构造得到足够的广度后,将这些特征进行筛选特征选择主要有两个功能:减少特征数量、降维,使模型泛化能力更强,减少过拟合增强对特征和特征值之间的理解通常来说,从两个方面考虑来选择特征:特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择特征选择指的是从原始数据中选择最具有代表性和重要性的特征,保留这些特征并去除无用或冗余的特征。
数据挖掘的流程
mischen520的博客
09-07 5177
数据挖掘是指一个完整的过程,该过程从大型数据库中挖掘先前未知的,有效的,可实用的信息,并使用这些信息做出决策或丰富知识。 数据挖掘环境示意图如图 3-13 所示。 数据挖掘的流程大致如下: 1.问题定义在开始数据挖掘之前,最先的也是最重要的要求就是熟悉背景知识,弄清用户的需求。缺少了背景知识,就不能明确定义要解决的问题,就不能为挖掘准备优质的数据,也很难正确地解释得到的结果。要想充分发挥数据挖掘的价值,必须对目标有一个清晰明确的定义,即决定到底想干什么。 2.建立数据挖掘库 要进行数据挖掘必须收集要挖掘的
数据挖掘综合应用:犯罪类型预测案例
段智华的博客
12-11 1301
运用Python相关工具包完成数据分析及预测任务,实战随机森林算法和神经网络算法的调参优化,通过一些特征对犯罪类型进行预测。
数据挖掘学习笔记(一)
BerMaker
05-02 1万+
1        引论 1.1   为什么进行数据挖掘 1.1.1           迈向信息时代 数据挖掘把大型数据集转换成知识,帮助我们应对当代的全球性挑战。 1.1.2           数据挖掘是信息技术的进化 数据挖掘可以看做信息技术自然进化的结果。数据库和数据管理产业在一些关键功能的开发上不断发展:数据收集和数据库创建(包括数据存储和检索、数据库事务处理)和高级数据分析(
数据挖掘5大流程
小小梦想家
02-26 1516
1.获取数据 在公司的话数据挖掘/分析师一般是从同事那里获取数据。 2.数据预处理 获取到的数据一般是杂乱无的,并不符合我们模型的需要。需要对其处理: 数据类型统一 去重 去除噪声数据 无量纲化 数据归一化 数据标准化 3.特征工程 一般或得到的数据有很多特征,一些特征之间又存在关联,或者一些特征对于我们模型的建立没有丝毫的意义,这时候我们就需要挑选我们所需要的特征。将原始数...
数据挖掘学习资源汇总
学-> 思->用
11-05 569
Computer Science courses with video lectures Please Note: UC Berkeley course videos to be taken offline on 15th March 2017. As per website, Beginning March 15, 2017, iTunesU Course Capture content wil...
数据挖掘 & 数据探索上手简易教程
7d6a4的博客
05-26 217
Easy Data Hacking & Mining & Exploring *Note: This essay uses python for data mining. * 独立博客还有其他博文 懒得扒了 移步 Crazydogen’s indie blog Agenda Pandas Pandas-Profiling Statsmodels Missingno Wordcloud Pandas Pandas is a Python library for exploring, pr
数据挖掘的数据集资源
热门推荐
Junelf's BLOG
06-26 1万+
转:http://bbs.w3china.org/blog/more.asp?name=idmer&id=24017大家做数据挖掘研究时,常常为找不到合适的数据而发愁。在KDNuggets上有Datasets栏目,提供一些数据集,网址为:http://www.kdnuggets.com/datasets/还有另外一个很好的资源网址为:http://kdd.ics.uci.edu/,里面包含
php对接海康视频教程_手把手教你php对接海康api
06-08
对接海康视频可以使用海康提供的开放平台API进行实现。以下是一个简单的PHP对接海康API的教程: 1. 注册并申请开放平台API的AppKey和AppSecret。 2. 在PHP中发送HTTP请求获取accessToken。可以使用curl库实现。示例代码如下: ```php $url = 'https://api.hikvision.com/oauth/token'; $data = array( 'grant_type' => 'client_credentials', 'appKey' => 'your-appkey', 'appSecret' => 'your-appsecret' ); $options = array( CURLOPT_HTTPHEADER => array('Content-Type: application/x-www-form-urlencoded'), CURLOPT_POST => true, CURLOPT_POSTFIELDS => http_build_query($data), CURLOPT_RETURNTRANSFER => true ); $ch = curl_init($url); curl_setopt_array($ch, $options); $response = curl_exec($ch); curl_close($ch); echo $response; ``` 3. 使用获取的accessToken调用API。例如,获取设备列表API的示例代码如下: ```php $url = 'https://api.hikvision.com/api/v1/device'; $options = array( CURLOPT_HTTPHEADER => array('Authorization: Bearer ' . $accessToken), CURLOPT_RETURNTRANSFER => true ); $ch = curl_init($url); curl_setopt_array($ch, $options); $response = curl_exec($ch); curl_close($ch); echo $response; ``` 以上就是一个简单的PHP对接海康API的教程。需要注意的是,具体API的使用方法和请求参数需要参考海康提供的API文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 一张图告诉你学Java还是Python! 56308
  • 看看人家程序员是怎么表白的 !(附教程~) 50662
  • 全景图解我国高铁数据,洞悉城市崛起 48909
  • 详细指南!手把手教你上手Tableau软件! 48135
  • 我们整理了2017年最新政府大数据应用案例! 36613

最新评论

  • 收藏 | 送你浙大陈华钧教授《知识图谱导论》课程系列PPT

    海阔&天空742: 190519

  • 瓜子二手车如何玩转AI赋能下的新零售(附PPT下载)

    2301_81678882: 181123

  • 60万餐厅数据为你画出全国美食地图(附技术讲解)

    *怀瑾*: 想问一下,全国的美食数据具体都从哪里获取的

  • 清华大学陈煜波:数字经济与中国市场的数字化转型(附视频&amp;PPT)

    qq_43095845: 0607

  • 收藏 | 送你浙大陈华钧教授《知识图谱导论》课程系列PPT

    weixin_42847839: 190519

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 深度学习之Attention模型详解
  • 报名丨 “中国的城市化、数字技术和创新市场” ——清华大学-麻省理工学院联合训练营开始招募啦...
  • 英特尔AI医疗实战曝光:10倍加速辅助诊断、准确度高达90%
2019年435篇
2018年427篇
2017年141篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳SEO优化公司河源百度关键词包年推广益阳网站seo优化宜春英文网站建设推荐铜川关键词排名包年推广长春网站建设报价苏州网站搜索优化价格黄冈网站优化软件公司汉中SEO按天计费报价九江网站搜索优化临猗网站优化按天扣费公司百色网站建设价格固原SEO按天计费推荐海东seo价格益阳营销型网站建设报价布吉关键词排名哪家好重庆seo优化公司驻马店seo优化价格石家庄seo排名中山营销网站报价济宁百度seo价格随州外贸网站建设多少钱邵阳百姓网标王公司辽源百姓网标王哪家好深圳seo排名公司毕节网站seo优化哪家好湖州关键词按天计费推荐金华百度网站优化公司唐山网站优化按天扣费多少钱漳州网站关键词优化报价聊城网站推广方案价格歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化