降维算法_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 = ...
最新文章
- 嵌入式开发在过去20年中是如何演变的
- Mac安装和启动memcached
- java 参数传递_java中方法的参数传递机制
- Oracle的闪回特性之恢复truncate删除表的数据
- Spring Schedule定时关单快速入门
- 如何将Java工程导出成可以执行的jar
- Java使用jackson问题解决
- 前端学习(2706):重读vue电商网站26之JSON格式的配置文件
- 小鹏P7将上线新一代AI语音:无限接近人类、带情感、会调侃
- 不止命令行-自定义VS生成事件
- 全球首发!惯性导航导论(剑桥大学)第五部分
- 智能一代云平台(三十六):项目中如何做到避免传递依赖
- 计算机网络—数据链路层设备与两种域的区别
- python绘制中国省界地图,python画中国地图(含省界、河流等)
- mx350显卡天梯图_2019.8月CPU和显卡性能天梯图
- matlab神经网络原理应用实例pdf,MATLAB神经网络原理与实例精解
- Android Sophix热修复集成
- 关于matlab运行的一些报错迷惑
- JavaScript(3)基础
- 形容等待时间长的句子_形容等待已久的事终于等到句子
热门文章
- 日处理200亿+调用,单机QPS高峰达到4万+,喜马拉雅自研 API 网关架构实践
- 【愚公系列】2022年12月 .NET架构班 004-ABP vNext在WPF项目使用
- DAZ探索之路(二):初识软件界面
- 第 08 章_索引的创建与设计原则
- haskell入门教程[持续更新]
- BES2300x笔记(13) -- 主从耳关键log解析
- 破解黑红梅方提前知道保单机里的答案
- Assembly.LoadFrom函数报错“尝试从一个网络位置加载程序集,在早期版本的 .NET Framework 中,这会导致对该程序集进行沙盒处理...”
- nodejs购物系统app-计算机毕设 附源码 90766
- 【人工智能实验】SVM分类器的设计与应用