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. 嵌入式开发在过去20年中是如何演变的
  2. Mac安装和启动memcached
  3. java 参数传递_java中方法的参数传递机制
  4. Oracle的闪回特性之恢复truncate删除表的数据
  5. Spring Schedule定时关单快速入门
  6. 如何将Java工程导出成可以执行的jar
  7. Java使用jackson问题解决
  8. 前端学习(2706):重读vue电商网站26之JSON格式的配置文件
  9. 小鹏P7将上线新一代AI语音:无限接近人类、带情感、会调侃
  10. 不止命令行-自定义VS生成事件
  11. 全球首发!惯性导航导论(剑桥大学)第五部分
  12. 智能一代云平台(三十六):项目中如何做到避免传递依赖
  13. 计算机网络—数据链路层设备与两种域的区别
  14. python绘制中国省界地图,python画中国地图(含省界、河流等)
  15. mx350显卡天梯图_2019.8月CPU和显卡性能天梯图
  16. matlab神经网络原理应用实例pdf,MATLAB神经网络原理与实例精解
  17. Android Sophix热修复集成
  18. 关于matlab运行的一些报错迷惑
  19. JavaScript(3)基础
  20. 形容等待时间长的句子_形容等待已久的事终于等到句子

热门文章

  1. 日处理200亿+调用,单机QPS高峰达到4万+,喜马拉雅自研 API 网关架构实践
  2. 【愚公系列】2022年12月 .NET架构班 004-ABP vNext在WPF项目使用
  3. DAZ探索之路(二):初识软件界面
  4. 第 08 章_索引的创建与设计原则
  5. haskell入门教程[持续更新]
  6. BES2300x笔记(13) -- 主从耳关键log解析
  7. 破解黑红梅方提前知道保单机里的答案
  8. Assembly.LoadFrom函数报错“尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理...”
  9. nodejs购物系统app-计算机毕设 附源码 90766
  10. 【人工智能实验】SVM分类器的设计与应用