Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

宋莹作者文婧、林亦霖校对王菁编辑

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

本文为你介绍数据挖掘的知识及应用。

引言

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

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

图一:数据挖掘思维导图

一、什么是数据挖掘

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

二、为什么需要数据挖掘

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

三、演化过程

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

四、数据挖掘的具体步骤

许多人把数据挖掘视为“数据中的知识发现”,以下是其具体的步骤:

  • 数据清理(消除噪声和不一致数据)
  • 数据集成(不同来源与格式的数据组合到一起)
  • 数据选择(挖掘所需的数据)
  • 数据变换(数据变换成适合挖掘的形式,如汇总,聚集操作)
  • 数据挖掘(方法,建模)
  • 模式评估(结果模型)
  • 知识表示(可视化)

五、数据挖掘的系统结构

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

六、对何种数据进行挖掘

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

七、挖掘任务

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

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

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

八、挖掘什么模式的数据

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按钮。

图三:rapidminer下载界面

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

图四:不同操作系统的不同安装包

  • 1.3Rapidminer配置

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

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

图五:创建数据库链接

图六:数据库连接名

图七:数据库信息

2.数据挖掘实例演示

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

图八:数据挖掘标准流程

  • 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数据收集

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

图九:宝妈情况问卷调查

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

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

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

图十一:纸质调查问卷

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

图十二:腾讯问卷

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

图十三:腾讯问卷原始文件截图

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

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

  • 2.3.2数据清洗

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

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

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

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

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

(1)“读取纸质调查问卷”的作用是将“纸质调查问卷.xlsx”文档中的内容读入Rapidminer中。(read excel控件)

(2)“过滤姓名为空的行”的作用是过滤掉“图十六:纸质调查问卷部分内容”中的第七行内容,该行缺少很多必要信息,不适合做分析。

(3)“空值替换”的作用是将“图十六:纸质调查问卷部分内容”中eduction、major、m_work列里的空值替换成默认的“无”。( Reolace Missing Values控件)

(4)“选项A替换成1”、 “选项B替换成2”、 “选项C替换成3”、 “选项D替换成4”、 “选项E替换成5”的作用是将“图十六:纸质调查问卷部分内容”中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腾讯问卷数据清洗过程”。这个流程的主要目的就是对腾讯调查问卷数据进行清洗工作。具体情况如下所示:

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

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

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

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

(1)“读取腾讯问卷结果” 的作用是将“腾讯问卷结果.csv”文档中的内容读入Rapidminer中。(Read CSV控件)

(2)”去掉不用的列信息”的作用是将“图十九:腾讯调查问卷部分内容”中的编号、开始答题时间、结束答题时间、答题时长、自定义字段这5列信息去掉,因为这5列信息不是我们挖掘关注的指标。(Select Attributes控件)

(3)“修改字段名”的作用是将“图十九:腾讯调查问卷部分内容”中的中文字段名改成与纸质调查问卷一样的字段名。如”1.姓名”改成”m_name”。( Rename控件)

(4)“字段值替换”的作用是将“图十九:腾讯调查问卷部分内容”中第八行、“5.工作年限”(work_seniority)列的“不清楚”替换成空值。(Reolace控件)

(5)“缺失值替换1”的作用是将“图十九:腾讯调查问卷部分内容”中“2.学历”、“3.专业”、”6.工作岗位”、“7.孩子小名”、“9.孩子性别”列的空值转换成默认值“无”,以及将“5.工作年限”、“8.孩子年龄”中的空值转换成该列的平均值。( Reolace Missing Values控件)

(6)“缺失值替换2”的作用是将“图十九:腾讯调查问卷部分内容”中“12.如果是自己带娃,其原因?”中的空值转换成“4”4的含义是“其它”。( Reolace Missing Values控件)

(7)“写入数据库”的作用是将清洗好的腾讯问卷结果写入数据库questionaire_csv表中。(Write Database控件)

  • 2.3.3数据集成

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

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

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

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

