特征分类

Posted zourui4271

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了特征分类相关的知识,希望对你有一定的参考价值。

特征分类

对特征进行分类,对于不同的特征应该有不同的处理方法。

根据不同的分类方法,可以将特征分为

(1)Low level特征和High level特征。

Low level特征——较低级别的特征,主要是原始特征,不需要或者需要非常少的人工处理和干预。

例如文本特征中的词向量特征,图像特征中的像素点,用户id,商品id等。
Low level特征一般维度比较高,不能用过于复杂的模型。
 

High level特征——经过较复杂的处理,结合部分业务逻辑或者规则、模型得到的特征。

例如人工打分,模型打分等特征,可以用于较复杂的非线性模型。
 
Low level 比较针对性,覆盖面小。长尾样本的预测值主要受high level特征影响。 高频样本的预测值主要受low level特征影响。

(2)稳定特征与动态特征。

稳定特征——变化频率(更新频率)较少的特征
例如评价平均分,团购单价格等,在较长的时间段内都不会发生变化。
 
动态特征——更新变化比较频繁的特征,有些甚至是实时计算得到的特征
例如距离特征,2小时销量等特征。或者叫做实时特征和非实时特征。
 
针对两类特征的不同可以针对性地设计特征存储和更新方式
例如
对于稳定特征,可以建入索引,较长时间更新一次,如果做缓存的话,缓存的时间可以较长。
对于动态特征,需要实时计算或者准实时地更新数据,如果做缓存的话,缓存过期时间需要设置的较短。

(3)二值特征、连续特征、枚举特征。

二值特征——主要是0/1特征,即特征只取两种值:0或者1
例如用户id特征:目前的id是否是某个特定的id,词向量特征:某个特定的词是否在文章中出现等等。
 
连续值特征——取值为有理数的特征,特征取值个数不定,例如距离特征,特征取值为是0~正无穷。
 
枚举值特征——主要是特征有固定个数个可能值,例如今天周几,只有7个可能值:周1,周2,...,周日。
 
在实际的使用中,我们可能对不同类型的特征进行转换,例如将枚举特征或者连续特征处理为二值特征。
 
枚举特征处理为二值特征技巧
将枚举特征映射为多个特征,每个特征对应一个特定枚举值,例如今天周几,可以把它转换成7个二元特征:今天是否是周一,今天是否是周二,...,今天是否是周日。
连续值处理为二值特征方法:
先将连续值离散化(后面会介绍如何离散化),再将离散化后的特征切分为N个二元特征,每个特征代表是否在这个区间内。

 

特征处理与分析

特征分类后要对特征进行处理

包括1.特征归一化,离散化,缺省值处理。2.特征降维方法。3.特征选择方法等。——主要用于单个特征的处理。

 

  • 归一化 不同的特征有不同的取值范围,在有些算法中,例如线性模型或者距离相关的模型像聚类模型、knn模型等,特征的取值范围会对最终的结果产生较大影响,例如二元特征的取值范围为[0,1],而距离特征取值可能是[0,正无穷),在实际使用中会对距离进行截断,例如[0,3000000],但是这两个特征由于取值范围不一致导致了模型可能会更偏向于取值范围较大的特征,为了平衡取值范围不一致的特征,需要对特征进行归一化处理,将特征取值归一化到[0,1]区间。 常用的归一化方法 包括 1.函数归一化 通过映射函数将特征取值映射到[0,1]区间,例如最大最小值归一化方法,是一种线性的映射。还有通过非线性函数的映射,例如log函数等。 2.分维度归一化 可以使用最大最小归一化方法,但是最大最小值选取的是所属类别的最大最小值,即使用的是局部最大最小值,不是全局的最大最小值。 3.排序归一化 不管原来的特征取值是什么样的,将特征按大小排序,根据特征所对应的序给予一个新的值。

  • 离散化 在上面介绍过连续值的取值空间可能是无穷的,为了便于表示和在模型中处理,需要对连续值特征进行离散化处理。 常用的离散化方法 包括 1.等值划分 将特征按照值域进行均分,每一段内的取值等同处理。例如某个特征的取值范围为[0,10],我们可以将其划分为10段,[0,1),[1,2),...,[9,10)。 2.等量划分 根据样本总数进行均分,每段等量个样本划分为1段。例如距离特征,取值范围[0,3000000],现在需要切分成10段,如果按照等比例划分的话,会发现绝大部分样本都在第1段中。使用等量划分就会避免这种问题,最终可能的切分是[0,100),[100,300),[300,500),..,[10000,3000000],前面的区间划分比较密,后面的比较稀疏。

  • 缺省值处理 有些特征可能因为无法采样或者没有观测值而缺失,例如距离特征,用户可能禁止获取地理位置或者获取地理位置失败,此时需要对这些特征做特殊的处理,赋予一个缺省值。缺省值如何赋予,也有很多种方法。例如单独表示,众数,平均值等。

以上是关于特征分类的主要内容,如果未能解决你的问题,请参考以下文章

将 OneHotEncoder 用于决策树分类器中的分类特征

使用朴素贝叶斯分类算法构建鸢尾属分类器

如何输出特征向量机器学习分类算法

NLP之文本分类

python中适合稀疏高维特征的理想分类器(带有分层分类)

文本分类的特征选择