目录

前言

矩阵分解法

主成分分析(PCA)

核PCA

非负矩阵分解(NMF)

FactorAnalysis

独立主成分分析(ICA)

判别分析法(LDA)

基于流形学习的数据降维方法

LLE

MDS

MDS实现

t-SNE


前言

降维指采用某种映射方法,将高维空间中的数据点映射到低维度的空间中。降维的本质是学习一个映射函数 f : w->v,其中w是原始数据点的表达,目前最多使用向量表达形式。 v是数据点映射后的低维向量表达,通常v的维度小于w的维度。
原始数据在采集时可能包含了很高的维度,降维可以降低时间复杂度和空间复杂度,节省了开销;去掉数据集中夹杂的噪声,提高模型的泛化性能;降维使得模型具有更强的鲁棒性;也可以更好的解释数据,更好的可视化。

Sklearn中降维的方法主要分布在以下三个模块:
sklearn.decomposition:包含了绝大部分的矩阵分解算法,其中包括PCA、核PCA、NMF或ICA等
decomposition.PCA    主成分分析(PCA)
decomposition.NMF    非负矩阵分解(NMF)
decomposition.FastICA    独立主成分分析(ICA)
decomposition.FactorAnalysis    因子分析
decomposition.KernelPCA    核PCA

sklearn.discriminant_analysis:包含了LDA和QDA两种判别分析方法
discriminant_analysis.LinearDiscriminantAnalysis    线性判别分析(LDA)
discriminant_analysis.QuadraticDiscriminantAnalysis    二次判别分析(QDA)(非降维)

sklearn.manifold:包含了基于流形学习的数据降维方法等
manifold.LocallyLinearEmbedding    局部线性嵌入(LLE)
manifold.MDS    多维尺度变换(MDS)
manifold.TSNE    t分布随机邻域嵌入(t-SNE)
manifold.Isomap    等度量映射(Isomap)

矩阵分解法

主成分分析(PCA)

构造原始特征的一系列线性组合形成低维的特征,以去除数据的相关性,并使降维后的数据最大程度地保持原始高维数据的方差信息。

如下图,将二维空间的点变到一维空间。

实现 decomposition.PCA

# PCA降维
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
# 训练集训练
pca.fit(X_train)
# 训练集降维
X_train_pca = pca.transform(X_train)
## 测试集降维
X_test_pca = pca.transform(X_test)
# 查看方差贡献率
print(sum(pca.explained_variance_ratio_))
# 查看方差贡献值
print(sum(pca.explained_variance_))

核PCA

Non-linear dimensionality reduction through the use of kernels

对于输入空间(Input space)中的矩阵X,我们先用一个非线性映射(由核函数确定)把X中的所有样本映射到一个高维甚至是无穷维的空间(称为特征空间,Feature space),使其线性可分,然后在这个高维空间进行PCA降维。

实现 decomposition.KernelPCA

from sklearn.decomposition import KernelPCA
kpca = KernelPCA(n_components=3,kernel="sigmoid",random_state=10)
X_kpca = kpca.fit_transform(X)'''
KernelPCA(n_components=None,*,kernel='linear',gamma=None,degree=3,coef0=1,kernel_params=None,alpha=1.0,fit_inverse_transform=False,eigen_solver='auto',tol=0,max_iter=None,remove_zero_eig=False,random_state=None,copy_X=True,n_jobs=None,
)
'''

非负矩阵分解(NMF)

decomposition.NMF

非负矩阵分解(Non-negative Matrix Factorization)

一种主成分分析的方法,要求数据和成分都要非负,对图像数据十分有效

NMF希望找到两个矩阵

