特征预处理
通过一些转换函数将特征数据转换成更加适合算法模型的特征数据的过程。
特征的单位或者大小相差较大,或者某特征的方差相比其他的特征要大出几个数量级,容易影响(支配)目标结果,使得一些算法无法学习到其它的特征。对数据进行标准化或者归一化可解决此类现象
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler
import numpy as np
import pandas as pd
data = pd.DataFrame([3, 50, 2000, 500, 3, 300.], columns=['data'])
1、StandardScaler数据标准化
数据标准化:是消除变量间的量纲关系,从而使数据具有可比性。通过对原始数据进行变换把数据变换到均值为0,标准差为1范围内。
公式:X’ = (x - mean)/σ
ss = StandardScaler() #标准化数据
data['ssdata'] = ss.fit_transform(data[['data']])
2、数据归一化 MinMaxScaler
通过对原始数据进行变换把数据映射到(默认[0,1])之间
之所以需要将特征规模化到一定的[0,1]范围内,是为了对付那些标准差相当小的特征并且保留下稀疏数据中的0值
公式:x’=(x-min(x))/(max(x)-min(x))
mms = MinMaxScaler(