码迷,mamicode.com
首页 > 其他好文 > 详细

特征预处理

时间:2019-05-11 00:09:05      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:res   影响   中位数   要求   特征   data   strategy   方法   nump   

# 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()

 

特征预处理

标签:res   影响   中位数   要求   特征   data   strategy   方法   nump   

原文地址:https://www.cnblogs.com/ywjfx/p/10847149.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!