楼主: 离婚律师
1642 4

学会数据分析背后的挖掘思维, 数据分析就成功了一半(上篇) [推广有奖]

  • 0关注
  • 2粉丝

讲师

70%

还不是VIP/贵宾

-

威望
0
论坛币
3064 个
通用积分
0
学术水平
5 点
热心指数
5 点
信用等级
2 点
经验
6807 点
帖子
858
精华
0
在线时间
175 小时
注册时间
2014-8-22
最后登录
2018-6-22

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

学会数据分析背后的挖掘思维,

数据分析就成功了一半【上篇】


在数据分析中,模型是非常有用和有效的工具和数据分析应用的场景,在建立模型的过程中,数据挖掘很多时候能够起到非常显著的作用。伴随着计算机科学的发展,模型也越来越向智能化和自动化发展。对数据分析而言,了解数据挖掘背后的思想,可以有助于建立更具稳定性的模型和更高效的模型。


点击进入21世纪大数据人才汇聚领域』

点击进入21世纪数据分析精英聚集地』

点击进入21世纪大数据高薪就业领地』


数据挖掘前世今生

数据模型很多时候就是一个类似Y=f(X)的函数,这个函数贯穿了模型从构思到建立,从调试再到最后落地应用的全部过程。

Y=f(X)建立之路

对模型而言,其中的规则和参数,最初是通过经验判断人为给出的。伴随着统计方法和技术的发展,在模型的建立过程中,也引入了统计分析的过程。更进一步地,随着计算机科学的发展,建模的过程,也被交给了机器来完成,因此数据挖掘也被用到了模型的建立中。

数据挖掘,是从大量数据中,挖掘出有价值信息的过程。在有的地方,数据挖掘也被成为是数据探矿,正如数据挖掘的英文data mining一样,从数据中挖掘有价值的知识,正如在矿山中采集钻石一般,不断去芜存精,不断发掘数据新的价值。数据挖掘是通过对数据不断的学习,从中发掘规律和信息的过程,因此也被称为统计学习或者是机器学习。对数据挖掘而言,其应用范围广泛,除了建模,在人工智能领域也有使用。

回到模型中,从经验判断到数据挖掘,建立模型的计算特征发生了极大的改变。

计算特征的发展

首先数据的维度开始从少变多,最初只有几个维度,到现在有上百个维度。数据的体量,即记录的条数也从少量到海量,从过去了百条规模到了现在亿条规模。伴随着数据获取的难度下降,数据的维度和记录数量会越来越多。在这种情况下,数据的处理过程也越来越复杂,从过去简单的几次加减计算得到结果,到了现在必须要经历上亿次的复杂运算。同时,伴随着计算性能的提升,对于从数据中提取信息而言,也从渐渐深入,过去只能发现一眼看出的浅表信息,如今可以不断去挖掘隐含的知识。

数据挖掘的基本思想

数据挖掘的别名机器学习和统计学习一样,数据挖掘的实质是通过计算机的计算能力在一堆数据中发掘出规律并加以利用的过程。因此对数据挖掘而言,就需要经历规则学习、规则验证和规则使用的过程。

数据挖掘的基本思想

规则学习又称为模型训练,在这个步骤中,有一个数据集将作为训练集。按照相关的算法和输出规则的要求,从训练集中筛选出需要使用的变量,并根据这些变量生成相关的规则。有的时候,是将过去已经发生的数据作为训练集,在对比已知的结果和输入的变量的过程中,以尽可能降低输出误差的原则,拟合出相应的模型。

当产生了规则后,就需要验证规则的效果和准确度,这个时候就需要引入验证集。验证集和训练集具有相同的格式,既包含了已知的结果也包含了输入的变量。与训练集不同的是,对验证集的应用是直接将规则应用于验证集中,去产生出相应的输出结果,并用输出的结果去对比实际情况,以来确定模型是否有效。如果有效的话,就可以在实际的场景中应用。如果效果不理想,则回头去调整模型

测试集是将模型在实际的场景中使用,是直接应用模型的步骤。在测试集中,只包含输入变量却没有像其他两个数据一样存在的已知结果。正因为结果未知,就需要用测试集通过模型去产生的输出的结果。这个输出结果,将在为结果产生以后进行验证,只要有效,模型就会一直使用下去。

