美文网首页
数据标准化

数据标准化

作者: _Megamind_ | 来源:发表于2017-07-16 17:06 被阅读0次

    一 、Z-Score 标准化

    公式:$ \frac{x - x.mean}{x.std}$

    即:将数据按其属性(列)减去对应属性的均值,再除以方差

    【得到的结果对于每个属性(列)来说所有数据都聚集在 $ \color{red}{0} $ 附近,方差为 $ \color{red}{1} $ 】

    • 使用sklearn.preprocessing()
    from sklearn import preprocessing
    scaled = preprocessing.scale(data)
    
    • 使用sklearn.preprocessing.StandardScaler类

    使用该类可以保存训练集中的参数(均值,方差),可以直接使用其对象转换测试集数据

    from sklearn.preprocessing import StandardScaler
    scaler = StandradScaler().fit(train_data)
    # 查看数据的均值
    # scaler.mean_
    # 查看数据的方差
    # scaler.std_
    # 直接对测试集进行转换
    scaler.transform(test_data)
    

    二 、0-1 标准化

    也叫离差标准化,是对原始数据进行线性变换,使其结果落在[0,1]区间内

    公式:$ \tilde{a} = \frac{x-x.min}{x.max-x.min} $

    • 可以通过sklearn.preprocessing.MinMaxScaler类实现
    from sklearn.preprocessing import MinMaxScaler
    min_max_scaler = MinMaxScaler()
    train_scaled = min_max_scaler.fit_transform(train_data)
    # 同样的缩放应用到测试集数据中
    test_scaled = min_max_scaler.transform(test_data)
    # 查看缩放因子
    # min_max_scaler.scale_
    

    三 、正态分布化(Normalization)

    Normalization用来将各个样本归一化为norm为1的正态分布。

    • 该方法是 $ \color{red}{文本分类} $ 和 $ \color{red}{聚类分析} $ 中经常使用的向量空间模型(SVM)的基础
    • Normalization 主要思想是对每个样本计算其p-范数,然后对该样本中每个元素除以该范数,这样处理的结果是使得每个处理后的样本的p-范数等于1
    • sklearn.preprocessing.normalize()
    from sklearn.preprocessing import normalize
    data_normalized = normalize(data,norm = 'l2')
    # data_normalized = normalize(data,norm = 'l1')
    

    相关文章

      网友评论

          本文标题:数据标准化

          本文链接:https://www.haomeiwen.com/subject/mdpbhxtx.html