微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

数据预处理之 标准化/正则化 处理

标准化(Scale)和正则化(normalization)是两种常用的数据预处理方法,其作用是让数据变得更加“规范”一些在文本聚类等任务中使用的比较多。

针对某数据,如果不适用数据标准化、正则化,展示的情况如下图

1.数据标准化

公式为:(X-mean)/std 计算时对每个属性/每列分别进行。将数据按期属性(按列进行)减去其均值,并处以其方差。得到的结果是,对于每个属性/每列来说所有数据都聚集在0附近,方差为1。经过数据标准化的数据如下图:可以看到有些特征被凸显出来了。


2.数据正则化

正则化的过程是将每个样本缩放到单位范数(每个样本的范数为1),如果后面要使用如二次型(点积)或者其它核方法计算两个样本之间的相似性这个方法会很有用。

normalization主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后样本的p-范数(l1-norm,l2-norm)等于1。

p-范数的计算公式:||X||p=(|x1|^p+|x2|^p+...+|xn|^p)^1/p

方法主要应用于文本分类和聚类中。例如,对于两个TF-IDF向量的l2-norm进行点积,就可以得到这两个向量的余弦相似性。


在sklearn中有三种正则化方法,l1范数、l2范数、max范数。

使用这三种范数生成的结果如下图所示:

在肉眼上很难看出有什么区别,不过还是能看出l2范数的结果相对更好,即能尽可能的削弱“强势”特征,将一些数值较小但是比较有特点的特征“凸显”出来。

使用方法参照sklearn官方文档就可以了,非常简单:

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.scale.html#sklearn.preprocessing.scale

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.normalize.html#sklearn.preprocessing.normalize

原文地址:https://www.jb51.cc/regex/358650.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