在数据分析中模型是非常有用和有效的工具和数据分析应用的场景,在建立模型的过程中,数据挖掘很多时候能够起到非常显著的作用。伴随着计算机科学的发展,模型也越来越向智能化和自动化发展。对数据分析而言,了解数据挖掘背后的思想,可以有助于建立更具稳定性的模型和更高效的模型。
01 数据挖掘前世今生
数据模型很多时候就是一个类似Y=f(X)的函数,这个函数贯穿了模型从构思到建立,从调试再到最后落地应用的全部过程。
对模型而言其中的规则和参数,最初是通过经验判断人为给出的。伴随着统计方法和技术的发展,在模型的建立过程中也引入了统计分析的过程。更进一步地随着计算机科学的发展建模的过程,也被交给了机器来完成,因此数据挖掘也被用到了模型的建立中。
数据挖掘是从大量数据中,挖掘出有价值信息的过程。在有的地方数据挖掘也被成为是数据探矿,正如数据挖掘的英文data mining一样,从数据中挖掘有价值的知识,正如在矿山中采集钻石一般,不断去芜存精不断发掘数据新的价值。
数据挖掘是通过对数据不断的学习从中发掘规律和信息的过程,因此也被称为统计学习或者是机器学习。对数据挖掘而言,其应用范围广泛,除了建模在人工智能领域也有使用。回到模型中,从经验判断到数据挖掘建立模型的计算特征发生了极大的改变。
首先数据的维度开始从少变多,最初只有几个维度到现在有上百个维度。数据的体量即记录的条数也从少量到海量,从过去了百条规模到了现在亿条规模。伴随着数据获取的难度下降,数据的维度和记录数量会越来越多。
在这种情况下数据的处理过程也越来越复杂,从过去简单的几次加减计算得到结果,到了现在必须要经历上亿次的复杂运算。同时伴随着计算性能的提升,对于从数据中提取信息而言也从渐渐深入,过去只能发现一眼看出的浅表信息,如今可以不断去挖掘隐含的知识。
02 数据挖掘的基本思想
数据挖掘的别名机器学习和统计学习一样,数据挖掘的实质是通过计算机的计算能力在一堆数据中发掘出规律并加以利用的过程。因此对数据挖掘而言,就需要经历规则学习、规则验证和规则使用的过程。
规则学习又称为模型训练,在这个步骤中有一个数据集将作为训练集。按照相关的算法和输出规则的要求,从训练集中筛选出需要使用的变量,并根据这些变量生成相关的规则。有的时候是将过去已经发生的数据作为训练集,在对比已知的结果和输入的变量的过程中,以尽可能降低输出误差的原则拟合出相应的模型。
当产生了规则后就需要验证规则的效果和准确度,这个时候就需要引入验证集。验证集和训练集具有相同的格式,既包含了已知的结果也包含了输入的变量。
与训练集不同的是对验证集的应用是直接将规则应用于验证集中,去产生出相应的输出结果,并用输出的结果去对比实际情况,以来确定模型是否有效。如果有效的话就可以在实际的场景中应用。如果效果不理想则回头去调整模型。
测试集是将模型在实际的场景中使用是直接应用模型的步骤。在测试集中,只包含输入变量却没有像其他两个数据一样存在的已知结果。正因为结果未知,就需要用测试集通过模型去产生的输出的结果。这个输出结果将在为结果产生以后进行验证,只要有效模型就会一直使用下去。
03 数据挖掘的流程
数据挖掘与数据分析的流程相似,都是从数据中发现知识的过程,只不过由于数据体量和维度的原因数据挖掘在计算上最大。
数据挖掘是一个周而复始的过程,在生成规则的过程中不断地对模型进行调整,从而提升精度。同时也将多批次的历史数据引入到数据挖掘的过程中,进行多次的验证从而在时间上保证模型的稳定性。
04 数据挖掘的模式
在数据挖掘中对于规则的获取,存在三种方式分别是监督学习、无监督学习和半监督学习,这三种方式都是通过从数据的统计学习来制定规则。
在一个数据挖掘问题中变量可以分为自变量和因变量,规则是以自变量为输入,以因变量为输出的结果,由此对数据挖掘问题,就把自变量定义为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而产生出可以适用的规则。
05 数据挖掘的应用场景
数据挖掘应用的场景很多通常有四种情况被广泛的使用。
首先是聚类分析就是将不同的对象根据其变量特征的分布自然地分成不同的类别。此外是分类模型,这是针对已知的类别构建出分类的模型,通过分类的模型来探求其他未分类对象的类别。
第三是预测估计,集根据对象的连续数据因变量,通过围绕已知的维度,构建出预测因变量的模型,从而对因变量未知的对象进行估计。最后是关联分析,即通过探求数据对象之间的相关关系,来发现对象之间的联系,在关联分析中,更多是以对象之间的关系作为输出。
聚类分析
聚类分析是一种无监督学习的数据挖掘方法,其目的是基于对象之间的特征,自然地将变量划分为不同的类别。在聚类分析中,基本的思想就是根据对象不同特征变量,计算变量之间的距离,距离理得越近,就越有可能被划为一类,离得越远就越有可能被划分到不同的类别中去。
例如在坐标系中,B距离A的距离远远小于,B到C的距离,因此AB更容易划分为一类,而BC更容易为不同的类别。通常来说,一个对象距离同类的距离是最近的,都小于其他类别中对象的距离。
在聚类分析中,有两种常用的方法,一种是K-means聚类,一种是层次聚类。