机器学习与模式识别

第三章:Data Pre-processing

2014-08-26  本文已影响248人  姜戈

数据预处理的方法与数据模型的选择相关,比如树相关的模型对预测数据的特性不敏感,而线性模型则很敏感。

单预测因子的数据转换

由于有些建模方法对预测因子有很严格的要求,通常需要在一定范围内。常用的转换方法有Centering,scaling,和skewness transformation

Centering and Scaling

最简单直接的数据转换方法是对数据进行居中和缩放,将数据一致减去其平均数,居中后的数据其均值为0.  类似缩放数据,所有预测因子均除以其标准差。这些方法通常用来提升数值稳定性。

Transformations to resolve skewness

用大拇指定律来判断数据是否偏态,即最大值是否是最小值的20倍。

Data Reduction and Feature Extraction

Data reduction提炼出包含原始数据大部分信息的小规模预测因子集,新的预测因子集来自原始数据集,这类方法通常被称为信号提取(signal extraction)或特征提取(feature extraction)

PCA是最常使用的数据消减方法,该方法尝试寻求预测因子的线性组合即基本成分(Principal components)。第j个PC可写为

第j个PC公式表达

P是预测因子的数量,系数aj1,aj2,...ajP是成分权重,帮助理解哪些因子最重要。PCA方法很流行的原因在于它创建的组件之间都是无关的,这正是一些模型所需要的。但我们要明白,PCA不需要深入了解预测因子和因变量就能获取到预测因子集。

由于PCA寻求预测因子线性组合变化性的最大化,它会自然抓取更多样的预测因子。如果原始数据在数量级山谷有差别,那么首要的元素都会是来自高量级的预测因子,而靠后的元素包含较低变化的预测因子。意味着PC的权重将为倾向于高差异的数据。所以PCA将更多考虑数据的测量比率,而不是数据间重要关系。

   使用PAC前,最好纠正倾斜的预测因子,并进行Scaling和Centering。

    PAC与因变量无关,是一种无监督技术。

Removing Predictors

删除预测因子的好处有1.减少计算时间和复杂度2.如果两个预测因子高相关,那么它们衡量的是同样的潜在信息,移除其中一个因子不应带来太多性能上的损失,很可能得出一个更简洁易懂的模型。3.某些模型会因为退化分布而受损,在这些情况中,去除掉有问题的变量能带来很大的性能提升。

共线指两个或多个自变量(预测因子)之间有很强的相关性。通常需要避免高相关的自变量。1.冗余的自变量增加模型复杂度。其次有些模型采用高相关自变量会引发模型的不稳定。

减少两个变量之间的相关性的算法

1.计算自变量相关性矩阵

2.发现相互之间相关性最大的两个变量(例如A和B)

3.计算A和其他变量的相关性,同样对B重复这一过程。

4.如果A有最大的平均相关性就删掉A,否则删除B

5.重复2--4步,直到没有任何相关性在阈值之上。

PCA操作的代码

>pcaObject <- prcomp(segData,center=TRUE,scale.=TRUE)

>percentVariance<-pcaObject$sd^2/sum(pcaObject$sd^2)*100

>percentVariance[1:3]

上一篇下一篇

猜你喜欢

热点阅读