【特征工程】Chap2数字处理

Numeric data

对于数字,不需要从其他形式转化,仍要考虑:

magnitude

  • 数字量级是否重要?
  • 只用考虑正负?
  • 粗粒度?

scale of the features

  • 极大值极小值
  • 分布的量级

特征的规模对线性模型影响很大,考虑 3x+1.

同时对任何用到欧几里得距离的模型,如K-means,KNN,RBF等,一般需要标准化


logical functions:不需要scale


Distribution of numeric features

线性回归模型的训练是基于 预测错误是高斯分布的。

the training process of a linear regression models assumes that prediction errors are distributed like a Gaussian.

补充:正态分布为什么常见

人们认为误差是随机的,所以人们认为误差的和服从高斯分布。

机器学习中,当y的分布遍布几个量级就是这种情况了。


处理计数数据时

具体情况具体分析,看scale

  • 不做变换
  • 二分,表是否有
  • bin into  coarser granularity 粒度划分

binarization

robustness:the method works under a wide variety of conditions

例:对一个音乐推荐系统,一首歌的次数这个特征,做好的办法时将其二分化。99%的歌去只听过不过24次,而有的歌听过上千次,数据分布


Quantization or binning

原始计数数据分布于多个数量级对于大多数模型是个问题。 对线性模型,其参数必须对所有数据都适用;对比较相似性的无监督模型,如用欧几里得距离的k-means,伤害很大。

处理方法:

量化

cut,连续数据离散化

要决定怎么分,宽度,等宽或者adaptive

等宽分的话,若计数中存在缺失,会有空bins,可以用quatile。

pd.DataFrame.quantile, pd.qcut


log transformation

powerful tool for dealing with positive  numbers with a heavy tailed distribution.尾大

例如图:


可见分布在log_trans之后变得更像高斯分布了

log_trans 可以重塑x轴行形状,将large outliers拉回来一点。


Power Transforms: Generalization of the Log Transform

 泊松分布P(X=k)=\frac{e^{-\lambda}\lambda^k}{k!}

期望和方差均为方差增长,期望mean也增长

点击打开链接

Power transforms change the distribution of the variable so that the variance is no longer dependent on the mean.

box-cox transform (power-trans 的一种)

只针对正数,对负数可加一个数将分布→移

在trans前要决定λ大小,通过maximize the Gaussian likelihood or Bayesian method

工具:scipy.stats.boxcox


boxcox transform 也能将数据变得更接近正态分布,在长尾方面的处理比log trans还要好。


Feature Scaling or Normalization

有的计数的特征,数据会无限制的大,对线性回归,逻辑回归模型影响很大,对树结构模型没什么影响。

min-max scaling


将数据缩小至【0,1】

standardization


将数据变成均值为0,方差为1,若原数据是正态分布,standardized之后变成标准正态分布。所以一般是先trans再scale

注意!!Use caution when performing min-max scaling and standardization on sparse features.


L2 norm



工具:sklearn.preprocessing

    

我就不放代码了。

交叉特征

点击打开链接

容易生成,将原来两个特征相乘就能得到新的特征。但是 computation expensive

O(n) ---> O(n^2) 

解决办法:

  1. 对所有交叉特征做特征选择
  2. 手工仔细选择组合几个复杂的特征

现在介绍特征选择,见知乎。

特征选择

主要3中方法:

  1. Filtering
  2. Wrapper method
  3. Embedded

Filtering将不大可能对模型有用的特征移除。比如,通过计算correlation或互信息(mutual information),将低于一定阈值的特征移除。Filtering比下面要介绍的Wrapper方式方便用,但是没有考虑模型,所以在用的时候要保守一点以免不小心将有用的特征去除了。

Wrapper比较计算复杂,取特征集子集投进模型训练比较效果

Embedded在模型训练过程中进行特征选择。比如,决策树的内在机制就是特征选择;l1正则化,加入线性模型的训练objective后可以激励模型用更少的特征。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值