数据处理涉及的一些方法

数据处理

1.特征缩放

目的:
每个特征的尺度(scale)不同,有的特征的单位是小时,有的特征的单位是公里,尺度不同也意味着变化的范围不同,有的特征的波动非常大,有的非常小。对大部分机器学习算法而言,特征取值越大或波动越大,在模型中获得的权重就越大,结果导致预测精度降低,最好的处理办法是将所有特征的尺度缩放到统一的区间。

sklearn提供了几个通用的接口:

  • MinMaxScaler: 将特征尺度缩放到统一的区间,通常选择 [ 0 , 1 ] [0, 1] [0,1],只会改变特征的取值范围,不会改变分布
  • RobustScaler :利用中位数和四分位距缩放特征,能够在某种程度上抵消异常值的影响。对于给定的特征,每个观测值先减去中位数,再除以四分位距。
  • StandardScaler:计算特征的标准分数,令缩放数据的均值为0,方差为1。如果特征近似服从正态分布,那么缩放后的取值范围(大部分数据)将落入 [ − 3 , 3 ] [-3, 3] [3,3]区间。

区别:

  • 如果不明确特征的分布,或根本不在乎分布,一般会先使用MinMaxScaler。
  • 如果特征包含异常值,建议使用RobustScaler,比MinMaxScaler能得到更好的效果。
  • 如果特征近似服从正态分布,最好使用StandardScaler。
  • 如果特征的取值范围很小,变异程度较低,又呈现钟形分布,则没必要进行缩放。

2.encoder—将数据集中的文本转化成0或1的数值

one-hot编码

  • 离散特征进行one-hot编码后,编码后的特征,其实每一维度的特征都可以看做是连续的特征。就可以跟对连续型特征的归一化方法一样,对每一维特征进行归一化。
  • 当类别的数量很多时,特征空间会变得非常大。在这种情况下,一般可以用PCA来减少维度。而且one hot
    encoding+PCA这种组合在实际中也非常有用。
  • 如果特征是离散的,并且不用one-hot编码就可以很合理的计算出距离,那么就没必要进行one-hot编码。 有些基于树的算法在处理变量时,并不是基于向量空间度量,数值只是个类别符号,所以不用进行独热编码。 Tree Model不太需要one-hot编码: 对于决策树来说,one-hot的本质是增加树的深度。

LabelEncoder

  • 利用LabelEncoder() 将转换成连续的数值型变量。即是对不连续的数字或者文本进行编号.
  • 比如有一列[dog,cat,dog,mouse,cat],我们把其转换为[1,2,1,3,2]。这里就产生了一个奇怪的现象:dog和mouse的平均值是cat,所以label encoding最直观的缺点就是赋值难以解释,适用场景更窄。
  • 有些模型的损失函数对数值大小是敏感的,即变量间的数值大小本身是有比较意义的,如逻辑回归,SVM等,我们暂将其称为A类模型;有些模型本身对数值变化不敏感,数值存在的意义更多的是为了排序,即0.1,0.2,0.3与1,2,3是没有区别的,这部分模型绝大部分是树模型,暂将其称为B类模型。如果使用的是A类模型,所有的类别变量必须做one hot encoding,因为label encoding的赋值是没有数值含义的。如果使用的是B类模型,并且是有序变量,则优先使用label encoding,且赋值要与顺序一致。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值