特征提取与特征选择

        特征抽取和特征选择是DimensionalityReduction(降维)的两种方法,针对于the curse of dimensionality(维度灾难),都可以达到降维的目的。但是这两个有所不同。

        特征提取(Feature Extraction):Creatting a subset of new features by combinations of the exsiting features。即特征提取的方法主要是通过属性间的关系,如组合不同的属性得到新的属性,这样就改变了原来的特征空间。从某种意义上就是特征构造(feature construction)

        特征选择(Feature Selection):choosing a subset of all the features(the ones more informative)。即特征选择的方法是从原始特征数据集中选择出子集,是一种包含的关系,没有更改原始的特征空间。
特征提取与特征选择_第1张图片

        特征发散: 如果特征不发散,也就是说特征的方差趋近于0,则代表这个特征上不同样本之间没有差异性,对区分样本的作用基本不存在。

        特征与目标的相关性: 所谓相关性,就是说特征和目标值之间存在正相关(随着目标值的变大特征值也逐渐变大)或者负相关的特性。代表了特征值和目标值之间具有很强的数据上的因果关系。


1 特征提取

        这部分主要借鉴自:特征提取与特征选择——http://lanbing510.info/2014/10/22/Feature-Extraction-Selection.html

1.1 线性特征

  1. PCA-主成分分析
    思想:通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大(样本的分布最散乱)以使用较少的数据维度同时保留住较多的原数据点的特征。(降维,可以去相关)
    其实就是取协方差矩阵前 s s s 个最大特征值对应的特征向量构成映射矩阵,对数据进行降维。

  2. LDA-线性判别分析
    思想:将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。一句话概括,投影后类内方差最小,类间方差最大。
    用到了Fisher的思想,即寻找一个向量,使得降维后类内散度最小,类间散度最大;其实就是取 S w − 1 S b \pmb{S}_w^{-1}\pmb{S}_b SSSw1SSSb s s s 个特征值对应的特征向量构成映射矩阵,对数据进行处理。

参考文献: Hua Yu and JieYang, A direct LDA algorithm for high - dimensional data with application to face recognition, Pattern Recognition Volume 34, Issue 10, October 2001,pp.2067- 2070
参考博客:线性分类(二)-- 线性判别分析 LDA

  1. ICA-独立成分分析
    思想:PCA是将原始数据降维,并提取不相关的部分;ICA是将原始数据降维并提取出相互独立的属性;寻找一个线性变换 z = W x \pmb{z}=\pmb{Wx} zzz=WxWxWx,使得 z \pmb{z} zzz 的各个分量间的独立性最大, I ( z ) = E l n p ( z ) p ( z 1 ) ⋯ p ( z d ) I(\pmb{z})=Eln\dfrac{p(\boldsymbol{z})}{p(\boldsymbol{z}_1)\cdots p(\boldsymbol{z}_d)} I(zzz)=Elnp(z1)p(zd)p(z)

参考文献:A. Hyvarinenand E. Oja. Independent Component Analysis: Algorithms and Applications. Neural Networks, 13(4- 5):411 -430, 200

  1. CCA-典型对应分析(Canonical Correlaton Analysis)
    思想:找到两组基,使得两组数据在这两组基上的投影相关性最大。
    用来描述两个高维变量之间的线性关系

参考文献:R. H. David, S. Sandor and S.- T. John,Canonical correlation analysis: An overview with application to learning methods, Technical Report, CSD - TR- 03-02,2003
参考博客:典型相关分析 CCA

  1. 多维尺度分析法(MDS)
    思想:根据样本之间的距离关系或不相似度关系在低维空间里生成对样本的一种表示。
  • 度量型:把样本间的距离关系或不相似度关系看作一种定量的度量,尽可能的在低维空间里保持这种度量关系
  • 非度量型:把样本间的距离关系或不相似度关系看作一种定性的关系,在低维空间里只需保持这种关系的顺序
  1. 二维 PCA

