zoukankan      html  css  js  c++  java
  • 特征处理

    标准化

    概念

    1. 定义:通过对原始数据进行变换把数据变换到均值为0,标准差为1范围內
    2. 公式

    image-20210316233308613

    1. 示例:

      image-20210316234049184image-20210316234058624

    2. 优缺点:使得某一个特征对最终结果不对造成更大的影响;对于异常点处理不好,容易影响最大值最小值,鲁棒性较差(稳定性),只适合精确小数据场景

    代码

    from sklearn.preprocessing import StandardScaler
    from sklearn.preprocessing import MinMaxScaler
    from matplotlib import gridspec
    import numpy as np
    import matplotlib.pyplot as plt
    #构建数100行、2列的数据集
    cps = np.random.random_integers(0, 100, (100, 2))
    #实例化一个转换器
    ss = StandardScaler()
    #调用fit_transform
    std_cps = ss.fit_transform(cps)
    #绘图
    gs = gridspec.GridSpec(5,5)
    fig = plt.figure()
    ax1 = fig.add_subplot(gs[0:2, 1:4])
    ax2 = fig.add_subplot(gs[3:5, 1:4])
    #展示原始数据散点图
    ax1.scatter(cps[:, 0], cps[:, 1])
    #展示标准化后的散点图,两者分布几乎一致
    ax2.scatter(std_cps[:, 0], std_cps[:, 1])
     
    plt.show()
    

    运行截图

    image-20210316230129908

    归一化

    概念

    1. 定义:通过对原始数据进行变换把数据映射到(默认为[0,1])之间

    2. 公式:

      image-20210316233719179

    3. 示例:

      image-20210316233800355

    4. 优缺点:由于具有一定数据量,少量的异常点对于平均值的影响并不大,从而方差改变较小

    代码

    from sklearn.preprocessing import MinMaxScaler
    import numpy as np
    #构建10行、1列的数据集
    data = np.random.uniform(0, 100, 10)[:, np.newaxis]
    #实例化一个转换器
    mm = MinMaxScaler()
    #调用fit_transform,获取归一化后的数据
    mm_data = mm.fit_transform(data)
    #获取归一化后的数据转换为原始数据
    origin_data = mm.inverse_transform(mm_data)
    print('data is ',data)#原始数据
    print('after Min Max ',mm_data)#归一化后数据(分布在(0,1)之间)
    print('origin data is ',origin_data)#将归一化数据转换为原始数据
    

    运行截图

    image-20210316231028094

    正则化

    代码

    X = [[1, -1, 2],
         [2, 0, 0],
         [0, 1, -1]]
    
    # 使用L2正则化
    from sklearn.preprocessing import normalize
    l2 = normalize(X, norm='l2')
    print('l2:', l2)
    
    # 使用L1正则化
    from sklearn.preprocessing import Normalizer
    normalizerl1 = Normalizer(norm='l1')
    l1 = normalizerl1.fit_transform(X)
    print('l1:', l1)
    

    运行截图

    image-20210316231335262

  • 相关阅读:
    计数
    表单验证
    获取位置
    jq事件
    jq选择器
    PHP超文本预处理器(通用开源脚本语言)
    文字超出两行显示省略号
    Vim配置:在win10下用vim编译运行C/C++(异步插件管理,一键运行)
    实验楼HTML基础入门学习
    博客园美化:添加目录,标题设置,代码高亮,主题设置
  • 原文地址:https://www.cnblogs.com/chenaiiu/p/14546843.html
Copyright © 2011-2022 走看看