降维算法_LDA_PAC
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相关推荐
- PCA、LDA、MDS、LLE、TSNE等降维算法的Python实现
整理 | 夕颜 出品 | AI科技大本营(ID:rgznai100) [导读]网上关于各种降维算法的资料参差不齐,但大部分不提供源代码.近日,有人在 GitHub 上整理了一些经典降维算法的 Demo ...
- 什么是维度诅咒?如何评估降维算法在当前任务数据集上的效果?
什么是维度诅咒?如何评估降维算法在当前任务数据集上的效果? 什么是维度诅咒? 随着维数(或特征)个数的增加,任意两个样本或者实例之间的平均距离也会增加,换句话说,在高维空间中,实例往往位于空间的边缘. ...
- sklearn LDA降维算法
sklearn LDA降维算法 LDA(Linear Discriminant Analysis)线性判断别分析,可以用于降维和分类.其基本思想是类内散度尽可能小,类间散度尽可能大,是一种经典的监督式 ...
- PCA降维算法原理及代码实现(python和matlab)
常见的数据降维算法有:奇异值分解(SVD).主成分分析(PCA).因子分析(FA).独立成分分析(ICA). PCA降维的基本思想:通过计算数据矩阵的协方差矩阵,然后得到协方差矩阵的特征值.特征向量. ...
- 10种常用降维算法源代码(python)
最近发现一位同学整理了一些经典的降维算法,并用python实现常见降维算法的代码,特此推荐.作者:超爱学习 代码的github: https://github.com/heucoder/dimensi ...
- python用tsne降维_哈工大硕士实现了 11 种经典数据降维算法,源代码库已开放
网上关于各种降维算法的资料参差不齐,同时大部分不提供源代码.这里有个 GitHub 项目整理了使用 Python 实现了 11 种经典的数据抽取(数据降维)算法,包括:PCA.LDA.MDS.LLE. ...
- svd降维 python案例_菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD
菜菜的机器学习sklearn实战-----sklearn中的降维算法PCA和SVD 概述 从什么叫维度说开来 简单讲,shape中返回了几个数字就是几维. 一张表最多就是一维 当一个数组中存在2张3行 ...
- 【sklearn学习】降维算法PCA和SVD
sklearn中的降维算法 主成分分析 独立成分分析 decomposition.PCA class sklearn.decomposition.PCA(n_components=None, *, c ...
- js实现数组降维算法[不准用Array.prototype.flat的api]
js实现数组降维算法[不准用Array.prototype.flat的api] // target要降维的元素,n降维阶数,newArr存储结果的新数组 function f(target, n = ...
最新文章
- 关于SpringBoot项目通过jar包启动之后无法读取项目根路径静态资源
- a eraser eraser还是an_eraser前面用a还是an
- 1.7 Java字符流的使用:字符输入/输出流、字符文件和字符缓冲区的输入/输出流
- 面对复杂业务,if-else coder 如何升级?
- 赠票福利 | 2019,GMIS归来!杨强、吴恩达等全球重磅嘉宾共话数据智能
- 搭载鸿蒙处理器的手机,荣耀Magic3被曝光,或采用安卓与鸿蒙双系统,搭载麒麟9000处理器...
- POJ 1904 【强连通分量】.cpp
- Python functool module
- 大数据平台搭建_一文读懂数据平台、大数据平台、数据中台
- arm-arago-linux-gnueabi 下载,arm-arago-linux-gnueabi问题
- 计算机程序制作的小作品,义乌市中小学生电脑作品制作比赛201203
- 表视图(UITableView)与表视图控制器(UITableViewController)
- Linux虚拟机挂载新的硬盘
- excel中如何实现自动求和?
- 培养好习惯是很难,但也有方法
- 词典GoldenDict
- Eclipse笔记-关于Maven Pom Editor的一个小问题
- LeetCode/LintCode 题解丨一周爆刷字符串:旋转字符数组
- 关于数据治理的读书笔记 - 企业数据治理的“道、法、术、器”
- 有没有能够在待办事项完成后标记任务已完成的每日计划APP?