漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]

漫谈机器学习经典算法—特征提取与特征选择

大家好,又见面了,我是全栈君。

更新:邮箱发只是来。此文放到了http://lanbing510.info/2014/10/22/Feature-Extraction-Selection.html。谢谢。

注:图片看不到的同学能够去以下的链接查看:http://app.yinxiang.com/l/AB8UpUaK_SBMEald_sRU-Z-xGtofVoIaxjM/

特征提取和特征选择都是从原始特征中找出最有效(同类样本的不变性、不相同本的鉴别性、对噪声的鲁棒性)的特征

特征提取:将原始特征转换为一组具有明显物理意义(Gabor、几何特征[角点、不变量]、纹理[LBP HOG])或者统计意义或核的特征
特征选择:从特征集合中挑选一组最具统计意义的特征。达到降维
两者作用:
1 降低数据存储和输入数据带宽
2 降低冗余
3 低纬上分类性往往会提高
4 能发现更有意义的潜在的变量,帮助对数据产生更深入的了解


线性特征提取

PCA-主成分分析

思想:寻找表示数据分布的最优子空间(降维,能够去相关)
事实上就是协方差矩阵前s个最大特征值相应的特征向量构成映射矩阵
以下是讲述的非常直观具体的文章






LDA-线性判别分析
思想:寻找可分性判据最大的子空间。
用到了Fisher的思想,即寻找一个向量。使得降维后类内散度最小。类间散度最大;事实上就是Sw-1Sb前s个特征值相应的特征向量构成映射矩阵
DHS的模式分类一书中96页有具体的推导,浅显易懂
參考论文1

ICA-独立成分分析
思想:PCA是将原始数据降维。并提取不相关的部分。ICA是将原始数据降维并提取出相互独立的属性;寻找一个线性变换z=Wx,使得z的各个分量间的独立性最大。I(z)=Eln(p(z)/p(z1)..p(zd))
看Machine Learning A Probabilistic Perspective的推导计算
參考论文2


注:PCA&ICA
PCA的问题事实上是一个基的变换,使得变换后的数据有着最大的方差。方差的大小描写叙述的是一个变量的信息量,我们在讲一个东西的稳定性的时候,往往说要减小方差,假设一个模型的方差非常大,那就说明模型不稳定了。

可是对于我们用于机器学习的数据(主要是训练数据)。方差大才有意义,不然输入的数据都是同一个点,那方差就为0了,这样输入的多个数据就等同于一个数据了。


漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]


ICA是找出构成信号的相互独立部分(不须要正交),相应高阶统计量分析。ICA理论觉得用来观測的混合数据阵X是由独立元S经过A线性加权获得。ICA理论的目标就是通过X求得一个分离矩阵W,使得W作用在X上所获得的信号Y是独立源S的最优逼近。该关系能够通过下式表示:

Y = WX = WAS 。 A = inv(W)

ICA相比与PCA更能刻画变量的随机统计特性,且能抑制高斯噪声。

漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]




二维PCA
參考论文3






CCA-Canonical Correlaton Analysis 典型相应分析
思想:找到两组基,使得两组数据在这两组基上的投影相关性最大
用来描写叙述两个高维变量之间的线性关系
用PLS(Partial Least Squares)来求解
參考论文4




非线性特征提取

Kernel PCA  參考论文5

Kernel FDA  參考论文6


Manifold Learning 流形学习
找到流行上的低维坐标
利用流行学上的局部结构进行降维的方法:ISOMAP、LLE、Laplacian Eigenmap、LPP
參考文献7 8 9 10


准则性质总结


分为三类
1 基于欧氏距离的准则(散度矩阵)
漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]


漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]



3 基于熵的准则
漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]





相应的准则相应
漫谈机器学习经典算法—特征提取与特征选择[通俗易懂]










參考文献

[1] 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
[2] A. Hyvarinenand E.  Oja. Independent Component Analysis: Algorithms and Applications.  Neural Networks, 13(4- 5):411 -430, 200
[3] 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
[4] 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
[5] B. Scholkopf , A.  Smola , and K.R. Muller. Nonlinear component analysis as a kernel eigenvalue problem, Neural Computation, 10(5): 1299- 1319, 1998
[6] 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
[7] J. B.  Tenenbaum , V. de Silva, and J. C. Langford, A global geometric framework for nonlinear dimensionality reduction, Science, 290, pp. 2319 – 2323, 2000
[8] Sam T.  Roweis , and Lawrence K. Saul, Nonlinear Dimensionality Reduction by Locally Linear Embedding,Science 22 December 2000
[9] Mikhail Belkin ,   Partha Niyogi ,Laplacian Eigenmaps for Dimensionality Reduction and Data Representation , Computation , 200
[10] Xiaofei He, Partha Niyogi, Locality Preserving Projections, Advances in Neural Information Processing Systems 16 (NIPS 2003), Vancouver, Canada, 2003
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115668.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • js如何在前端控制台打印

    在js中右中全局方法可以在控制台console中打印信息:1、console.log(123);2、console.info(456);3、console.warn(666);4、console.error(23333);在浏览器端,按下F12可以打开浏览器的console窗口,查看即可。不同方法展示效果也不同,上图是log()输出的,下图是warn()输出的以及e…

  • Vim 保存退出_vim修改完怎么保存退出

    Vim 保存退出_vim修改完怎么保存退出E45:‘readonly’optionisset(add!tooverride)

  • java控制台输入数组_Java控制台输入数组并逆序输出的方法实例

    java控制台输入数组_Java控制台输入数组并逆序输出的方法实例输入一个数组,然后颠倒次序进行输出,这种算法在程序开发中经常用到,下面我们通过一个小实例来看看怎么实现在控制台输入一个数组,并让其逆序输出的。源码:importjava.util.Scanner;publicclassTest01{publicstaticvoidmain(String[]args){System.out.println(“请输入五个数”);int[]l=newi…

  • 大学毕业生上班第一天6月3号码

    大学毕业生上班第一天6月3号码

  • 什么是5g网络切片_5g网络切片架构三层

    什么是5g网络切片_5g网络切片架构三层2020年,相信很多小伙伴已经用上了5G手机,感受到了5G的网络带来的飞一般的感觉。不过,可能也有小伙伴会发出疑问:我买了5G手机,也体验了5G,好是好,但似乎也没有外界吹得那么神乎啊。不是说好的技术革命吗?就只是网速变快了而已?其实这背后主要有两个原因,一个是目前5G切实落地的应用还比较少,第二个就是目前5G的技术确实也还在演进过程中。我们回想一下5G的三大核心应用场景:增强型移动宽带(eMBB):更大的网络吞吐量、峰值速率和低延时;海量机器通信(mMTC):巨大的连

  • VSCode运行Python教程「建议收藏」

    VSCode运行Python教程「建议收藏」1)首先在自己电脑新建一个专门写Python代码的文件夹(建议使用英文命名)然后打开VSCode,点击在弹出的界面,点击“打开文件夹”(或者点击顶端菜单栏的“文件”,再选择“打开文件夹”),选择你创建的文件夹。2)打开你刚刚建立的文件夹—>新建文件,编写Python代码。参考下面操作。每次新建Python文件,点击你文件夹旁边的**“新建文件”按钮**—>输入“文件名.py…

    2022年10月24日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号