zoukankan      html  css  js  c++  java
  • 特征工程(3)-数据预处理归一化

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

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

    mkk=1..nm∗kk=1……..n

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

    knk=1..mk∗nk=1……..m

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

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

    y=xni=0x2y=x∑i=0nx2

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

    y=xni=0xy=x∑i=0n‖x‖

    sklearn 代码

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

    实验结果如下

    1. [[ 0.80377277 0.55160877 0.22064351 0.0315205 ]
    2. [ 0.82813287 0.50702013 0.23660939 0.03380134]
    3. [ 0.80533308 0.54831188 0.2227517 0.03426949]
    4. [ 0.80003025 0.53915082 0.26087943 0.03478392]
    5. [ 0.790965 0.5694948 0.2214702 0.0316386 ]]

    spark 代码如下

    1. from pyspark.ml.feature import Normalizer
    2.  
    3. dataFrame = sqlContext.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt")
    4.  
    5. # p=2 则表示是 l2 归一化
    6. normalizer = Normalizer(inputCol="features", outputCol="normFeatures", p=1.0)
    7. l1NormData = normalizer.transform(dataFrame)
    8. l1NormData.show()
  • 相关阅读:
    ORM 实现数据库表的增删改查
    数据库表设计(一对多,多对多)
    Razor模板引擎
    文件的上传(表单上传和ajax文件异步上传)
    生成验证码封装(新版)
    MD5加密
    反射的一些基本用法
    数据的增删改查(三层)<!--待补充-->
    linux文件的硬连接和软连接
    linux磁盘用满的两种情况
  • 原文地址:https://www.cnblogs.com/yuluoxingkong/p/9010278.html
Copyright © 2011-2022 走看看