图二十四:流程“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数据选择”。这个流程的主要目的就是选择建模需要用到的列,将不需要的列筛选下去。具体情况如下所示:

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

图二十六:流程“2数据集成”结果

图二十七:流程“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列中的类别变换成数字,便于建模。具体情况如下所示:

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

图二十九:流程“3数据选择”结果

图三十:流程“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控件)

其中学历信息映射

其中专业信息映射

其中工作岗位信息映射

其中孩子性别信息映射

  • 2.3.6离群点分析

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

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

图三十二:流程“4数据变换”结果

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

图三十四:离群点分析结果

图三十五:离群点分析图表展示1

图三十六:离群点分析图表展示2

图三十七:离群点分析图表展示3

离群点分析解读:

(1)“读取变换后数据”的作用是将流程“4数据变换”(在数据库questionnaire_change表中存放)的结果读取出来。(Read Database控件)

(2)“离群点分析”的作用是找出数据表中的离群点,并标记出来。这里可以设置需要找多少个离群点,因为我们的样本数据比较少,所以笔者设置标记2个离群点数据。(Detect Outlier (Distances)控件)

(3)“写入数据库”的作用是将经过离群点分析后的数据写入到数据库questionnaire_ distance表中。(Write Database控件)

执行流程后,找到了2个离群点如“图三十四:离群点分析结果”所示。

其中“吴**”如图“图三十五:离群点分析图表展示1”与“图三十六:离群点分析图表展示2”所示工作年限21年,比其它人的工作年限都长,但是这个人的年龄同时也很大,所以这个离群点是合理的。不用对它进行处理。

另一个“马*”如图“图三十七:离群点分析图表展示3”所示,她的年龄是7岁,7岁的宝妈,显然数据有问题,笔者猜测这个被调查者有可能是想写27岁。

  • 2.3.7处理离群点

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

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

图三十九:流程“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决策树建模”。这个流程的主要目的是对所提出的问题进行建模,从而对问题进行预测。具体情况如下所示:

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

图四十一:流程“6处理离群点”结果

图四十二:流程“决策树建模”

图四十三:决策树模型运行结果

图四十四:决策树模型结果描述

决策树建模解读:

(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)“决策树模型”的作用是应用该模型对现有数据进行预测。如图“图四十三:决策树模型运行结果”是决策树模型的运行结果。(Decision Tree控件)

  • 2.5.评价
  • 2.5.1决策树模型评估

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

图四十五:流程“8决策树评估”目录

图四十六:流程“8决策树评估”

图四十七:流程“8决策树评估”2

图四十八:模型评估控件参数设置

图四十九:决策树评估结果

决策树评估解读:

(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)“模型评估”的作用是对不同的模型进行训练,然后对训练好的模型进行测试。该模型内部也有一个流程,主要是进行模型训练,最后对训练好的模型进行评估。此外如图“图四十八:模型评估控件参数设置”训练数据和测试的分配比率设置成了0.7,也就是说这个控件将数据的70%当成训练数据,30%当成测试数据。来对这个模型进行评估。(Split Validation控件)

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

(6)“模型应用”的作用是按照现有的训练好的模型对测试数据进行预测。(Apply Model控件)

(7)“性能评估”的作用是应用一系列标准值对模型进行评估。如图“图四十九:决策树评估结果”所示,决策树模型准确率是100%。(Performance控件)

6.部署

  • 6.1可视化展示

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

图五十:决策树模型运行结果

图五十一:决策树模型结果描述

7.小结

图五十二:决策树评估中设置的角色

类别中文值转换值
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


通过图“图五十二:决策树评估中设置的角色”中我们可以看出,我们将study_or_not字段设置成了label标签属性,在Rapidminer中,我们把哪个指标设置成label属性,我们分析的就是哪个指标。也就是笔者想要分析的“工作\带娃的空闲时间是否考虑过学些专业知识提高自己的竞争力”。并且通过上面的映射表可以看出study_or_not等于1是会利用业余时间学习的人,等于2是业余时间不学习的人。