参考文献:J. Yang, D. Zhang, A.F. Frangi , and J.Y. Yang, Two - dimensional PCA: a new approach to appearance - based face representation and recognition, IEEE Trans. on Pattern Analysis and Machine Intelligence, vol. 26, no. 1, pp. 131- 137, Jan. 2004

1.2 非线性特征

  1. Kernel PCA
    核主成分分析法(如核方法KPCAKDA)的主要思想:先对样本进行非线性变换,再在变换空间进行主成分分析来实现在原空间的非线性主成分分析。

参考论文:B. Scholkopf , A. Smola , and K.R. Muller. Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, 10(5): 1299- 1319, 1998

  1. Kernel FDA

参考论文:Mika, S., Ratsch , G., Weston, J., Scholkopf , B., Mullers, K.R., Fisher discriminantanalysis with kernels, Neural Networks for Signal Processing IX, Proceedings of the IEEE Signal Processing Society Workshop, pp. 41 – 48, 1999

  1. Manifold Learning 流形学习
    思想:通过局部距离来定义非线性距离度量,在样本分布较密集的情况下可以实现各种复杂的非线性距离度量。
    利用流形学上的局部结构进行降维的方法有:
  • 等容特征映射(ISOMAP)——欧氏距离累加
  • 局部线性嵌入(LLE)——近邻样本线性重构
  • 拉普拉斯特征映射(Laplacian Eigenmap、LPP)—— 邻域选取和样本间相似度调查

参考文献:
[1] J. B. Tenenbaum , V. de Silva, and J. C. Langford, A global geometric framework for nonlinear dimensionality reduction, Science, 290, pp. 2319 - 2323, 2000
[2] Sam T. Roweis , and Lawrence K. Saul, Nonlinear Dimensionality Reduction by Locally Linear Embedding,Science 22 December 2000
[3] Mikhail Belkin , Partha Niyogi ,Laplacian Eigenmaps for Dimensionality Reduction and Data Representation , Computation , 200
[4] Xiaofei He, Partha Niyogi, Locality Preserving Projections, Advances in Neural Information Processing Systems 16 (NIPS 2003), Vancouver, Canada, 2003

  1. 卷积法
    局部特征的提取(Extraction of local features):对于有序的、空间或其他结构化数据,使用特定技术,例如使用手工制作的内核或句法和结构方法的卷积方法,可以将特定于问题的知识编码到特征中。

         一般数据是有类别的,最好先考虑用LDA降维。也可先用小幅度的PCA降维消除噪声再用LDA降维,若训练数据没有类别优先考虑PCA
        特征提取是由原始输入形成较少的新特征,它会破坏数据的分布,为了使得训练出的模型更加健壮,若不是数据量很大特征种类很多,一般不要用特征提取。


2 特征选择

        这一部分主要借鉴自:机器学习之特征选择和特征提取——https://www.cnblogs.com/dyl222/p/11055756.html
和特征选择算法——https://www.cnblogs.com/nolonely/p/6435083.html

  1. 为什么要做特征选择
            在有限的样本数目下,用大量的特征来设计分类器计算开销太大而且分类性能差。
  2. 特征选择的确切含义
            将高维空间的样本通过映射或者是变换的方式转换到低维空间,达到降维的目的,然后通过特征选取删选掉冗余和不相关的特征来进一步降维。
  3. 特征选取的原则
            获取尽可能小的特征子集,不显著降低分类精度、不影响类分布以及特征子集应具有稳定适应性强等特点

2.1 按搜索策略分类

  • 基于全局寻优的分支定界法:设法将所有可能的特征组合构建成一个树状结构,按照特定的规对树进行搜索,使得搜索过程尽可能早的达到最优解而不必遍历整棵树
  • 基于启发式搜索的方法:单独最优特征组合,序列前向选择(SFS )及广义的SFS ( GSFS),序列后向选择(SBS)及广义的SBS(GSFS),增L去R选择及广义的增L去R选择方法,浮动搜索方法及浮动的广义后向选择方法(FGSBS)
  • 随机搜索方法:对每个特征赋予一定的权重 ,再根据给定的或自适应的阈值对特征的重要性进行评价