数据分析-降维-PCA-LDA-LLE相关推荐

  1. 降维算法(PCA/LDA/LLE/LEP/FA)总结

    目录 1 PCA/LDA 2 Factor Analysis 3 LLE 4 LEP Reference 1 PCA/LDA 参考我的这篇博文 主成分分析(PCA)/线性判别分析(LDA)总结 2 F ...

  2. 机器学习实战8-sklearn降维(PCA/LLE)

    官方地址:https://github.com/apachecn/hands-on-ml-zh/blob/master/docs/8.%E9%99%8D%E7%BB%B4.md 一.简介 许多机器学习 ...

  3. 【机器学习】基于PCA/LDA的数据降维和可视化(二维+三维)

    基于PCA/LDA的数据降维和可视化 Introduction Project Intro File Intro Tools Intro Code&Dataset Link Process P ...

  4. 降维方法(LDA、PCA、KLDA、MDS和ISOMAP)总结

    线性降维 PCA(无监督) 1.协方差矩阵:随机变量组成的向量,每组随机变量的协方差构成的一个对称矩阵,其对角元是每组随机变量的方差 2.矩阵的对角化:对于矩阵M,有可逆矩阵V,使得成为对角矩阵,而M ...

  5. lpp降维算法matlab,dimension-reduct method 多种降维算法,包括lle,lpp,ltsa matlab 238万源代码下载- www.pudn.com...

    文件名称: dimension-reduction-method下载 收藏√  [ 5  4  3  2  1 ] 开发工具: matlab 文件大小: 857 KB 上传时间: 2014-11-05 ...

  6. 降维算法-LDA线性判别分析实例

    内容简介 线性判别分析LDA的基本概念 代码实例:第一部分使用python详细说明了LDA的计算过程: 第二部分记录了如何使用sklearn完成LDA. 什么是线性判别分析? LDA,全名 Linea ...

  7. MachineLearning(8)-PCA,LDA基础+sklearn 简单实践

    PCA,LDA基础+sklearn 简单实践 1.PCA+sklearn.decomposition.PCA 1.PCA理论基础 2.sklearn.decomposition.PCA简单实践 2.L ...

  8. 模式识别与机器学习(作业5)基于PCA–LDA的人脸识别

    基于PCA–LDA的人脸识别 ORC数据集 提取码: cggh 本次的实验是在模式识别与机器学习(作业4),PCA降维的基础上加入了线性判别分析,对维度进行了进一步的降低. 1. 导入数据 一共有40 ...

  9. 入门机器学习(十六)--降维(PCA算法)

    降维(PCA算法) 1. 数据压缩(Data Compression) 2. 数据可视化(Data Visuallization) 3. 主成分析问题(Principal Component Anal ...

  10. “降维算法”面试知识点总结-PCA+LDA算法-百面机器学习系列4

    提示:在准备机器学习算法工程师面试的过程中,我主要参考<百面机器学习>去巩固自己的基础知识.本系列博客将以该书为主题,并以八股文的方式去概述整本书的内容,以尽量减少读者们的阅读作量,并方便 ...

最新文章

  1. 爱奇艺火爆的背后,个性化推荐排序是如何配合的?
  2. SQLite中的内连接简化技巧
  3. 比特币交易追踪溯源技术介绍
  4. python – 处理psycopg2中的错误 psycopg2.errors.InFailedSqlTransaction: current transaction is aborted, comm
  5. [导入]基类的复制控制函数
  6. RandomAccessFile类解析
  7. css的一种预处理器 sass
  8. ThinkPHP 数据库操作(七) : 视图查询、子查询、原生查询
  9. html 自动排序代码,SEO中常用HTML代码大全,及权重排序
  10. web靶机:kali linux 2.0下搭建DVWA渗透测试演练平台
  11. spring boot 实现发送邮箱验证码
  12. 十五届恩智浦智能车-四十天做四轮-调车日记
  13. 淘宝宝贝商家编码 管理好你的宝贝
  14. ROS2 Humble测试版功能包列表
  15. ORA-01940: cannot drop a user that is currently connected 问题解决
  16. 无人机,diyDrones,3dr,pixhawk,Chris Anderson, 这几个概念是什么关系?
  17. 邦纳光电开关MIAD9R
  18. MacOS 剪切文件
  19. iphone尺寸大全
  20. VTK系列2_椎体的显示及旋转控制

热门文章

  1. 29 岁成为阿里巴巴P8,工作前5年完成晋升3连跳,他如何做到?
  2. win7要用到很多运行命令
  3. 同切圆(交互式)和圆的面积计算
  4. win10安装系统后,提示initializing and establishing link无法启动系统
  5. java之字符串去除中文或判断是否收到非英文字母
  6. 数据结构与算法学习笔记(python)——第一节 数组应用程序实战
  7. 深入理解Android相机体系结构之三
  8. 2018-10-18中国传统文化修养
  9. 联想Y410P在Ubuntu系统下开关机及插耳机破音“啪啪”的解决办法
  10. 富可视m310 android 4.4,精致外观高清屏四核机 富可视M310评测