zoukankan      html  css  js  c++  java
  • 机器学习算法——降维

    降维是机器学习中很重要的一种思想。在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”。另外在高维特征中容易出现特征之间的线性相关,这也就意味着有的特征是冗余存在的。基于这些问题,降维思想就出现了。当数据量比较大的时候,可以通过降纬的方式来处理,常见的降纬方法有主成分分析(PCA)、因子分析(factor analysis)、线性判别分析(LDA)、奇异值分解(SVD)。

    主成分分析的优缺点:

    优点:降低数据的复杂性,识别最重要的多个特征。

    缺点:不一定需要,且可能损失有用信息。

    适用数据类型:数值型数据。

    Principal Component Analysis(PCA)是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,并期望在所投影的维度上数据的方差最大,以此使用较少的数据维度,同时保留住较多的原数据点的特性。
    通俗的理解,如果把所有的点都映射到一起,那么几乎所有的信息(如点和点之间的距离关系)都丢失了,而如果映射后方差尽可能的大,那么数据点则会分散开来,以此来保留更多的信息。可以证明,PCA是丢失原始数据信息最少的一种线性降维方式。(实际上就是最接近原始数据,但是PCA并不试图去探索数据内在结构)  
    使用decomposition库的PCA类选择特征的代码如下:
    1 from sklearn.decomposition import PCA
    2 #主成分分析法,返回降维后的数据
    3 #参数n_components为主成分数目
    4 PCA(n_components=2).fit_transform(iris.data)
    PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。但是这样投影以后对数据的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好。

    Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)是一种有监督的(supervised)线性降维算法。与PCA保持数据信息不同,LDA是为了使得降维后的数据点尽可能地容易被区分!
    假设原始数据表示为X,(m*n矩阵,m是维度,n是sample的数量)
    既然是线性的,那么就是希望找到映射向量a, 使得 a‘X后的数据点能够保持以下两种性质:
    1、同类的数据点尽可能的接近(within class)
    2、不同类的数据点尽可能的分开(between class)
    使用lda库的LDA类选择特征的代码如下:
    1 from sklearn.lda import LDA
    2 #线性判别分析法,返回降维后的数据
    3 #参数n_components为降维后的维数
    4 LDA(n_components=2).fit_transform(iris.data, iris.target)

    参考资料:

    1、https://www.cnblogs.com/jiangxinyang/p/9291741.html

    2、https://www.jianshu.com/p/6a9db201cb13

    3、https://zhuanlan.zhihu.com/p/44258470

    4、https://baijiahao.baidu.com/s?id=1664419210560925668&wfr=spider&for=pc

    5、https://www.cnblogs.com/pinard/p/6239403.html

    6、https://www.cnblogs.com/pinard/p/6243025.html

    7、https://zhuanlan.zhihu.com/p/68754729

    8、https://blog.csdn.net/taojiea1014/article/details/82825715

    9、https://www.cnblogs.com/hellojamest/p/10908052.html

  • 相关阅读:
    MySql面试题、知识汇总、牛客网SQL专题练习
    产生过拟合的原因
    《人类简史》这本烧脑书风靡全球的秘密是什么?
    厌食?暴食?试试这个 VR 新疗法
    协程、异步IO
    进程池
    进程(同步)锁
    特朗普变脸:同媒体“友好会谈”,怨媒体“死不悔改”
    多进程Queue
    redis 在 php 中的应用(事务 [ Transaction ] 篇)
  • 原文地址:https://www.cnblogs.com/enhaofrank/p/12819299.html
Copyright © 2011-2022 走看看