2.2 按评价准则分类

2.2.1 过滤法(Filter)

        过滤法主要思想是:对每一维的特征“打分”,即给每一维的特征赋予权重,这样的权重就代表着该维特征的重要性,然后依据权重排序,完成特征选择。

主要方法有:

  • 方差法:这种方法通过计算每个特征的均值和方差,设定一个基础阈值,当该维度的特征方差小于基础阈值时,则丢弃该特征。这种方法简单高效的过滤了一些低方差的特征,但是存在一个问题就是阈值的设定是一个先验条件,当设置过低时,保留了过多低效的特征,设置过高则丢弃了过多有用的特征。

  • 单变量特征选择:单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。单变量特征选择方法,独立的衡量每个特征与响应变量之间的关系

  • 卡方检验(Chi-squared test):对于回归和分类问题可以采用卡方检验等方式对特征进行测试。
    卡方检验是数理统计中一种常用的检验两个变量独立性的方法。
    卡方检验最基本的思想就是通过观察实际值与理论值的偏差来确定理论的正确与否。

        具体做的时候常常先假设两个变量确实是独立的(行话就叫做“原假设”),然后观察实际值(也可以叫做观察值)与理论值(这个理论值是指“如果两者确实独立”的情况下应该有的值)的偏差程度,如果偏差足够小,我们就认为误差是很自然的样本误差,是测量手段不够精确导致或者偶然发生的,两者确确实实是独立的,此时就接受原假设;如果偏差大到一定程度,使得这样的误差不太可能是偶然产生或者测量不精确所致,我们就认为两者实际上不是相互独立的,即否定原假设,而接受备择假设。

        在分类任务的特征选择阶段,我们主要关心一个随机变量(某一特征)与另一个随机变量(样本类别)之间是否相互独立?如果独立,就可以说该特征对样本类别的确定不起作用,即我们根本无法根据该特征出现与否来判断该样本是否属于这个分类。

        注意: 首先我们需要明白对特征选择来说原假设是什么,因为计算出的卡方值越大,说明对原假设的偏离越大,我们越倾向于认为原假设的反面情况是正确的。通常我们一般使用”特征xi与类别y不相关“来做原假设。选择的过程也变成了为每个特征xi计算它与类别y的卡方值,从大到小排个序(此时开方值越大越相关),取前k个就可以(因为是从大到小排序的,卡方值越大说明越偏离特征xi与类别y不相关的这个原假设,那么特征和类别相关性就越大)。

        总结:卡方通常用于检验两个变量间的独立性,在做特征选择时我们希望检验每个特征和类别之间的独立性,对于每个特征我们假设特征和类别相互独立。卡方值越大越偏离于这个假设,说明特征和类别不相互独立是我们想要选择的特征,因此对卡方值从大到小进行排序,选择前k个。

  • 互信息法选择特征样例:
    互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。

2.2.2 包裹法(Wrapper)

        所谓包裹法就是选定特定算法,然后再根据算法效果来选择特征集合。

        通过不断的启发式方法来搜索特征,主要分为如下两类。

  • 方法一:选择一些特征,逐步增加特征保证算法模型精度是否达标。
  • 方法二:删除一些特征,然后慢慢在保持算法精度的条件下,缩减特征。

        即为选用那些本就提供特征重要性测量的模型,直接调用相应方法进行特征选择。

1)利用线性回归模型
        这个不常用,因为真实数据的线性关系不是很好,故应选择能处理非线性的随机森林模型,它精确度更高,也提供预测特征重要性的方法。

