数据挖掘1:数据类型 质量 预处理 相似性和相异性度量

数据挖掘到底是干啥的?

比较官方的定义就是,在大型数据存储库中,自动地发现有用信息的过程。其实就像我之前所说的,从大量的数据中,发现那个我们想要寻找到的模式。

数据挖掘的一般过程包括以下这几个方面:

1、 数据预处理

2、 数据挖掘

3、 后处理

首先来说说数据预处理。之所以有这样一个步骤,是因为通常的数据挖掘需要涉及相对较大的数据量,这些数据可能来源不一导致格式不同,也许有的数据还存在一些缺失值或者无效值,如果不经处理直接将这些‘脏’数据放到我们的模型中去跑,非常容易导致模型计算的失败或者可用性很差,所以数据预处理是我们所有数据挖掘过程中都不可或缺的一步。不客气地讲,预处理这一步通常占用了我们数据挖掘过程中的很大部分时间,但的确值得我们去做,关于它的详细内容我们在下面会讲。

至于数据挖掘和后处理相对来说就容易理解多了。完成了数据的预处理,我们通常进行的特征的构造然后放到特定的模型中去计算,利用某种标准去评判不同模型或组合模型的表现,最后确定一个最合适的模型用于我们的后处理。后处理的过程相当于我们已经发现了那个我们想要找到的模式,我们会去应用它或者用合适的方式将其表示出来。

最后,我们再来说说数据挖掘的任务。

前面我一直用一个词来代表数据挖掘的目标,那就是‘模式’。那具体来说,它是指啥呢?

一种我们称之为预测任务。

也就是说给了我们一定的目标属性,让我们去预测目标的另外一特定属性。如果该属性时离散的,我们通常称之为‘分类’,而如果目标属性是一个连续的值,我们则称之为‘回归’。

另一种我们称之为描述任务。

这是指我们找出数据间的潜在的联系模式。比方说两个数据存在强关联的关系,这里就得提到那个大数据经常讲的啤酒尿布的故事,通过对数据的分析,发现买尿布的男性通常也会买点啤酒,那么商家根据这个可以将这两种商品打包出售来提高业绩,虽然我个人觉得这是个编造的事实,不过可以有助于理解两个数据存在强相关。另外一个非常重要的就是聚类分析,这也是我们在日常数据挖掘中应用非常非常频繁的一种分析,旨在发现紧密相关的观测值组群,可以再没有标签的情况下将所有的数据分为合适的几类来进行分析或者降维。其他的描述任务还有异常检测,其过程类似于聚类的反过程,聚类将相似的数据聚合在一起,而异常检测将离群太远的点给剔除出来。

以上就是关于数据挖掘的一些概念,包括它的任务,流程及任务,对这些有清晰的认识有助于在日后的数据挖掘过程中以一种标准化的形式去进行,同时可以保持非常清晰的目的性。

====================================================================数据

接下来,我们再聊一聊关于数据的内容。

一、数据的类型。

所谓的数据集通常是指一堆数据对象的集合,而所谓数据对象就是用一组刻画对象基本特征属性的描述。

先来看数据对象,一组刻画对象基本特征属性的描述。所谓属性,就是指对象的性质或特性,它可以随对象或者时间的变化而变化。对于属性的描述我们需要根据属性的类型来确定,最常见的属性类型包括以下四种:

1、 标称型。这种属性的值仅用作区分不同对象,不存在其他任何意义,比如说名字或者ID。

2、 序数型。这种属性的值提供了确定对象序的信息,比如说成绩或者街道号码。

3、 区间型。这种属性的值的差值是有意义的,比如说摄氏或者华氏温度。

4、 比率型。这种属性的值的差值和比率都是有意义的,比如说绝对温度和年龄等。

其中标称型和序数型我们通常称为分类属性,区间型和比率型则称之为定量属性。对于标称属性,由于其只用作区分,所以对该属性可进行任何一对一变换都可以,而对于序数型,由于它的值包含了对象序的信息,因此对其做变换的时候需要进行保序变换。对于区间型的属性,由于其只有差值存在意义,所以可以对其进行任意的线性变换,而比率型的,由于其比率存在意义,所以他可以接受的变换就是同乘一个数,这样比率的值不会变。

再来看数据集,数据集最重要的属性就是维度、稀疏性和分辨率,这几个概念相对还是容易理解的。

维度,可以理解为数据对象属性的数目,维度越高,往往意味着信息浓度越高,但维度太高了之后,对于我们的计算压力很大,所以如果面临数据集维度过高的情况下,我们需要进行维归约的操作。

稀疏性,对于某些数据集而言,虽然他的属性很多,但绝大部分的属性值都为0,我们就称之为稀疏的。稀疏性不一定是缺点,因为我们往往只要存储非0项就行了,比如说SVM又称为稀疏核机。

分辨率,通常是指划分尺度的不同往往能带来不同的结果。举个例子,在10e-10这个量级观察物品,你只能得到物质由分子和原子组成,但如果来到-15的量级,发现又可以分成原子核与电子,再往下走,又可以得到夸克,所以需要根据你的目的去选择合适的分辨率。

二、数据的质量

我们都知道,在数据采集的过程中,由于各种各样的原因,会出现测量的误差,随机部分我们通常称之为噪声,而系统部分我们把它称之为伪像。这些误差的存在,有可能对我们的分析过程造成很大的影响。所以高质量的数据来源往往是数据挖掘成功重要的先决条件,当然如果实在不行,我们也可以通过一些办法来努力提高数据的质量,这就是我们接下来要讲的数据预处理。