数据挖掘的流程

数据挖掘与数据分析的流程相似,都是从数据中发现知识的过程,只不过由于数据体量和维度的原因,数据挖掘在计算上最大。

数据挖掘的流程

对数据挖掘而言,首先是进行数据获取,数据获取的来源很多,有系统中自行记录的数据,对这种数据只要导出即可,同时也有外来数据,比如网页爬取得数据,或者是购买的数据,这些数据需要按照分析系统的需求进行导入。

在完成了数据获取步骤后,就需要进行数据处理,数据处理即是处理数据中的缺失值,错误值以及异常值,按照相关的规则进行修正或者删除,同时在数据处理中也需要根据变脸之间的关系,产生出一系列的衍生变量。总而言之,数据处理的结果是可以进行分析的数据,所有数据在进行分析以前都需要完成数据处理的步骤。

如果数据在分布上存在较极端的情况,就需要经历数据平衡的不走。例如对于要输出的原始变量而言,存在及其少量的一种类别以及及其大量的另一种类别,就像有大量的0和少量的1一样,在这种情况下,就需要对数据进行平衡,通过复制1或者削减0的形式生成平衡数据集。

当完成数据平衡后,将会把数据处理的结果分出一部分作为验证集使用,如果数据平衡性好,那么剩下的部分作为训练集,如果平衡性不好,那么平衡数据集就会作为训练集使用。当有了训练集后,就按照相关的算法对训练集进行学习,从而产生出相关的规则和参数。当有了规则以后,就将产生的规则用在验证集中,通过对比已知结果和输出结果之间的误差情况,来判断是否通过。如果通过则在后面再测试集中使用,如果未通过,就通过数据平衡、参数调整,以及变量选择等手段重新调整规则,并再次进行验证,直到通过验证。

对于验证集验证的步骤而言,在无监督学习中没有这个步骤,当缠上规则后,就直接用于测试集。

数据挖掘周而复始

数据挖掘是一个周而复始的过程,在生成规则的过程中,不断地对模型进行调整,从而提升精度。同时也将多批次的历史数据引入到数据挖掘的过程中,进行多次的验证,从而在时间上保证模型的稳定性。

数据挖掘的模式

在数据挖掘中,对于规则的获取,存在三种方式,分别是监督学习,无监督学习和半监督学习,这三种方式都是通过从数据的统计学习来制定规则。

在一个数据挖掘问题中,变量可以分为自变量和因变量,规则是以自变量为输入,以因变量为输出的结果,由此对数据挖掘问题,就把自变量定义为X,把因变量定义为Y。

获取规则的方式,来源于对数据的统计学习

对于监督学习而言,训练集中包括了自变量X和因变量Y,通过对比X和Y的关系,得除相应的规则,同时再在验证集中,通过输入验证集的自变量X,借助规则得到因变量Y的预测值,再将Y的预测值与实际值进行对比,看是否可以将模型验证通过,如果通过了,就把只包含自变量X的测试集用于规则中,最终输出因变量Y的预测值。在监督学习中,因变量的实际值和预测值的对比,就起到监督的作用,在规则制定中需要尽量引导规则输出的结果向实际值靠拢。

对无监督学习而言,训练集中,就没有包含因变量Y,需要根据模型的目标,通过对自变量X的分析和对比来得出相关的规则,并能够产生合理的输出结果,即Y,在制定规则的过程中,需要有一些人为的原则对规则进行调整。当完成调整后,就可以把只包含自变量X的测试集放到规则中,去产生规则的结果Y。

对比监督学习和无监督学习,最大的区别就是,在制定规则的过程中,是否有Y用于引导规则的生成。监督学习中,有Y存在,生成规则过程中和生成规则时,也会对比Y的预测值和实际值。而在无监督学习中,就没有Y作为对比的标准,相应的规则都直接由X产生。

半监督学习,与监督学习类似,也需要因变量Y参与到规则生成和规则验证中去。但是在训练集只用只有一少部分的对象既有自变量X和因变量Y,还有大部分对象只包含了自变量X。因此在对半监督学习的规则生成中,需要有一些特殊的手段来处理只包含的自变量X的对象后,再生成相关的规则。在后面的验证和测试的流程都与监督学习一致。因而对于半监督学习,最重要的问题就是如何借助少量的因变量Y而产生出可以适用的规则。