2)RF选取重要特征的依据

  • 平均不纯度减少(MDI):表示每个特征对误差的平均减少程度。
  • 平均精确率减少(MDA):打乱每个特征的特征值顺序,并且度量顺序变动对模型的精确率的影响。对于不重要的特征来说,打乱顺序对模型的精确率影响不会太大,但是对于重要的特征来说,打乱顺序就会降低模型的精确率。

3)sklearn GBDT是根据非叶子节点在分裂时加权不纯度减少的程度来衡量的,减少得越多说明特征越重要。不纯度的减少实际上就是该节点此次分裂的收益,因此我们也可以这样理解,节点分裂时收益越大,该节点对应的特征的重要度越高。

4)XGBoost则有三种方法(get_score)

  • weight:特征用来作为分裂点的次数
  • gain:使用特征进行切分的平均增益
  • cover:某个特征在某个结点进行分裂时所覆盖的样本个数

2.2.3 嵌入法(Embedded)

        就是利用正则化的思想,将部分特征属性的权重调整到0,则这个特性相当于就是被舍弃了。(其实就是在损失函数上再加入正则项,不断的利用梯度下降极小化损失函数,调整一些特征的权重,有些权重变为0了则相当于被舍弃了,没被舍弃的相当于被选择出来的向量。)

        L1正则方法具有稀疏解的特性,因此天然具备特征选择的特性,但是要注意,L1没有选到的特征不代表不重要,原因是两个具有高相关性的特征可能只保留了一个,如果要确定哪个特征重要应再通过L2正则方法交叉检验。

3 小结

        在特征选择前,可以先去掉取值变化小的特征(Removing features with low variance),然后再使用其他的特征选择方法选择特征。在下图给出了特征选择的三种主要方法。 阴影显示了三种方法使用的组件:过滤器,包装器和嵌入式方法。:
特征提取与特征选择_第2张图片

        过滤法和包裹法主要根据评估标准而不同。一般而言,过滤法使用不涉及任何学习机器的标准,例如,基于相关系数或统计的相关性索引,而包裹法使用给定特征子集训练的学习机的性能。

        过滤法和包装法都可以利用搜索策略来探索通常太大而无法详尽探索的所有可能特征组合的空间。当然,混合方法也是存在的。另一类嵌入式方法在训练算法中包含特征子集生成和评估。

3.1 单变量特征选择(Univariate feature selection)

        单变量特征选择能够对每一个特征进行测试,衡量该特征和响应变量之间的关系,根据得分扔掉不好的特征。对于回归和分类问题可以采用卡方检验等方式对特征进行测试。

3.1.1 Pearson相关系数(Pearson Correlation)

        皮尔森相关系数是一种最简单的,能帮助理解特征和响应变量之间关系的方法,该方法衡量的是变量之间的线性相关性,结果的取值区间为[-1,1],-1表示完全的负相关(这个变量下降,那个就会上升),+1表示完全的正相关,0表示没有线性相关。

3.1.2 互信息和最大信息系数 Mutual information and maximal information coefficient (MIC)

        想把互信息直接用于特征选择其实不是太方便:1、它不属于度量方式,也没有办法归一化,在不同数据集上的结果无法做比较;2、对于连续变量的计算不是很方便( X X X Y Y Y 都是集合, x x x y y y 都是离散的取值),通常变量需要先离散化,而互信息的结果对离散化的方式很敏感。

3.1.3 距离相关系数 (Distance correlation)

        距离相关系数是为了克服Pearson相关系数的弱点而生的Pearson相关系数是0,我们也不能断定这两个变量是独立的(有可能是非线性相关);但如果距离相关系数是0,那么我们就可以说这两个变量是独立的。

