数据预处理方法总结

数据预处理方法总结

数据是什么?数据就是一组对象及其属性的集合,其中属性定义为对象的特征或性质。真实数据在应用前基本都有经过预处理,以便在机器学习算法中使用。本次数据预处理方法的总结是基于推荐系统设计进行展开的,其中包括相似度的度量方法、抽样以及降维技术这三个尤为重要的问题。

相似度度量方法

  • 在相似度度量方法中,最简单、最常用的就是欧几里得距离:

d(x,y)=k=1n(xkyk)2 {\rm{d}}(x,y) = \sqrt {\sum\limits_{k = 1}^n {(x_k - y_k )^2 } } d(x,y)=k=1∑n​(xk​−yk​)2

其中,n是维数(属性数),xk{x_k }xk​和yk{y_k }yk​分别是数据对象x和y的第k个属性值。

  • 闵可夫斯基距离是欧几里得距离的推广:

d(x,y)=(k=1nxkykr)1r {\rm{d}}(x,y) = (\sum\limits_{k = 1}^n {|x_k - y_k |^r } )^{\frac{1}{r}} d(x,y)=(k=1∑n​∣xk​−yk​∣r)r1​

其中,r是距离的度(参数)。取决于r值的不同,一般的闵可夫斯基距离有专用的名称:

r=1,城市街区(也叫曼哈顿距离、出租车、L1范数)距离。

r=2,欧几里得距离(L2范数)。

r=\infty∞,上确界(LmaxL_{\max }Lmax​或LL_\inftyL∞​范数),这是任意维度对象属性间的最大距离。

  • 马氏距离:

d(x,y)=(xy)σ1(xy)T {\rm{d}}(x,y) = \sqrt {(x - y)\sigma ^{ - 1} (x - y)^T } d(x,y)=(x−y)σ−1(x−y)T

其中,σ\sigmaσ是数据的协方差矩阵。

  • 把对象看作是n维空间的文档向量,并计算它们相似度作为形成夹角的余弦值,其公式为:

cos(x,y)=(xy)xy \cos (x,y) = \frac{(x\cdot y)}{\left\| x \right\|\left\| y \right\|} cos(x,y)=∥x∥∥y∥(x⋅y)​

其中,dot表示向量的点积,x{\left\| x \right\|}∥x∥是向量x的长度。这个相似度称为余弦相似度或L2范数。

  • 皮尔逊相关系数(通过给出点x和y的协方差及它们的标准差$\sigma $):

Peason(x,y)=(x,y)σx×σy Peason(x,y) = \frac{\sum {(x,y)} }{\sigma _x \times \sigma _y } Peason(x,y)=σx​×σy​∑(x,y)​

最后,在一些只有二进制属性的物品案例中,可以采用SMC或Jaccard系数的相似性度量方法。首先,计算M01、M10、M11和M00数量,其中M01表示x是0并且y是1这个属性的数量,M10表示x是1并且y是0这个属性的数量,依次类推。据此可计算出简单匹配系数SMC=M11+M00M01+M10+M00+M11SMC = \frac{M11 + M00}{M01 + M10 + M00 + M11}SMC=M01+M10+M00+M11M11+M00​;jaccard系数JC=M11M01+M10+M11JC = \frac{M11}{M01 + M10 + M11}JC=M01+M10+M11M11​。广义Jaccard系数,是JC关于连续值属性或计数属性的一个变型,d=xyx2+y2xyd = \frac{x\cdot y}{\left\| x \right\|^2 + \left\| y \right\|^2 - xy}d=∥x∥2+∥y∥2−xyx⋅y​

抽样

抽样的关键是发现具有整个原始数据集代表性的子集,也就是说,其具有与整个数据集大概类似的兴趣属性。最简单的抽样技术是随机抽样,任意物品被选中的概率相同。复杂的有在分层抽样中数据基于特殊特征被分成几个部分,之后对每个部分进行随机抽样。

抽样最常应用的场景是分离训练集和测试集,比如80/20的比例,并使用不放回的标准随机抽样。抽样可以重复多次,比如k折交叉验证,当然除非数据集足够大,否则交叉验证可能不可信。

降维

  • 主成分分析

主成分分析可以获得一组有序的成分列表,其根据最小平方误差计算出变化最大的值。列表中第一个成分所代表的变化量要比第二个成分所代表的变化量大,依次类推,可以通过忽略这些变化贡献较小的成分来降低维度。

PCA的限制:PCA依赖于以先行合并为基础的经验数据集,尽管一般的非线性PCA方法已经提出。PCA的另一个重要假设是原始数据集是从高斯分布中抽取出来的,当这个假设不正确时,就无法保证主要成分的有效性。

  • 奇异值分解

去噪

数据挖掘中采集的数据可能会有各种噪声,如缺失数据或异常数据。去噪是非常重要的预处理步骤,其目的是在最大化信息量时去掉不必要的影响。

一般意义上,噪声定义为在数据收集阶段收集到的一些可能影响数据分析和解释结果的伪造数据,分为自然和恶意噪声。前者时用户在选择偏好时无意产生的,后者是为了偏离结果在系统中故意引入的。

说明:本文资料来自于《推荐系统中的数据挖掘方法》

上一篇:论文阅读:Making Deep Neural Networks Robust to Label Noise: a Loss Correction Approach(2017CVPR,前后向校正)


下一篇:最优化学习笔记1——关于拟牛顿法推导