数据挖掘的应用场景

数据挖掘应用的场景很多,通常有四种情况被广泛的使用。

数据挖掘的应用场景

首先是聚类分析,就是将不同的对象,根据其变量特征的分布自然地分成不同的类别。此外是分类模型,这是针对已知的类别,构建出分类的模型,通过分类的模型来探求其他未分类对象的类别。第三是预测估计,集根据对象的连续数据因变量,通过围绕已知的维度,构建出预测因变量的模型,从而对因变量未知的对象进行估计。最后是关联分析,即通过探求数据对象之间的相关关系,来发现对象之间的联系,在关联分析中,更多是以对象之间的关系作为输出。

聚类分析

聚类分析是一种无监督学习的数据挖掘方法,其目的是基于对象之间的特征,自然地将变量划分为不同的类别。在聚类分析中,基本的思想就是根据对象不同特征变量,计算变量之间的距离,距离理得越近,就越有可能被划为一类,离得越远,就越有可能被划分到不同的类别中去。

聚类分析基本思想

例如在坐标系中,B距离A的距离远远小于,B到C的距离,因此,AB更容易划分为一类,而BC更容易为不同的类别。通常来说,一个对象距离同类的距离是最近的,都小于其他类别中对象的距离。

在聚类分析中,有两种常用的方法,一种是K-means聚类,一种是层次聚类。

K-means聚类VS层次聚类

在K-means聚类中,是预先规定出要产生多少个类别的数量,再根据类别数量自动聚成相应的类。对K-means而言,首先是随机产生于类别数相同的初始点,然后判断每个点与初始点的距离,每个点选择最近的一个初始点,作为其类别。当类别产生后,在计算各个类别的中心点,然后计算每个点到中心点的距离,并根据距离再次选择类别。当新类别产生后,再次根据中心点重复选择类别的过程,直到中心点的变化不再明显。最终根据中心点产生的类别,就是聚类的结果。正如图中所示,一组对象中需要生成三个类别,各个类别之间都自然聚焦在一起。

在层次聚类中,不需要规定出类别的数量,最终聚类的数量可以根据人为要求进行划分。对层次聚类,首先每个对象都是单独的类别,通过比较两两之间距离,首先把距离最小的两个对象聚成一类。接着把距离次小的聚成一类,然后就是不断重复按距离最小的原则,不断聚成一类的过程,直到所有对象都被聚成一类。在层次聚类中,可以以一张树状图来表示聚类的过程,如果要讲对象分类的话,就可以从根节点触发,按照树状图的分叉情况,划分出不同的类别来。在图中,把一组对象分成了三个类别,可见这三个类别就是构成了树状图最开始的三个分支。

聚类分析的过程,和分桔子其实很很像,人们通常都把特征相同的桔子分成一类,聚类分析中,也是同样的方式。

聚类分析案例

正如在这个例子中,有A-H的8个桔子,对每个桔子而言有提体积和变量两个变量。通过将各个桔子投射到重量和体积构成的坐标系中,可以发现BEF距离很近,ACG距离很近,而DH距离很近。如果聚成3类的话,可以是ACG、BEF,DH各为一类。如果是聚成两类,BEFDH与ACG相对更近,因此可以是ACG为一类,而BEFDH为另外一类


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:数据分析 Data Mining k-means聚类 数据挖掘与数据分析 机器学习和统计学 数据分析 挖掘思维 数据 分析 挖掘

沙发
军旗飞扬 发表于 2017-11-28 14:54:04 |只看作者 |坛友微信交流群
谢谢分享

使用道具

藤椅
jamesfuxk 在职认证  发表于 2017-12-21 23:27:25 |只看作者 |坛友微信交流群
谢谢分享

使用道具

板凳
wanwanone 发表于 2018-6-1 05:40:11 |只看作者 |坛友微信交流群
只发了上,下半部分没发。

不过,网上有完整的,可以搜一下,写得挺好。

使用道具

报纸
jxf5245 学生认证  发表于 2019-4-27 00:10:22 |只看作者 |坛友微信交流群
谢谢楼主分享

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 09:41