3.1.4 基于学习模型的特征排序 (Model based ranking)

        这种方法的思路是直接使用你要用的机器学习算法,针对每个单独的特征和响应变量建立预测模型。其实Pearson相关系数等价于线性回归里的标准化回归系数。假如某个特征和响应变量之间的关系是非线性的,可以用基于树的方法(决策树、随机森林)、或者扩展的线性模型等。基于树的方法比较易于使用,因为他们对非线性关系的建模比较好,并且不需要太多的调试。但要注意过拟合问题,因此树的深度最好不要太大,再就是运用交叉验证。

3.2 线性模型和正则化

        单变量特征选择方法独立的衡量每个特征与响应变量之间的关系,另一种主流的特征选择方法是基于机器学习模型的方法。有些机器学习方法本身就具有对特征进行打分的机制,或者很容易将其运用到特征选择任务中,例如回归模型,SVM,决策树,随机森林等等。

3.2.1 正则化模型

        正则化就是把额外的约束或者惩罚项加到已有模型(损失函数)上,以防止过拟合并提高泛化能力。损失函数由原来的 E ( X , Y ) E(X,Y) E(X,Y) 变为 E ( X , Y ) + α ∣ ∣ w ∣ ∣ E(X, Y)+\alpha||\pmb{w}|| E(X,Y)+αwww w \pmb{w} www 是模型系数组成的向量(有些地方也叫参数parametercoefficients), ∣ ∣ ⋅ ∣ ∣ ||\cdot|| 一般是L1或者L2范数, α \alpha α 是一个可调的参数,控制着正则化的强度。当用在线性模型上时,L1正则化和L2正则化也称为LassoRidge

3.2.2 L1正则化/Lasso

        L1正则化将系数 w w wL1范数作为惩罚项加到损失函数上,由于正则项非零,这就迫使那些弱的特征所对应的系数变成0。因此L1正则化往往会使学到的模型很稀疏(系数 w \pmb{w} www 经常为0),这个特性使得L1正则化成为一种很好的特征选择方法。

3.2.3 L2正则化/Ridge regression

        L2正则化将系数向量的L2范数添加到了损失函数中。由于L2惩罚项中系数是二次方的,这使得L2L1有着诸多差异,最明显的一点就是,L2正则化会让系数的取值变得平均。对于关联特征,这意味着他们能够获得更相近的对应系数。还是以 Y = X 1 + X 2 Y=X1+X2 Y=X1+X2 为例,假设 X 1 X1 X1 X 2 X2 X2 具有很强的关联,如果用L1正则化,不论学到的模型是 Y = X 1 + X 2 Y=X1+X2 Y=X1+X2 还是 Y = 2 X 1 Y=2X1 Y=2X1,惩罚都是一样的,都是 2 α 2\alpha 2α。但是对于L2来说,第一个模型的惩罚项是 2 α 2\alpha 2α,但第二个模型的是 4 ∗ α 4*\alpha 4α。可以看出,系数之和为常数时,各系数相等时惩罚是最小的,所以才有了L2让各个系数趋于相同的特点。

        可以看出,L2正则化对于特征选择来说一种稳定的模型,不像L1正则化那样,系数会因为细微的数据变化而波动。所以L2正则化和L1正则化提供的价值是不同的,L2正则化对于特征理解来说更加有用:表示能力强的特征对应的系数是非零

3.3 随机森林

        随机森林具有准确率高、鲁棒性好、易于使用等优点,这使得它成为了目前最流行的机器学习算法之一。随机森林提供了两种特征选择的方法:mean decrease impuritymean decrease accuracy

3.3.1 平均不纯度减少 mean decrease impurity

        随机森林由多个决策树构成。决策树中的每一个节点都是关于某个特征的条件,为的是将数据集按照不同的响应变量一分为二。利用不纯度可以确定节点(最优条件),对于分类问题,通常采用基尼不纯度或者信息增益,对于回归问题,通常采用的是方差或者最小二乘拟合。当训练决策树的时候,可以计算出每个特征减少了多少树的不纯度。对于一个决策树森林来说,可以算出每个特征平均减少了多少不纯度,并把它平均减少的不纯度作为特征选择的值。

