PAC

  • pac概述 主成分分析Principal Component Analysis

用途:降维,将N维的向量映射到 K维,从中提取有用信息,但是降维后的信息可能并不具有直观的意义。

  • 降维过程:
    1、原理:原向量经过 基变换 得到新向量
    2、如何寻找合适的基:
    1)降维的目的:希望投影后的投影值尽可能分散。
    2)引入 方差:一维基,使得所有数据变换为这个基上的坐标表示后,方差值最大。
    3)对于这一组基的要求:相互正交,是单位向量。
    4)引入 协方差:表示两向量之间的关联程度。
    5)协方差矩阵:矩阵主对角线上的分别是两个基的方差,而其它元素是协方差(应为0)。

    6)协方差矩阵对角化,实对称矩阵。

    7)求特征值和特征向量,取其中比重较大的几个特征值对应的特征向量,组成基,做基变换,得到新数据。

  • 具体编程操作:
    1.求协方差矩阵
    np.cov(X_std.T)
    2.求特征值和特征向量

cov_mat = np.cov(X_std.T)
eig_vals, eig_vecs = np.linalg.eig(cov_mat)

3.将特征值与其对应的特征向量组成list

eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:,i]) for i in range(len(eig_vals))]
eig_pairs.sort(key=lambda x: x[0], reverse=True)

4.比较特征值的重要程度

tot = sum(eig_vals)
var_exp = [(i / tot)*100 for i in sorted(eig_vals, reverse=True)]
cum_var_exp = np.cumsum(var_exp)

5.取前几个,如前两个

matrix_w = np.hstack((eig_pairs[0][1].reshape(4,1),
                      eig_pairs[1][1].reshape(4,1)))

6.得到降维后数据

Y = X.dot(matrix_w)

其中很多线性代数知识并没有将明白。如实对称矩阵与其对角化。

LDA

  • 概述
    Linear Discriminant Analysis线性判别分析。
    LDA是“有监督”的,它计算的是另一类特定的方向。
    与PCA不同,更关心分类而不是方差。需要设置分类的簇个数。
    LDA分类的一个目标是使得不同类别之间的距离越远越好,同一类别之中的距离越近越好
  • 散列值
    样本点的密集程度,值越大,越分散,反之,越集中
  • 目标函数

  • 具体编程操作
    1)导入LDA,设置分类的个数

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis as LDA# LDA
sklearn_lda = LDA(n_components=2)
X_lda_sklearn = sklearn_lda.fit_transform(X, y)

2)fit一下

X_lda_sk = sklearn_lda.fit_transform(X, y)

降维算法_LDA_PAC相关推荐

  1. PCA、LDA、MDS、LLE、TSNE等降维算法的Python实现

    整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]网上关于各种降维算法的资料参差不齐,但大部分不提供源代码.近日,有人在 GitHub 上整理了一些经典降维算法的 Demo ...

  2. 什么是维度诅咒?如何评估降维算法在当前任务数据集上的效果?

    什么是维度诅咒?如何评估降维算法在当前任务数据集上的效果? 什么是维度诅咒? 随着维数(或特征)个数的增加,任意两个样本或者实例之间的平均距离也会增加,换句话说,在高维空间中,实例往往位于空间的边缘. ...

  3. sklearn LDA降维算法

    sklearn LDA降维算法 LDA(Linear Discriminant Analysis)线性判断别分析,可以用于降维和分类.其基本思想是类内散度尽可能小,类间散度尽可能大,是一种经典的监督式 ...

  4. PCA降维算法原理及代码实现(python和matlab)

    常见的数据降维算法有:奇异值分解(SVD).主成分分析(PCA).因子分析(FA).独立成分分析(ICA). PCA降维的基本思想:通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值.特征向量. ...

  5. 10种常用降维算法源代码(python)

    最近发现一位同学整理了一些经典的降维算法,并用python实现常见降维算法的代码,特此推荐.作者:超爱学习 代码的github: https://github.com/heucoder/dimensi ...

  6. python用tsne降维_哈工大硕士实现了 11 种经典数据降维算法,源代码库已开放

    网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...

  7. svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD

    菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...

  8. 【sklearn学习】降维算法PCA和SVD

    sklearn中的降维算法 主成分分析 独立成分分析 decomposition.PCA class sklearn.decomposition.PCA(n_components=None, *, c ...

  9. js实现数组降维算法[不准用Array.prototype.flat的api]

    js实现数组降维算法[不准用Array.prototype.flat的api] // target要降维的元素,n降维阶数,newArr存储结果的新数组 function f(target, n = ...

最新文章

  1. 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源
  2. a eraser eraser还是an_eraser前面用a还是an
  3. 1.7 Java字符流的使用:字符输入/输出流、字符文件和字符缓冲区的输入/输出流
  4. 面对复杂业务,if-else coder 如何升级?
  5. 赠票福利 | 2019,GMIS归来!杨强、吴恩达等全球重磅嘉宾共话数据智能
  6. 搭载鸿蒙处理器的手机,荣耀Magic3被曝光,或采用安卓与鸿蒙双系统,搭载麒麟9000处理器...
  7. POJ 1904 【强连通分量】.cpp
  8. Python functool module
  9. 大数据平台搭建_一文读懂数据平台、大数据平台、数据中台
  10. arm-arago-linux-gnueabi 下载,arm-arago-linux-gnueabi问题
  11. 计算机程序制作的小作品,义乌市中小学生电脑作品制作比赛201203
  12. 表视图(UITableView)与表视图控制器(UITableViewController)
  13. Linux虚拟机挂载新的硬盘
  14. excel中如何实现自动求和?
  15. 培养好习惯是很难,但也有方法
  16. 词典GoldenDict
  17. Eclipse笔记-关于Maven Pom Editor的一个小问题
  18. LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组
  19. 关于数据治理的读书笔记 - 企业数据治理的“道、法、术、器”
  20. 有没有能够在待办事项完成后标记任务已完成的每日计划APP?

热门文章

  1. WebGoatV8.1(A3-A5)详细过关教程
  2. ssm框架的简单案例
  3. ORACLE通过对照表快速建view
  4. Python字典常见操作方法 - 增加、删除、修改
  5. 利用js点击小眼睛图片实现转换明文暗码的效果
  6. 未来运营商数字化转型之架构规划
  7. Java基于本地MySQL连接设计图形化界面学生管理系统
  8. 中专计算机考证没过毕不了业了?
  9. TreeSet的自然排序和定制排序
  10. IP precedence和DSCP代码对照表