• 特征预处理


    # coding=utf-8
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.preprocessing import StandardScaler
    from sklearn.preprocessing import Imputer
    import  numpy as np
    '''
    特征预处理:通过特定的统计方法,将数据转换成算法要求的数据 。包括数据缺失,数据填充等
    数值型数据:
        标准缩放:
            1、归一化:通过对原始数据进行变换把数据映射到(默认为0,1)之间;   
                计算公式:x' = (x-min)/(max-min) x'' = x'*(mx-mi)+mi 
                目的:使得某一个特征对最终结果不会造成更大的影响
                弊端:异常点对归一化的最大值最小值影响很大。
                适用场景:鲁棒性差,只适合小数据的场景(无异常数据)
                api:MinMaxScaler(feature_range=(2,4))
                        MinMaxScaler.fit_transform()
            2、标准化:通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内
                公式:x' = (x-mean)/a 其中mean为平均值;a为标准差
                        方差:var = ((x1-mean)^2 +(x2-mean)^2+ ....)/n ,其中var为方差,n为每个特征样本数 ;方差可以考量数据的稳定性
                        标准差:对方差开平方,即var^(1/2)
                优点:对异常点没有影响,适合嘈杂数据场景
                api:StandardScaler()
                        StandardScaler.fit_transform()
                        StandardScaler.mean_
                        StandardScaler.with_std
                        
            3、缺失值:主要使用pandas处理(np.nan为float类型) 
                        删除:(不建议) dropna()
                        填充:填充使用列的均值、中位数、众数  fillna()  
                        替换:replace("?",np.nan)
                Api:Imputer(missing_values='NaN',strategy="mean")
                        Imputer.fit_transform()  
    类别型数据: one-hot编码
    
    时间类型:  时间的切分
    
    特征预处理Api:
        sklearn.preprocessing
        归一化Api:
    
    '''
    
    
    def mm():
        """
        归一化处理
        错误1:setting an array element with a sequence. 表示列没有对齐
        :return:
        """
        m = MinMaxScaler(feature_range=(2,4))
        data = m.fit_transform([[9,2,3],[40,50,4],[34,23,45]])
        print(data)
        return None
    
    def stand():
        """
        标准化缩放
        :return:
        """
        std = StandardScaler()
        data = std.fit_transform([[9,2,3],[40,50,4],[34,23,45]])
        print(data)
        return  None
    
    def im():
        """
        缺失值处理
        :return:
        """
        i = Imputer(missing_values='NaN',strategy='mean',axis=0)
        result =i.fit_transform([[9,np.nan,3],[np.nan,50,4],[34,23,45]])
        print(result)
        return None
    
    if __name__ == '__main__':
        mm()
        stand()
        im()
  • 相关阅读:
    第十五篇 Django Rest Framework
    第十四篇 Mongodb数据库
    Redis相关操作
    celery
    vscode
    VScode-HTML
    第十三篇 Scrapy框架
    第十二篇 Flask 【进阶篇】 插件-SQLAlchmey等
    附录:1装饰器-functools使用
    第十二篇 Flask 基础篇
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10847149.html
Copyright © 2020-2023  润新知