3.3.2 平均精确率减少 Mean decrease accuracy

        另一种常用的特征选择方法就是直接度量每个特征对模型精确率的影响。主要思路是打乱每个特征的特征值顺序,并且度量顺序变动对模型的精确率的影响。很明显,对于不重要的变量来说,打乱顺序对模型的精确率影响不会太大,但是对于重要的变量来说,打乱顺序就会降低模型的精确率。

3.4 两种顶层特征选择算法

        之所以叫做顶层,是因为他们都是建立在基于模型的特征选择方法基础之上的,例如回归和SVM,在不同的子集上建立模型,然后汇总最终确定特征得分。

3.4.1 稳定性选择 Stability selection

        稳定性选择是一种基于二次抽样和选择算法相结合较新的方法,选择算法可以是回归、SVM或其他类似的方法。它的主要思想是在不同的数据子集和特征子集上运行特征选择算法,不断的重复,最终汇总特征选择结果,比如可以统计某个特征被认为是重要特征的频率(被选为重要特征的次数除以它所在的子集被测试的次数)。理想情况下,重要特征的得分会接近100%。稍微弱一点的特征得分会是非0的数,而最无用的特征得分将会接近于0。

3.4.2 递归特征消除 Recursive feature elimination (RFE)

        递归特征消除的主要思想是反复的构建模型(如SVM或者回归模型)然后选出最好的(或者最差的)的特征(可以根据系数来选),把选出来的特征放到一边,然后在剩余的特征上重复这个过程,直到所有特征都遍历了。这个过程中特征被消除的次序就是特征的排序。因此,这是一种寻找最优特征子集的贪心算法。

        RFE的稳定性很大程度上取决于在迭代的时候底层用哪种模型。例如,假如RFE采用的普通的回归,没有经过正则化的回归是不稳定的,那么RFE就是不稳定的;假如采用的是Ridge,而用Ridge正则化的回归是稳定的,那么RFE就是稳定的。

