机器学习--降维

article/2025/8/25 3:19:34

降维(Dimensionality Reduction)

视频参考:【机器学习】【白板推导系列】【合集 1~33】_哔哩哔哩_bilibili

笔记参考:降维 · 语雀 (yuque.com)

PCA原理详解:主成分分析(PCA)原理详解 - 知乎 (zhihu.com)

PCA数学原理解释:CodingLabs - PCA的数学原理

SVD奇异值分解: 奇异值分解(SVD) - 知乎 (zhihu.com)

过拟合

  • 增加数据
  • 正则化
  • 降维
    • 直接降维(特征选择)
    • 线性降维(PCA、MDS)
    • 非线性降维(流形学习(Isomap、LLE))

维度灾难(数据稀疏性):几何角度

对于高维空间而言, 维度越高,球形体的体积越小

样本均值 & 样本协方差矩阵

  •  X \in \mathbb{R}^{N \times P}表示存在N个数据,其中每个数据维度为P维
  • H = (I_{N} - \frac{1}{N}1_{N} 1_{N}^{T})表示为中心矩阵, 其中H = H^{T} , H^{2} = H \cdot H
  • \bar{X} \in \mathbb{R}^{P}, S \in \mathbb{R}^{P \times P}

主成分分析(PCA)

最大的投影方向, 叫做主成分

一个中心:原始特征空间的重构

两个基本点:

  • 最大投影方差
  • 最小重构距离

最大投影方差  --> 寻找投影后距离范围最大的向量

 一、计算两个向量之间的投影值  => u^{T}u = 1表示向量的投影

二、计算方差最小值JJ = \frac{1}{N}\sum_{i = 1}^{N}((x_{i} - \bar{x}) u_{i})^{2}

其中 u_{1} = argmax \ u_{1}^{T} S u_{1}, \quad s.t. \ u_{1}^{T}u_{1} = 1 \ \rightarrow S u_{1} = \lambda_{1}u_{1}

最小重构代价 --> 降低特征维度损失最小

 一、对于向量重新选择向量基, 将维度由p维 降到 q维

二、计算最小重构代价,转换为最优化问题J = \sum_{i= 1}^{N}\left \| x_{i} - \hat{x_{i}} \right \| = \sum_{k = q + 1}^{p} u_{k}^{T} S u_{k}, 其中求解u_{k}最小值

SVD角度看PCA

方差矩阵S, S = GKG^{T}, G^{T}G = I, 方差矩阵S是对称矩阵, 对方差矩阵S进行特征分解就是奇异值分解

奇异值SVD分解:奇异值分解(SVD) - 知乎 (zhihu.com)

SVD的作用就相当于是一个坐标系变换的过程,从一个不标准的n维坐标系,转换为一个标准的k维坐标系,并且使这个数据集中的点,到这个新坐标系的欧式距离为最小值(也就是这些点在这个新坐标系中的投影方差最大化),其实就是一个最小二乘的过程。

进一步,如何使数据在新坐标系中的投影最大化呢,那么我们就需要让这个新坐标系中的基尽可能的不相关,我们可以用协方差来衡量这种相关性。A^T·A中计算的便是n×n的协方差矩阵,每一个值代表着原来的n个特征之间的相关性。当对这个协方差矩阵进行特征分解之后,我们可以得到奇异值和右奇异矩阵,而这个右奇异矩阵则是一个新的坐标系,奇异值则对应这个新坐标系中每个基对于整体数据的影响大小,我们这时便可以提取奇异值最大的k个基,作为新的坐标,这便是PCA的原理。

使用SVD奇异值分解, 直接获取主成分分析 or 主坐标分析

X表示数据, HX表示中心化数据, 对HX进行奇异值分解得到HX = U\Sigma V^{T}

概率角度P-PCA

完全没有听懂

 


http://chatgpt.dhexx.cn/article/4iOCqVME.shtml

相关文章

机器学习简介

本文借鉴了数学建模清风老师的课件与思路,可以点击查看链接查看清风老师视频讲解:清风数学建模:https://www.bilibili.com/video/BV1DW411s7wi 注: 因为要用到机器学习工具箱,所以至少需要安装MATLAB2017a的版本&…

python机器学习视频教程百度网盘下载(2023完整版)

文末扫码领资料全套学习路线图和 视频及配套资料 在Python中有很多机器学习的模块,比如Sklearn、Tensorflow、Caffe等,可以很方便地调用一些机器学习的算法。如果你对Python机器学习感兴趣,python机器学习教程哪个好?这份python机…

吴恩达机器学习课程资源(笔记、中英文字幕视频、课后作业,提供百度云镜像!)

强烈感谢黄海广博士给的文章思路 本文中提及的作者便是黄海广博士本人 吴恩达老师的机器学习课程,可以说是机器学习入门的第一课和最热门课程,作者在github开源了吴恩达机器学习个人笔记,用python复现了课程作业,成为热门项目&am…

机器学习视频教程

1. Hadoop—Spark企业应用实战(推荐版) 链接:http://pan.baidu.com/s/1eSJsUTc 密码:q5lt 2. 西安交大应用统计分析SPSS1-48讲 链接:http://pan.baidu.com/s/1slSzYHJ 密码:8twg 3. Python科学计算 链接:http://pa…

机器学习必看的28个视频

想自学机器学习和深度学习?不妨边看专家讲解视频边自学。不仅能感受世界各地专家的熏陶,也能快速获取知识,一举两得。这篇文章整理了一个 YouTube 视频列表,供希望在该领域学习的朋友使用。 转自: http://easygeek.com.cn/articl…

