机器学习-特征预处理

特征预处理

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

问:什么是特征预处理?
将不同规格的数据转换到同一规格。

两种处理方式

归一化

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

数学公式:

X X X数据映射到[0,1]

x = X − m i n ( x ) m a x ( x ) − m i n ( x ) x=\frac{X-min(x)}{max(x)-min(x)} x=max(x)min(x)Xmin(x)

X X X数据映射到[a,b]

x = X ∗ ( b − a ) + a x=X*(b-a)+a x=X(ba)+a

api

from sklearn.preprocessing import MinMaxScaler
data_transform1 = MinMaxScaler()

标准化

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

数学公式:

x = x − x ˉ 1 n ∑ i = 1 n ( x − x ˉ ) 2 x=\frac{x-\bar{x}}{\sqrt{ \frac{1}{n} \displaystyle\sum_{i=1}^n(x-\bar{x})^2}} x=n1i=1n(xxˉ)2 xxˉ

x ˉ = 1 n ∑ i = 1 n x i \bar{x} = \frac{1}{n} \displaystyle\sum_{i=1}^n x_i xˉ=n1i=1nxi

api

from sklearn.preprocessing import StandardScaler
data_transform2 = StandardScaler()

总结

归一化:最大值最小值是变化的,另外,最大值与最小值非常容易受异常点影响,所以这种方法鲁棒性较差,只适合传统精确小数据场景。
标准化:异常点所占比例较小的话,对于平均值的影响并不大,方差改变较小,所以这种方式适合在数据量较大,分布复杂的场景下使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值