下列哪些方法可以用来对高维数据进行降维:
2018-02-26 22:41
387 查看
感想
降维的方法有很多种,比如auto encoder,pca, LDA等,但是列举全还是不怎么行,看来还是要刷题。problem
下列哪些方法可以用来对高维数据进行降维:A. LASSO
B. 主成分分析法
C. 聚类分析
D. 小波分析法
E. 线性判别法
F. 拉普拉斯特征映射答案: A B C D E F
analysis
Lasso(Least absolute shrinkage and selection operator, Tibshirani(1996)) 方法是一种压缩估计,它通过构造一个罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。Lasso 的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于 0 的回归系数,得到可以解释的模型。lasso通过参数缩减达到降维的目的;主成分分析的方法即PCA,这是一个经典的数据降维方法,如果有不明白的,就自行搜索了。
小波是定义在有限间隔而且其平均值为零的一种函数,小波具有有限的持续时间和突变的频率和振幅,波形可以是不规则的,也可以是不对称的,在整个时间范围里的幅度平均值为零。而正弦波和余弦波具有无限的持续时间,它可从负无穷扩展到正无穷,波形是平滑的,它的振幅和频率也是恒定的。
信号分析一般是为了获得时间和频率域之间的相互关系。傅立叶变换提供了有关频率域的信息,但时间方面的局部化信息却基本丢失。与傅立叶变换不同,小波变换通过平移母小波(mother wavelet)可获得信号的时间信息,而通过缩放小波的宽度(或者叫做尺度)可获得信号的频率特性。对母小波的缩放和平移操作是为了计算小波的系数,这些系数代表小波和局部信号之间的相互关系。小波分析中常用的三个基本概念:连续小波变换、离散小波变换和小波重构,如果有兴趣的同学,可以自行了解。
线性判别法,即LDA,LDA的全称是Linear Discriminant Analysis(线性判别分析),是一种supervised learning。有些资料上也称为是Fisher’s Linear Discriminant,因为它被Ronald Fisher发明自1936年,Discriminant这次词我个人的理解是,一个模型,不需要去通过概率的方法来训练、预测数据,比如说各种贝叶斯方法,就需要获取数据的先验、后验概率等等。LDA是在目前机器学习、数据挖掘领域经典且热门的一个算法,据我所知,百度的商务搜索部里面就用了不少这方面的算法。
LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,会形成按类别区分,一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近。
拉普拉斯特征映射:它的直观思想是希望相互间有关系的点(在图中相连的点)在降维后的空间中尽可能的靠近。Laplacian Eigenmaps可以反映出数据内在的流形结构。
降维方法 __ 属性选择:过滤法;包装法;嵌入法;
|_ 映射方法 _线性映射方法:PCA、FDA等
|_非线性映射方法:
|__核方法:KPCA、KFDA等
|__二维化:
|__流形学习:ISOMap、LLE、LPP等。
|__其他方法:神经网络和聚类
参考文献
[1].牛客网.https://www.nowcoder.com/questionTerminal/90980952e1b747d3ace40c1356b64c5b[2].数据降维方法小结.http://blog.csdn.net/yujianmin1990/article/details/48223001
[3].机器学习降维算法四:Laplacian Eigenmaps 拉普拉斯特征映射.http://blog.csdn.net/xbinworld/article/details/8855796
[4].机器学习中的数学(4):线性判别分析、主成分分析.http://blog.jobbole.com/88195/
相关文章推荐
- XSLT对XML数据进行分页且可以按某个值重新排序的方法
- 用jQuery中的Ajax方法,进行无刷新修改类别(可以是任何数据)的办法
- Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
- JS中可以用来存储用户数据的方法或方式
- thinkphp的M方法可以直接使用模型类进行查询,而模型类名字要与数据表对应,模型类中字段不需要写
- 用R语言对高维数据进行降维聚类展示
- 转:在ASP.NET中在不同页面间进行数据传递有哪些方法
- toString()方法,与call()方法结合;用来进行数据类型检测
- Command不是也可以对数据库进行insert,update,delete操作吗,为什么还需要DataAdapter。我知道DataAdapter可以用来想AataSet中填充数据,Command不可以吗?
- 不进行APP埋点的情况下,SDK可以收集到哪些数据?
- 浅谈高维数据可视化中的降维方法
- Intent传递数据时,下列的数据类型哪些可以被传递
- 五星-原型模式常使用于以下场景--而JAVA中的任何类只要实现了Cloneable标识接口,就可以使用clone方法来进行对象的拷贝
- Transact-SQL进行数据导入导出方法
- android app性能优化-有哪些方法可以减少内存使用:
- 数据挖掘的方法有哪些?-转
- XML数据解析可以直接调用此方法
- C# 自己写的一个类,用来将结构体或类中的数据打成"数据包",进行网络发送
- final关键字可以用来修饰类、方法、变量、参数,不能修饰抽象类和接口
- C#+arcengine实现栅格计算器的减功能(可以用来修改栅格数据的高程)