zoukankan      html  css  js  c++  java
  • 数据预处理:规范化(Normalize)和二值化(Binarize)

    注:本文是人工智能研究网的学习笔记

    规范化(Normalization)

    Normalization: scaling individual to have unit norm

    规范化是指,将单个的样本特征向量变换成具有单位长度(unit norm)的特征向量的过程。当你要使用二次形式(quadratic from)如点积或核变换运算来度量任意一堆样本的相似性的时候,数据的规范化会非常的有用

    假定是基于向量空间模型,经常被用于文本分类和内容的聚类。

    函数normalize提供了快速简单的方法使用L1或L2范数(距离)执行规范化操作:

    X = [[1., -1., 2.], 
         [2., 0., 0.],
         [0., 1., -1.]]
    X_normalized = preprocessing.normalize(X, norm='l2')
    X_normalized
    

    注意:该函数按行操作,把每一行变成单位长度。使用每一个元素去除以欧式距离。

    preprocessing模块也提供了一个类Normalizer实现了规范化操作,该类是一个变换器Transformer,具有Transformer API(尽管fit方法在这种时候是没有用的: 该类是一个静态类因为归一化操作是将每一个样本单独进行变换,不存在在所有样本上的统计学习过程。)

    规范化操作类Normalizer作为数据预处理步骤,应该用在Pineline管道流的早期阶段。

    以上的transform过程不依赖于上面的X,也就是说fit是多余的,只是为了整个sklearn的统一。

    Sparse input

    normalize函数和Normalizer类都接受dense array-like and sparse matrics from scipy.sparse作为输入。

    对于稀疏输入,在进入高效的Cython routines处理之前,都会将其转化成CSR(Compressed Sparse Rows)格式(scipy.sparse.csr_matrix),为了避免不必要的数据拷贝,推荐使用CSR格式的稀疏矩阵。

    二值化(Binarize)

    Binarization: thresholding numerical features to get boolean values

    Feature binarization: 将数值型特征取值阈值化转换为布尔型特征取值,这一过程主要是为概率型的学习器(probabilistic estimators)提供数据预处理机制。

    概率型学习器(probabilistic estimators)假定输入数据是服从于多变量伯努利分布(multi-variate Bernoulli distribution)的, 概率性学习器的典型的例子是sklearn.neural_network.BrenoulliRBM

    在文本处理中,也普遍使用二值特征简化概率推断过程,即使归一化的词频特征或TF-IDF特征的表现比而二值特征稍微好一点。

    就像Normalizer,Binarizer也应该用在sklearn.pipeline.Pipeline的早期阶段。fit方法也是什么也不干,有或者没有是一样的。

    X = [[1., -1., 2.], 
         [2., 0., 0.],
         [0., 1., -1.]]
    binarizer = preprocessing.Binarizer().fit(X)
    print(binarizer)
    print('-----')
    print(binarizer.transform(X))
    

    binarizer = preprocessing.Binarizer(threshold=1.1)
    binarizer.transform(X)
    

    就像StandardScaler和Normalizer类一样,preprocessing模块也为我们提供了一个方便的额binarize进行数值特征的二值化。

    Sparse input

    normalize函数和Normalizer类都接受dense array-like and sparse matrics from scipy.sparse作为输入。

    对于稀疏输入,在进入高效的Cython routines处理之前,都会将其转化成CSR(Compressed Sparse Rows)格式(scipy.sparse.csr_matrix),为了避免不必要的数据拷贝,推荐使用CSR格式的稀疏矩阵。

  • 相关阅读:
    道砟说明
    方案设计图
    红外对摄报价
    荣昌县公安局监控设计方案
    安盈楼宇对讲系统
    高速公路方案一
    高速公路方案一
    无线智能报警暨家电控制
    百安居监控设计方案
    家庭防盗报警系统
  • 原文地址:https://www.cnblogs.com/cnkai/p/7755094.html
Copyright © 2011-2022 走看看