机器学习之数据预处理
2013-03-24 21:15 夜与周公 阅读(1137) 评论(0) 编辑 收藏 举报在使用机器学习与数据挖掘算法时,我们常常并不直接接触底层的算法模型,而是将数据处理成模型需要格式,送入到算法模型即可。
在做数据预处理的是,需要将数据归一化(Data Standardization)。由于一个样本的各个特征,并不一定具有相同的度量单位与粒度。比如统计鲸鱼的两个属性(年龄,重量)作为表述鲸鱼的特征。x(i)=(1,1000),x(j)=(3,2000)。在将样本送给算法模型时,由于重量的特征值数值上远远大于年龄特征值,模型学习到重要性更倾向于重量这个更特征,使用欧式距离计算两个样本的距离时:
在数据不是同一种力度夏,第一部分特征(年龄)起的作用就很小很小,几乎被忽略,因此我们必须数据归一化。
根据数据类型的不同可以分为离散型归一化、连续型归一化。离散型的归一化的一般方法,是将多项事件模型(multinomial event model)转换成二元事件模型( Bernoulli distribution)。比如样本的某个特征属性表示的天气状态,假设有(晴天,阴天,下雨天,下雪天)四种。我们可以将这种特征变成四个二元特征:晴天、阴天、下雨天、下雪天四个特征,都是二元离散属性。某些算法针对离散特征归一化问题做了模型处理。比如Naive Bayes模型,最原始是二元事件模型(针对文本分类中布尔型特征,后人又将其扩展成多项事件模型(针对文本中词频特征)。
而连续性特征的归一化,常用有两种方法。一种是区间法,另种是Z得分发。区间法的征值均匀投影到[0,1]之间,我们可以采用的最简单方法:
其中xi 表示样本x的第i个特征,而min(i)、max(i)则表示样本第i特征的最小值与最大值。而Z得分法,则使用统计方法将特征值投影到[0,1]之间:
其中ui 表示特征项i的均值,σi 表示特征项i的方差。