特征工程中如何进行 :特征抽取 与 特征选择

读《美团机器学习实践》,哇,是个好东西。

 

什么是特征抽取呢?

 

我是从时间信息中明白的,那也就从时间信息中说明吧。

数据中,一个时间特征可能会表述为日期(2019/05/12 12:11:13)、时间戳(1494391009)等形式,

但我们一般不会直接把这个特征交给模型,让它去找这个特征怎样怎样才是最有用的。我们可以加入一些先验信息,比如,依照我们要构建的模型,我们从时间信息中抽出一系列新的特征:如,是否 闰年,是否月初、是否月末、是否季度初、是否季度末、第几个季度、是否周末、是否是营业时间、是否节假日。等等,我们可以从数据中抽取出这些特征,而用这些特征,可能会和我们要预测的目标更加相关。

 

什么是 特征选择呢?

 

这个的话说起来简单一些,某些情况下,我们构造出来的特征实在是太多了,嗯,太多太多了,但是,不是所有构造出来的特征都是一个优质的特征,(优质的特征对预测目标有帮助),因此,我们可以去除一些冗余的、无关的特征。(冗余特征:该特征是有用的,但是它和其他特征高度相关)。

 

 

如何做特征抽取呢?

1.对于数值特征

  • 有些情况下,小数点后的很多位其实不太重要,————> 截断,比如,保存小数点后两位
  • 商品可能评论数越多,品质会越好————>对评论数的数量进行分桶(按距离分割,比如0-100、101-400、401-1000),然后,把数据的连续值进行分类,相当于构造出一个类别特征。(均匀分桶、10的幂量级分桶、分位数分桶)
  • 稀疏、或者懒得判断计数了多少——> 二值分化(  0  /   1  )
  • 对于线性回归、逻辑回归这样的模型,为防止特征间量纲不同的影响,是需要对数据做缩放的。——>标准化、归一化、基于某种范数的缩放(L1、L2)、对数缩放(针对为正数的长尾分布的变量)、BoxCox对数值为正数的变量起作用、鲁棒性素缩放RobustScaler(不同于一般标准化基于标准差进行缩放,使用中位数代替均值、只用分位数代替方差) 
  • 有时候是有缺失值的————> 我们可以补上去:补个均值、如果有异常值的话,那就补个中位数。 或者 不处理,亦或者构造一个是否是缺失值 的特征。删除样本
  • 某些特征的组合会更有效果,比如恩格尔系数来帮助预测是否给助学金————》特征间相互组合(这个课用决策树老帮助)
  • 行统计量:可以统计该样本的行向量中,空值的个数、0的个数、正负值的个数、均值、方差、最小、最大、偏度、峰度
  • 非线性编码:?看不透。使用核函数。

 

对于类别特征

  • 自然数编码——>给一类别一个字然数做替换
  • onehot编码——>稀疏矩阵了,0 0 0 0 0 1 0 0
  • 分层编码——>对于身份证等、可以分层分割后,再用自然数编码(比如其中的地域是可以用自然数编码的、其并无大小之分)
  • 散列编码——>我还不明白是啥。(自然数编码和分层编码是散列编码的特例)
  • 计数编码——>用该类的计数代替该类别(对线性和非线性都有效,对异常值敏感)
  • 计数排名编码——>计完数,然后用对应的排名进行编码
  • 目标编码——>不明白
  • 类别特征的交叉组合
  • 类别特征和数值特征交叉组合

对于时间特征:

  • 开篇讲的
  • 两个时间变量之间的组合来提取特征:产品上线到现在的时间、顾客上次借钱到现在的时间,两个时间间隔是否包含节假日?等等
  • 从时间序列这个视角出发:我们主要看:长期的变动趋势、周期性的变化、不规则的变化。方法:1.用上下文信息帮助预测,如,用t-2,t-1,的信息来帮助预测t时刻,如果能考虑未来信息的话,那加入t+1,t+2时刻的信息。 2.滑动窗口统计特征:对回归问题计算前n个值的均值,对于分类问题,计算前n个值的类别分布。

对于空间特征:(经纬度)

  • 计算二者之间的距离:可以通过构造用户和电影院、商场、饭店、游乐场间的距离作为新的特征
  • 通过坐标拾取系统获得当前位置的行政区ID、街道ID、城市ID等。
  • 对经纬度做散列,从而对空间区域进行分块,得到一个类别特征。(不是很明白)

对于文本特征:(这个我不是很明白,就写我明白的几个)

  • 文本清洗:去除掉文本中有影响了东西(eg:由网页抓取的数据去除掉HTMl信息,去除停止词、统一编码、去除标点、数字、空格,还原为词根),但有时候也并不一定需要清洗,比如:编辑员对物品的描述,如果关注点在物品,则清洗,如果关注点在编辑员,则并不需要清洗,因为噪声信息一定程度上反映了这个编辑员的水平。
  • 分词: 1.词性标注:可以把一个词标注为动词(表达动作)、名词(特指人、物、概念、事件)、形容词(描述名次的属性)。   2.词形还原和词干提取。    3.文本统计特征:统计文本的长度、单词个数、数字个数、字母个数、大小写字母与单词个数、特殊字符个数、数字占比、字母占比、特殊字符占比、名次个数、动词个数等( 统计个数 与 占比情况 ),            4.N-gram:将文本转化为连续的序列。 3-gram是常用的选择。(这种想法是为了把一个或多个单词同时出现的信息告诉模型) 
  • Skip-Gram:1.词集模型:向量,取值01,2.词袋模型,每个词出现,取词频。 3.TF-IDF:作为每个词的权重,与0,1或词频稍微不同,它考虑了全局情况。4.余弦相似度:在信息检索中,要计算检索词和文档的相关性,可以把二者都表示为向量后计算余弦相似度。 5.JACCard相似度:类似于余弦相似度,进行两个文档的相似度度量。6.Levenshtein:判断一个字符串转换为另一个字符串需要操作的次数(插入、删除、替换),可以衡量两个str的相似度。 7Word2Vec:获得每个单词在某个低维空间的嵌入表示。

未完,,慢慢写。

 

终于完了,开心~

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值