特征工程读书笔记1(Feature Engineering for Machine Learning)

前言

1. 特征处于数据与模型中间环节,特征工程是将数据转化为可传入到模型的格式;好的特征能够简化模型难度,提高模型质量。

2. 仅了解特征处理的工作机制以及用途是不够的 - 人们还必须理解为什么是这样设计的,与其他技术的关系以及每种方法的优缺点。

3. 本文没有讲述音频数据使用傅里叶分析,以及目前比较新的研究思路,如随机投影;复杂的文本特征化模型,如word2vec和Brown聚类;潜在的空间模型,如Latent Dirichlet分配和矩阵分解。(有空儿扩展一下)

第一章(机器学习流程)

1. Data:各种类型、来源各异,存在大量noise。

2. Tasks:使用data达到什么样的目的

3. Models:数学模型解决任务

4. Features:原始Data的数字表示形式;好的特征旨在解决任务,能够更好地适应模型;特征数量影响模型训练,太少精度可能不够,太多模型训练复杂

5. Model Evaluation:特征的好坏直接影响模型的复杂性。

 第二章(数字格式特征提取)

 1. 首先,需要查看数据完整性、正负、粗粒度;

    其次,考虑scale数据,查看最大最小值是否差很多数量级。那些利用欧式距离的算法(k-means,knn等)一般需要归一化,但是逻辑方程、决策树、梯度提升器、随机森林等一般不需要scale(累计型特征可能需要)。

    再次,考虑数据的分布。例如训练线性规划模型,模型误差属于高斯分布,但是预测结果差很多数量级,此时模型不再适应,需要将目标进行log转换(power transform)。

    最后,考虑特征组合,将不同特征进行组合生成更好的特征;特征选择,一般使用模型进行自动选择。

2. 处理累加数据

1)二值化:数据插值很大,将>1赋值为1,其余等于0

2)量化或分档:

     固定宽度分级:将数据划分多档,比如年龄,根据档位将数据依次划分。np.floor_divide(small_counts, 10),将small_counts均匀划分成10档;

     分位数分级:若数据分布不均,固定宽度分级会存在一些空档。pd.qcut(large_counts, 4, labels=False),将large_counts等分为四部分;large_counts_series.quantile([0.25, 0.5, 0.75]),得到的是分位数值

     Log Transformation:np.floor(np.log10(large_counts)),使用log转换

     Power Transforms(广义Log Transformation): 属于方差稳定转化。Box-Cox transform,要求数据为正数,若存在非正数,可以加常值,通常需要确定Lambda(最大似然估计、贝叶斯),from scipy import stats,rc_log = stats.boxcox(biz_df['review_count'], lmbda=0);rc_bc, bc_params = stats.boxcox(biz_df['review_count'])

概率图可以直观地比较数据的经验分布与理论分布。prob1 = stats.probplot(biz_df['review_count'], dist=stats.norm, plot=ax1),与正态分布作比较。

 3. 特征缩放与归一化(当不同特征量级不同时,使用缩放效果会更好):

1)Min-Max Scaling:

2)Standardization (Variance Scaling)

注意:不能将原来的稀疏数据进行上述操作,会将稀疏数据转化为稠密数据,计算量增加

3)ℓ2 Normalization:

4. Interaction Features:

不同特征之间进行相乘或逻辑运算,但是这可能会造成分类器计算量增加。

5. 特征选择:

在不降低精度的前提下,筛选出最好的特征集合。有以下三种方式:

1)滤波:

计算各特征与label之间的相关性或互信息,预选出超出特定阈值的特征。但是,选出的特征未必合适,剔除那些必然无关的特征。

2)Wrapper methods:

是一种比较昂贵的方法,独立评价各子集特征,不会删除那些与其他特征组合表现好的特征。

3)Embedded methods:

属于模型训练的一部分,相比于滤波不会有误删特征的危险,比wrapper methods 计算量要少,可以说是质量与计算量之间的均衡。ℓ1正则化(稀疏约束)有助于特征的选择。

 

转载于:https://www.cnblogs.com/hzhenhuan/p/10210740.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值