3.5 启发式搜索

        序列前向选择(SFS,Sequential Forward Seelction):特征子集 X X X 从空集开始,每次选择一个特征 x \pmb{x} xxx 加入特征子集 X \pmb{X} XXX,使得特征函数 J ( X ) J(\pmb{X}) J(XXX) 最优。简单说就是,每次都选择一个使得评价函数的取值达到最优的特征加入,其实就是一种简单的贪心算法。缺点就是只能加入特征而不能去除特征。例如:特征A完全依赖于特征B与C,可以认为如果加入了特征B与C则A就是多余的。假设序列前向选择算法首先将A加入特征集,然后又将B与C加入,那么特征子集中就包含了多余的特征A。

        序列后向选择(SBS,Sequential Backward Selection):从特征全集O开始,每次从特征集O中剔除一个特征 x \pmb{x} xxx,使得剔除特征 x \pmb{x} xxx 后评价函数值达到最优。和SFS相反,从特征全集开始,每次选择使评价函数 J ( X ) J(\pmb{X}) J(XXX) 最优的特征 x \pmb{x} xxx 剔除,也是贪心算法,缺点是只减不增。

        双向搜索(BDS,Bidirectional Search):使用SFS从空集开始,同时使用SBS从全集开始搜索,当两者搜索到一个相同的特征子集C时停止搜索。双向搜索的出发点是。如下图所示,O点代表搜索起点,A点代表搜索目标。灰色的圆代表单向搜索可能的搜索范围,绿色的2个圆表示某次双向搜索的搜索范围,容易证明绿色的面积必定比灰色的要小。

        增L去R选择算法(LRS,Plus-L Minus-R Selection):该算法有两种形式,此算法结合了SBS和SFS思想,L和R的选择是关键。

        算法从空集开始,每轮先加入L个特征,然后从中去除R个特征,使得评价函数值最优。(L>R)

        算法从全集开始,每轮先去除R个特征,然后加入L个特征,使得评价函数最优。(L

        浮动序列选择(Sequential Floating Selection):序列浮动选择由LRS发展而来,该算法与LRS算法不同之处在:序列浮动选择的L与R不是固定的,而是“浮动”的,也就是会变化的。此算法结合了SBS, SFS, LRS的特点,并弥补了它们的缺点。根据搜索方向的不同,有以下两种变种:

        序列浮动前向选择(SFFS, Sequential Floating Forward Selection):从空集开始,每轮在未选择的特征中选择一个子集x,使加入子集x后评价函数达到最优,然后在已选择的特征中选择子集z,使剔除子集z后评价函数达到最优。

        序列浮动后向选择(SBBS, Sequential Floating Backward Selection):从全集开始,每轮在已选择的特征中剔除一个子集z,使剔除子集z后评价函数达到最优,然后在未选择的特征中选择子集x,使加入子集x后评价函数达到最优。

3.6 特征获取方法的选取原则

a、处理的数据类型
b、处理的问题规模
c、问题需要分类的数量
d、对噪声的容忍能力
e、无噪声环境下,产生稳定性好、最优特征子集的能力。

互信息 Mutual Informantion
         y j y_j yj x i x_i xi 的互信息定义为后验概率与先验概率比值的对数。互信息越大,表明 y j y_j yj 对于确定 x i x_i xi 的取值的贡献度越大。

        实际上,互信息衡量的是 x i x_i xi y y y 的独立性,如果他俩独立,则互信息发值为零,则 x i x_i xi y y y 不相关,则可以剔除 x i x_i xi,反之,如果互信息发值越大则他们的相关性越大

        基于期望交叉熵的特征项选择
C E ( w ) = ∑ i p ( c i ∣ w ) l o g p ( c i ∣ w ) p ( c i ) CE(w) = \sum_{i}p(c_i|w)log\frac{p(c_i|w)}{p(c_i)} CE(w)=ip(ciw)logp(ci)p(ciw)
         p ( c i ∣ w ) p(c_i|w) p(ciw) 表示在出现词条 w w w 时文档属于类别 c i c_i ci 的概率。

        交叉熵反应了文本类别的概率分布与在出现了某个词条的情况下文本类别的概率分布之间的距离。词条的交叉熵越大,对文本类别分布影响也就越大。

        如果使用具有对称性的交叉熵,那公式就变成了
C E ( w ) = ∑ i [ p ( c i ∣ w ) l o g p ( c i ∣ w ) p ( c i ) + p ( c i ) l o g p ( c i ) p ( c i ∣ w ) ] CE(w)=\sum_i[p(c_i|w)log\frac{p(c_i|w)}{p(c_i)}+p(c_i)log\frac{p(c_i)}{p(c_i|w)}] CE(w)=i[p(ciw)logp(ci)p(ciw)+p(ci)logp(ciw)p(ci)]

        特征选择代码实现:特征选择-算法实现、特征选择与特征提取最全总结、https://github.com/jundongl/scikit-feature


参考

  • 机器学习之特征选择和特征抽取:https://www.cnblogs.com/dyl222/p/11055756.html
  • 特征选择与特征提取最全总结:https://cloud.tencent.com/developer/article/1882617
  • 机器学习之数据清洗、特征提取与特征选择:https://zhuanlan.zhihu.com/p/34450286
  • 特征提取与特征选择:http://lanbing510.info/2014/10/22/Feature-Extraction-Selection.html
  • 特征选择算法 :https://www.cnblogs.com/babyfei/p/9674128.html
  • 关于特征选择算法与Relief的实现:https://www.cnblogs.com/ECJTUACM-873284962/p/7129206.html#_label8_1

你可能感兴趣的:(Machine,Learning,机器学习,特征选择,特征提取,数据预处理,特征工程)