• 机器学习入门--------特征工程-特征预处理


    引言

    什么是特征预处理

    特征预处理定义

    scikit-learn的解释

    provides several common utility functions and transformer classes to change raw feature vectors into a representation that is more suitable for the downstream estimators.

    翻译过来:通过一些转换函数将特征数据转换成更加适合算法模型的特征数据过程。如下图

    为什么要进行特征预处理

    特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征

    举例:约会对象数据。

    特征工程内容

    • 归一化
    • 标准化

    归一化

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

    公式:作用于每一列,max为一列的最大值,min为一列的最小值,那么X’’为最终结果,mx,mi分别为指定区间值默认mx为1,mi为0

    缺点:最大值与最小值非常容易受异常点影响.比如上述约会数据消耗时间比有个数据是1000,就会影响其它数据。所以这种方法鲁棒性较差,只适合传统精确小数据场景

    代码API:

    • sklearn.preprocessing.MinMaxScaler (feature_range=(0,1)… )
      • MinMaxScalar.fit_transform(X)
        • X:numpy array格式的数据[n_samples,n_features]
      • 返回值:转换后的形状相同的array

    案例:

    #-*- codeing = utf-8 -*-
    #@Time : 2021/1/13 21:33
    #@Author : 杨晓
    #@File : preprocessing.py
    #@Software: PyCharm
    from sklearn.preprocessing import MinMaxScaler
    import pandas as pd
    def mimmax_scaler():
        data = pd.read_csv("../data/dating.txt")
        # 1、实例化MinMaxScalar
        scaler = MinMaxScaler(feature_range=(0,1))
        # 2、通过fit_transform转换
        data = scaler.fit_transform(data[['milage','Liters','Consumtime']])
        print("归一化的结果为:
    ",data)
    
    mimmax_scaler()
    

    标准化

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

    公式:作用于每一列,mean为平均值,σ为标准差

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

    代码API:

    • sklearn.preprocessing.StandardScaler( )
      • 处理之后每列来说所有数据都聚集在均值0附近标准差差为1
      • StandardScaler.fit_transform(X)
        • X:numpy array格式的数据[n_samples,n_features]
      • 返回值:转换后的形状相同的array

    案例:

    def standard_scalar():
        data = pd.read_csv("../data/dating.txt")
        # 1、实例化StandardScaler 默认均值为0,方差为1
        scaler = StandardScaler()
        # 2、通过fit_transform转换
        data = scaler.fit_transform(data[['milage', 'Liters', 'Consumtime']])
        print("标准化的结果为:
    ", data)
    standard_scalar()
    

    总的代码

    #-*- codeing = utf-8 -*-
    #@Time : 2021/1/13 21:33
    #@Author : 杨晓
    #@File : preprocessing.py
    #@Software: PyCharm
    from sklearn.preprocessing import MinMaxScaler,StandardScaler
    import pandas as pd
    def mimmax_scaler():
        data = pd.read_csv("../data/dating.txt")
        # 1、实例化MinMaxScalar
        scaler = MinMaxScaler(feature_range=(0,1))
        # 2、通过fit_transform转换
        data = scaler.fit_transform(data[['milage','Liters','Consumtime']])
        print("归一化的结果为:
    ",data)
    
    def standard_scalar():
        data = pd.read_csv("../data/dating.txt")
        # 1、实例化StandardScaler 默认均值为0,方差为1
        scaler = StandardScaler()
        # 2、通过fit_transform转换
        data = scaler.fit_transform(data[['milage', 'Liters', 'Consumtime']])
        print("标准化的结果为:
    ", data)
    #mimmax_scaler()
    standard_scalar()
    

    结尾

    归一化以后不会再用,用的是标准化

  • 相关阅读:
    锋利的jQuery书中推荐的几款插件
    60款很酷的 jQuery 幻灯片演示和下载
    关于viewport
    几个Jquery对话框插件
    从小白白到大白白之初识区块链(如何理解区块链)
    简单的MVC与SQL Server Express LocalDB
    java的MVC与C#
    企业微信登陆方式
    整洁的测试遵循的规则
    Android活动的生命周期
  • 原文地址:https://www.cnblogs.com/yangxiao-/p/14274783.html
Copyright © 2020-2023  润新知