07无监督学习——降维

news/2025/1/15 17:15:50/

1.降维的概述

维数灾难(Curse of Dimensionality):通常是指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。

1.1什么是降维?

1.降维(Dimensionality Reduction)是将训练数据中的样本(实例)从高维空间转换到低维空间。

2.有很多种算法可以完成对原始数据的降维,在这些方法中,降维是通过对原始数据的线性变换实现的。

1.2为什么要降维?

1.高维数据增加了运算的难度,维度越高,算法的搜索难度。

2.高维使得学习算法的泛化能力变弱,降维能够增加数据的可读性,利于发掘数据的有意义的结构。

1.3降维的主要作用:

  • 减少冗余特征,降低数据维度

  • 数据可视化

降维的优点:

  • 通过减少特征的维数,数据集存储所需的空间也相应减少,减少了特征维数所需的计算训练时间;
  • 数据集特征的降维有助于快速可视化数据;
  • 通过处理多重共线性消除冗余特征。

降维的缺点:

  • 由于降维可能会丢失一些数据;
  • 在主成分分析(PCA)降维技术中,有时需要考虑多少主成分是难以确定的,往往使用经验法则

2.奇异值分解

奇异值分解(Singular Value Decomposition,以下简称SVD)是在机器学习领域广泛应用的算法,它不光可以用于降维算法中的特征分解,还可以用于推荐系统,以及自然语言处理等领域。是很多机器学习算法的基石。

sVD可以将一个矩阵A分解为三个矩阵的乘积:
一个正交矩阵U(orthogonal matrix),
一个对角矩阵(diagonal matrix) Σ \Sigma Σ
一个正交矩阵V的转置

分解的作用:线性变换 = 旋转 + 拉伸 +旋转

SVD分解可以将一个矩阵进行分解,对角矩阵对角线上的特征值递减存放,而且奇异值的减少特别的快,在很多情况下,前10%甚至1%的奇异值的和就占了全部的奇异值之和的99%以上的比例。

也就是说,对于奇异值,它跟我们特征分解中的特征值类似,我们也可以用最大的k 个的奇异值和对应的左右奇异向量来近似描述矩阵。

3.主成分分析

主成分分析( Principal Component Analysis,PCA )是一种降维方法,通过将一个大的特征集转换成一个较小的特征集,这个特征集仍然包含了原始数据中的大部分信息,从而降低了原始数据的维数。
减少一个数据集的特征数量自然是以牺牲准确性为代价的,但降维的诀窍是用一点准确性换取简单性。因为更小的数据集更容易探索和可视化,并且对于机器学习算法来说,分析数据会更快、更容易,而不需要处理额外的特征。

PCA识别在训练集中占最大方差量的轴。

PCA的算法两种实现方法:
(1)基于SVD分解协方差矩阵实现PCA算法

PCA 减少n维到lk维·
设有m条n维数据将原始数据按列组成n行m列矩阵X
第一步是均值归一化。我们需要计算出所有特征的均值和标准差,然后做Z值化。
第二步是计算协方差矩阵( covariance matrix )) Σ \Sigma Σ,其特征向量就是我们要求解的主成分。

(2)基于特征值分解协方差矩阵实现PCA算法

PCA减少n维到k 维:
设有m条n维数据,将原始数据按列组成n 行m列矩阵X
第一步是均值归一化。我们需要计算出所有特征的均值和标准差,然后做z值化。
第二步是计算协方差矩阵(covariance matrix)2,其特征向量就是我们要求解的主成分。特征值分解矩阵
对于矩阵A,有一组特征向量v,将这组向量进行正交化单位化,就能得到一组交单位向量。特征值分解,就是将矩阵A 分解为如下式:
A = P Σ P − 1 {\rm{A = P}}\Sigma {P^{^{ - 1}}} A=PΣP1
其中,Р是矩阵A的特征向量组成的矩阵,习则是一个对角阵,对角线上的元素就是特征值。

PCA的缺点:

PCA追求的是在降维之后能够最大化保持数据的内在信息,并通过衡量在投影方向上的数据方差的大小来衡量该方向的重要性。但是这样投影以后对数据的区分作用并不大,反而可能使得数据点揉杂在一起无法区分。
这也是PCA存在的最大一个问题,这导致使用PCA在很多情况下的分类效果并不好。

4.t-分布领域嵌入算法t-SNE(t-distributedstochastic neighbor embedding)

步骤:

  • 数据跟PCA一样在处理之前先做归一化
  • 在低维空间中计算数据所有点与某个点的相似度
  • 将其在映射在t分布函数的横轴上
  • 计算高维度与低纬度的相似度矩阵的差异,设计loss function,然后用梯度下降来优化它

http://www.ppmy.cn/news/1047592.html

相关文章

PHP自己的框架实现操作成功失败跳转(完善篇四)

1、实现效果,操作成功后失败成功自动跳转 2、创建操作成功失败跳转方法CrlBase.php /**成功后跳转*跳转地址$url* 跳转显示信息$msg* 等待时间$wait* 是否自动跳转$jump*/protected function ok($urlNULL,$msg操作成功,$wait3,$jump1){$code1;include KJ_CORE./tp…

Vue--》打造个性化医疗服务的医院预约系统(七)完结篇

今天开始使用 vue3 + ts 搭建一个医院预约系统的前台页面,因为文章会将项目的每一个地方代码的书写都会讲解到,所以本项目会分成好几篇文章进行讲解,我会在最后一篇文章中会将项目代码开源到我的GithHub上,大家可以自行去进行下载运行,希望本文章对有帮助的朋友们能多多关…

文件上传xxx

本地保存文件 将文件保存到服务器本地硬盘中 max-request-size 多个文件总大小不能大于100M PostMapping("/upload")public Result upload(String username,Integer age,MultipartFile image) throws IOException {log.info("用户名:{},牛叔:{},文件…

LeetCode 400. 第 N 位数字——JAVA

题目描述: 给你一个整数 n ,请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, ...] 中找出并返回第 n 位上的数字。 示例 1: 输入:n 3 输出:3示例 2: 输入:n 11 输出&#xff1…

华为OD机试 - 考勤信息 - 双指针(Java 2023 B卷 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入输出2、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题(A卷B卷&#xff…

Oracle故障案例之-19C时区补丁DSTV38更新

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA工作经验 一位上进心十足的【大数据领域博主】!😜&#x1f61…

leetcode做题笔记92. 反转链表 II

给你单链表的头指针 head 和两个整数 left 和 right &#xff0c;其中 left < right 。请你反转从位置 left 到位置 right 的链表节点&#xff0c;返回 反转后的链表 。 示例 1&#xff1a; 思路一&#xff1a;头插法 struct ListNode *reverseBetween(struct ListNode *h…

limit分页

分页目的&#xff1a;减少一次数据的处理量。 一、语法格式&#xff08;limit&#xff09; 语法格式&#xff1a; SELECT * FROM table LIMIT startindex&#xff0c;pagesize&#xff1b;startindex&#xff1a;表示起始数据的行数&#xff08;MySQL中的第一条数据下标index…