通过图“图五十:决策树模型运行结果”及图“图五十一:决策树模型结果描述”可以很直观的看到,当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的是本科以下学历的。

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

THU数据派
THU数据派

THU数据派"基于清华,放眼世界",以扎实的理工功底闯荡“数据江湖”。发布全球大数据资讯,定期组织线下活动,分享前沿产业动态。了解清华大数据,敬请关注姐妹号“数据派THU”。

入门数据挖掘
72
相关数据
参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

数据科学技术

数据科学,又称资料科学,是一门利用数据学习知识的学科,其目标是通过从数据中提取出有价值的部分来生产数据产品。它结合了诸多领域中的理论和技术,包括应用数学、统计、模式识别、机器学习、数据可视化、数据仓库以及高性能计算。数据科学通过运用各种相关的数据来帮助非专业人士理解问题。

规划技术

人工智能领域的「规划」通常是指智能体执行的任务/动作的自动规划和调度,其目的是进行资源的优化。常见的规划方法包括经典规划(Classical Planning)、分层任务网络(HTN)和 logistics 规划。

数据清理技术

数据清理(data cleansing)指删除、更正数据库中错误、不完整、格式有误或多余的数据。数据清理不仅仅更正错误,同样加强来自各个单独信息系统不同数据间的一致性。专门的数据清理软件能够自动检测数据文件,更正错误数据,并用全企业一致的格式整合数据。

数据库技术

数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

逻辑技术

人工智能领域用逻辑来理解智能推理问题;它可以提供用于分析编程语言的技术,也可用作分析、表征知识或编程的工具。目前人们常用的逻辑分支有命题逻辑(Propositional Logic )以及一阶逻辑(FOL)等谓词逻辑。

聚类分析技术

聚类分析(CA)是一种典型的无监督学习方法,这种方法是根据对象的特点将它们分成不同的组。K-均值是应用最广泛的聚类方法,其它方法还包括 k-Medoids、分层聚类和 DBSCAN。期望最大化法(EM)也是聚类分析的一种解决方案。聚类分析在数据挖掘、市场调研、异常值检测等许多领域都有应用。另外,降维技术也是一类类似于聚类分析的无监督学习方法,其典型的代表有主成分分析(PCA)、线性判别分析和 Isomap。

操作系统技术

操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。

数据仓库技术

主动学习技术

主动学习是半监督机器学习的一个特例,其中学习算法能够交互式地查询用户(或其他信息源)以在新的数据点处获得期望的输出。 在统计学文献中,有时也称为最佳实验设计。

数据集成技术

数据集成是把不同来源、格式、特点性质的数据在逻辑上或物理上有机地集中,从而为企业提供全面的数据共享。在企业数据集成领域,已经有了很多成熟的框架可以利用。目前通常采用联邦式、基于中间件模型和数据仓库等方法来构造集成的系统,这些技术在不同的着重点和应用上解决数据共享和为企业提供决策支持。

腾讯机构

腾讯,1998年11月诞生于中国深圳,是一家以互联网为基础的科技与文化公司。我们的使命是“通过互联网服务提升人类生活品质”。腾讯秉承着 “一切以用户价值为依归”的经营理念,为亿万网民提供优质的互联网综合服务。 腾讯的战略目标是“连接一切”,我们长期致力于社交平台与数字内容两大核心业务:一方面通过微信与QQ等社交平台,实现人与人、服务及设备的智慧连接;另一方面为数以亿计的用户提供优质的新闻、视频、游戏、音乐、文学、动漫、影业等数字内容产品及相关服务。我们还积极推动金融科技的发展,通过普及移动支付等技术能力,为智慧交通、智慧零售、智慧城市等领域提供有力支持。

http://www.tencent.com/
相关技术
聚类技术

将物理或抽象对象的集合分成由类似的对象组成的多个类的过程被称为聚类。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。“物以类聚,人以群分”,在自然科学和社会科学中,存在着大量的分类问题。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。

你好,我想问下子上面数据链接的密码是什么