• 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

特征工程(3)-数据预处理归一化

bigdata admin 2年前 (2017-08-17) 2545次浏览 0个评论 扫描二维码

上一篇文章讲解了数据预处理区间缩放法,这篇文章主要讲解数据归一化处理

既然讲到归一化和前面的标准化需要对比一下,首先二者处理的维度是不一样的,假设我们要处理的矩阵是 m*n 大小,m 个样本,n 维特征

标准化处理的方式是以列为单位,也就是处理的对象是

$$m*k    k={1……..n}$$

归一化处理的方式却是以行为单位,处理的对象如下:

$$k*n    k={1……..m}$$

归一化处理对样本的特征向量处理之后使其变为单位向量,单位向量可以用于点积运算或者计算样本之间相似度

L2 归一化的计算公式如下所示:

$$ y=\frac{x}{\sqrt{\sum_{i=0}^{n}x^2}} $$

L1 归一化的计算公式如下所示

$$ y=\frac{x}{\sum_{i=0}^{n}\|x\|} $$

sklearn 代码

from sklearn.preprocessing import Normalizer
tmp=Normalizer().fit_transform(irisdata.data)
print tmp[0:5]

实验结果如下

[[ 0.80377277  0.55160877  0.22064351  0.0315205 ]
 [ 0.82813287  0.50702013  0.23660939  0.03380134]
 [ 0.80533308  0.54831188  0.2227517   0.03426949]
 [ 0.80003025  0.53915082  0.26087943  0.03478392]
 [ 0.790965    0.5694948   0.2214702   0.0316386 ]]

spark 代码如下

from pyspark.ml.feature import Normalizer

dataFrame = sqlContext.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")

# p=2 则表示是 l2 归一化
normalizer = Normalizer(inputCol="features", outputCol="normFeatures", p=1.0)
l1NormData = normalizer.transform(dataFrame)
l1NormData.show()

Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明特征工程(3)-数据预处理归一化
喜欢 (1)
admin
关于作者:
互联网行业码农一枚/业余铲屎官/数码影音爱好者/二次元

您必须 登录 才能发表评论!