三、数据预处理

数据预处理的主要目的就是如上所说提高数据的质量,进而改善我们的数据挖掘工作,降低成本提高效率,主要手段分为两种:选择分析所需的数据对象和属性;创造或改变属性。接下来我们依次介绍常见的几种预处理方法。

1 聚集

聚集很容易理解,就是把相关或者类似的数据对象集合到一起,常常用在数据探索阶段,比如说你参加一个客户购买行为预测的比赛,那么通常会给你之前一段时间的客户行为,你具体分析每一天其实意义不大的,你通常会选择对客户在某个时间窗口内行为进行汇总,或者把客户针对目标商品的操作进行一个聚合。另外,聚集还有一个功能就是可以改变数据的分辨率,以适应不同目的的数据挖掘工作。

2 抽样

抽样就是指按照一定的规律从数据集中选择一定的数据对象来进行处理。比较常见的情况就是数据量很大,你整个处理起来很费劲,那么你通常会抽样一定样本量的数据用来验证自己模型的可行性。最常见的抽样方法通常是随机抽样,但如果我们处理的数据是非对称的,那么通常我们要采取分层抽样,因为随机抽样有可能把我们的稀疏样本给淹没了。

3 维归约

维归约的目的就是降低数据集的维度以期减少我们的计算量。最简单的维归约方法就是去除无效或者不相关的特征。当然,除此之外,我们也有一些数学方法来进行降维,比如说主成分分析(PCA)和奇异值分解(SVD)。

4 特征子集的选择

维归约确实帮我们去除了一部分冗余的特征,但很多时候冗余的特征并不是我们靠经验就可以全部筛选出来的。这个时候,一方面我们依靠某些算法计算特征的重要程度来进行特征的筛选,比如树的一些算法。另一方面如果计算资源足够,我们可以尝试不同的特征组合选择效果最好的特征组合用于我们最后的数据挖掘任务。当然,也有算法通过赋予特征权值的方法来进行特征的筛选,比如说支持向量机等。

5 特征的创建

我相信任何做数据挖掘的人都会把特征当做数据挖掘中最重要的东西,说实话,合适的特征及其组合通常比所谓更加高级的算法要重要的多,它可以非常直观迅速地提升你数据挖掘的效果。那么特征的创建当然包含上面所说的一个特征选择的过程,此外,有的时候我们自己建立新的特征,比如对现有特征进行一定的处理,用现在特征值的平方作为新的特征,可以看到数据和目标变量之间是否存在二次关系,还有就是把数据映射到新的空间,最常见的就是傅里叶分析了,把时间谱上的数据映射到频谱上,就可以从杂乱无序的数据中寻找到规律。

6 离散化和二元化

离散化和二元化算是日常数据挖掘中最常见的手段了。首先是离散化,对于一些连续属性我们可以根据一定的标准将它转换成一个分类属性,比如年龄这样一个数值属性,我们可以定义小于18的为未成年,小于30的年轻人,小于50的中年人,大于50的老年人。这其中需要注意的就是分类的组数和分类的标准,常见的有等宽和等频率离散化,还是要根据实际情况进行选择。而二元化相对就更好理解了,二分类属性自不必说,对于对分类的属性,可利用多个二元变量的组合来表示不同的分类情况。

7 变量变换

变量变换涉及两种情况。一是简单的数值变换,这里只要考虑属性是否是序数型的,做变换时是否需要保序,二是规范化和标准化,规范化通常是指你的算法对变量的区间有一定的要求,所以你需要通过放缩使其落在对应的区间内,而标准化则是为了避免某些数值偏大的属性决定结果,将数据转换成一个均值0标准差1的新变量。

四、相似性和相异性度量

相似性和相异性是数据挖掘中非常重要的衡量标准,尤其是聚类算法和异常检测,他们据此进行类的划分以及异常点的判断,接下来我们就介绍一些最常见的相似性及相异性度量。

最最最常见的莫过于距离了,有一个闽科夫斯基距离,定义为

很明显r为2的时候就是我们最常用的欧几里得距离,r为1的时候就是曼哈顿距离,也就是各个维度上距离之和,r趋向于无穷时,就是各维度间最大的那个距离。选择不同范数的距离都可以作为数据相异性的标准,距离越大则相异性越大。

而相似度比较常见的有两种,Jaccard系数和余弦相似度。Jaccard相似度的定义为

Jaccard相似度通常用来处理非对称的二元属性对象,因为只针对其中稀疏的属性,所以可以有效防止考虑两种属性计算相似度所有样本都相似的情况。

由于相似度通常是落在0到1这个区间内的,所以很自然的想到用三角函数来表征相似度,余弦相似度定义为


两个向量的点乘除以两个向量的模,这样求得的就是两个向量夹角的余弦值,两个向量重合时相似度最大为1,垂直是相似度最小为0。

以上就是我们第一篇所要讲的全部内容,主要涉及数据挖掘的一些基本概念以及关于数据的类型、质量、预处理和相似相异性度量的内容,对于我们日后所要进行的工作以及面对的对象有一个更加直观的认识,对数据有十分清晰的认识将让我们在之后的数据挖掘工作中如鱼得水。
 

猜你喜欢

转载自blog.csdn.net/qq_34662278/article/details/85221267
今日推荐