struct timespec 和 struct timeval

转自&#xff1a;http://www.cnblogs.com/book-gary/p/3716790.html time()提供了秒级的精确度 . 1、头文件 <time.h> 2、函数原型 time_t time(time_t * timer) 函数返回从TC1970-1-1 0:0:0开始到现在的秒数 用time()函数结合其他函数&#xff08;如&#xff1a;lo…

time.Timer

文章目录 前言一、代码二、DB三、效果 前言 今天观摩前辈的代码,看到time.Timer的使用,发现对于定时任务可以这样做达到js的setInterval()效果 一、代码 package mainimport ("fmt""gorm.io/driver/postgres""gorm.io/gorm""gorm.io/gorm…

软件测试之性能测试面试题合集(含答案分析细节)

前言 最近这一年&#xff0c;对性能测试有了更多的认知。 压力、强度测试&#xff1a;在一定软硬件环境下&#xff0c;通过高负载的手段来使服务器资源&#xff08;强调服务器资源&#xff0c;硬件资源&#xff09;处于极限状态&#xff0c;测试系统在极限状态下长时间运行是…

2023最新软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;毕…

软件测试面试必杀篇:【2023软件测试面试八股文宝典】

800道软件测试面试真题&#xff0c;高清打印版打包带走&#xff0c;横扫软件测试面试高频问题&#xff0c;涵盖测试理论、Linux、MySQL、Web测试、接口测试、App测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维、人力资源等模块面试题&am…

【面经】2023年软件测试面试题大全(持续更新)附答案

整理了一些软件测试方面的资料、面试资料&#xff08;接口自动化、web自动化、app自动化、性能安全、测试开发等&#xff09;&#xff0c;有需要的小伙伴可以文末关注我的VX公众号&#xff0c;无套路自行领取~ 前阵子一位读者告诉我&#xff0c;某位大厂HR给他发了我之前做的面…

软件测试常考面试题-软件测试面试宝典(一篇足矣)

软件测试常考面试题-软件测试面试宝典_MJ813的专栏-CSDN博客&#xff0c;对原文进行整理 扫码关注每日思悟&#xff1a; 介绍解决锻炼思维问题的思路和方法&#xff0c;从不同角度分析问题&#xff0c;让思维变强大&#xff0c;变宽广的同时在测试方面进行学习和方法的拓展&a…

2022最新整理软件测试常见面试题附答案

包含的模块&#xff1a; 本文分为十九个模块&#xff0c;分别是&#xff1a;软件测试 基础、liunx、MySQL、web测试、接口测试、APP测试 、管理工具、Python、性能测试、selenium、lordrunner、计算机网络、组成原理、数据结构与算法、逻辑题、人力资源需要的可以找我获取&…

软件测试的常用的面试题【带答案】

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫XXX&#xff0c;今年24岁&#xff0c;来自XX&#xff0c;就读专业是电子商务&#xff0c;毕业后就…

十道必问的软件测试面试题(含答案解析)

前言 &#xff08;第一个就刷掉一大批人&#xff09; 有很多“会自动化”的同学来咨询技术问题&#xff0c;他总会问到我一些元素定位的问题。元素定位其实都不算自动化面试的问题。 一般我都会问&#xff1a;你是定位不到吗&#xff1f;通常结果都是说确实定位不到。 做自…

软件测试最全面试题及答案整理(2022最新版)

目录 1、你的测试职业发展是什么? 2、你认为测试人员需要具备哪些素质 3、你为什么能够做测试这一行 4、测试的目的是什么? 5、测试分为哪几个阶段? 6、单元测试的测试对象、目的、测试依据、测试方法? 7、怎样看待加班问题 8、结合你以前的学习和工作经验&#xf…

软件测试面试——常见的面试问题总结(大全)

目录 1.软件测试级别&#xff1f; 2.软件测试类型&#xff1f; 3.测试方法&#xff1a;动态测试、静态测试&#xff1b;黑盒测试、白盒测试、灰盒测试。 、黑盒测试方法&#xff1a; 3、白盒测试方法&#xff1a; 4.alpha测试和beta测试的区别 5.测试设计方法&#xff1…

2021年软件测试面试题大全

目录 一、面试基础题 简述测试流程: 什么是软件测试&#xff1f;软件测试的目的与原则 问&#xff1a;软件生存周期及其模型是什么&#xff1f; 什么是软件质量&#xff1f; 自动化测试脚本开发的主要步骤: 目前主要的测试用例设计方法是什么&#xff1f; 常见的测试用例…

软件测试面试题(带答案)

1. 请自我介绍一下(需简单清楚的表述自已的基本情况&#xff0c;在这过程中要展现出自信&#xff0c;对工作有激情&#xff0c;上进&#xff0c;好学) 面试官您好&#xff0c;我叫###&#xff0c;今年26岁&#xff0c;来自江西九江&#xff0c;就读专业是电子商务&#xff0c;…

软件测试面试题(全)

1.B/S架构和C/S架构区别 B/S 只需要有操作系统和浏览器就行&#xff0c;可以实现跨平台&#xff0c;客户端零维护&#xff0c;维护成本低&#xff0c;但是个性化能力低&#xff0c;响应速度较慢C/S响应速度快&#xff0c;安全性强&#xff0c;一般应用于局域网中&#xff0c;因…