机器学习笔记Machine Learning 之SVD (Singular Value Decomposition) 奇异值分解

2023-11-12

一:特征值和特征向量

A x = λ x Ax = \lambda x Ax=λx

A 是一个 n*n 矩阵, x 是一个 n 维向量, λ \lambda λ是矩阵 A 的一个特征值,x 是矩阵 A的特征值 所对应的特征向量。

矩阵A就可以用下式的特征分解表示:
A = W Σ \Sigma Σ W − 1 W^{-1} W1

其中W是这n个特征向量所张成的n×n维矩阵,而Σ为这n个特征值为主对角线的n×n维矩阵。
一般我们会把W的这n个特征向量标准化
n个特征向量为标准正交基,也就是说W为酉矩阵。
但A必须是方阵

当A不是方阵

二 SVD
A不是方阵
A= U Σ \Sigma Σ V T V^T VT
计算:
如果我们将A的转置和A做矩阵乘法,那么会得到n×n的一个方阵 A T A A^TA ATA 。是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:
A T A v i A^TAv_i ATAvi = λ i \lambda_i λi v i v_i vi

这样我们就可以得到n个特征值和对应的n个特征向量v了。将 所有特征向量张成一个n×n的矩阵V,就是我们SVD公式里面的V矩阵了。一般我们将V中的每个特征向量叫做A的右奇异向量。

如果我们将A和A的转置做矩阵乘法,那么会得到m×m的一个方阵 A A T AA^T AAT 是方阵,那么我们就可以进行特征分解,得到的特征值和特征向量满足下式:
A A T u i AA^Tu_i AATui = λ i \lambda_i λi u i u_i ui
这样我们就可以得到矩阵m个特征值和对应的m个特征向量u了。将所有特征向量张成一个m×m的矩阵U,就是我们SVD公式里面的U矩阵了。一般我们将U中的每个特征向量叫做A的左奇异向量。

U和V我们都求出来了,现在就剩下奇异值矩阵Σ没有求出了.

由于Σ除了对角线上是奇异值其他位置都是0,那我们只需要求出每个奇异值σ就可以了。

我们注意到:
在这里插入图片描述from zhihu

这样我们可以求出我们的每个奇异值,进而求出奇异值矩阵Σ。

特征值矩阵等于奇异值矩阵的平方,也就是说特征值和奇异值满足如下关系:
在这里插入图片描述

这样也就是说,我们可以不用 u v 来计算奇异值,也可以通过求出 A T A A^TA ATA的特征值取平方根来求奇异值。

最后咱们就是说 上点代码:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习笔记Machine Learning 之SVD (Singular Value Decomposition) 奇异值分解 的相关文章

  • linux如何查看安装了哪些软件

    linux查看安装了哪些软件的方法 1 利用 rpm qa 命令查看rpm方法安装的软件 2 利用 dpkg l 命令查看deb方法安装的软件 3 利用 yum list installed 命令查看yum方法安装的软件 本教程操作环境 l
  • python爬虫笔记

    python爬虫笔记 找到了一个网址 https blog csdn net belalds article details 80694126 1 使用requests库 import requests 导入requests库 respon

随机推荐

  • MetaMask 添加BSC、Polygon网络配置

    打开浏览器 点击MetaMask插件 选择网络 点击弹窗中的 Add Network 按钮 添加各网络配置如下 1 BSC Binance Smart Chain 主网 key value 网络名称 Network Name Binance
  • python3爬虫 selenium+pyquery爬取人才网简历实战

    不废话 直接贴代码 各位看官要是觉得可以的话 麻烦点个赞 import requests pymysql pyquery time from bs4 import BeautifulSoup from selenium import web
  • 【2022年第十三届蓝桥杯省赛个人题解】

    A 九进制转十进制 5分 题目描述 九进制正整数 2022 9 2022 9 2022 9 转换成十进制等于多少 AC代码 include
  • 【数据结构】HashMap

    文章目录 参数 DEFAULT INITIAL CAPACITY MAXIMUM CAPACITY loadFactor initialCapacity threshold 方法 tableSizeFor hash 参数 DEFAULT I
  • Python+selenium的web自动化—PageObject模式解析及案例

    一 PO模式 Page Object 简称PO 模式 是Selenium实战中最为流行 并且是自动化测试中最为熟悉和推崇的一种设计模式 在设计自动化测试时 把页面元素和元素的操作方法按照页面抽象出来 分离成一定的对象 然后再进行组织 做we
  • Qt 绘制炫彩时钟

    录制 2022 09 15 09 44 58 720 思路 1 使用定时器 每秒给 秒值 增加 1 当 秒值 等于 60 时 给 分值 增加1 当分值为60时 给 时值 加1 2 绘制界面时 可以用信号槽触发 也可以调用函数触发 我这里用的
  • 高中辍学后,我转行做了程序员

    大家好 我是黑洋葱 非常普通的一个人 没有太多的故事 可以拿得出手的经历大概就是我从高中辍学后通过自考顺利拿到本科证书 以及通过自学成功转行成IT行业的程序员这一段 今天写下这段完全改变了我人生轨迹的经历 同时也稍微整理了 转行程序员 的学
  • 新手如何使用IntelliJ IDEA创建Java项目

    前提 已安装好IntelliJ IDEA 已安装好jdk 已配置好环境变量 后续会继续推出IntelliJ IDEA的安装 jdk的安装和环境变量的配置 1 第一步打开IntelliJ IDEA 这里默认已经安装好IntelliJ IDEA
  • Elasticsearch 2.x版本往5.x版本迁移数据

    Elasticsearch 2 x版本往5 x版本迁移数据 迁移前准备 1 String类型 2 x版本 跟 5 x版本有一个比较大的改动就是ES的基本类型string字段 5 x版本中使用text keyword字段替代了2 x版本的st
  • Eos离线签名PHP代码

    EOS区块链的钱包服务器Keosd 提供了sign transaction开发接口 允许开发者进行交易签名 但是 如果我们希望自己管理密钥而不是交给keosd管理 应该如何在PHP代码中实现交易的离线签名功能 答案是使用 EosTool 这
  • jq+swiper 实现今日头条App的选项卡效果

  • 新版iTunes 不能安装 ipa 包的五种解决办法

    前言 1 新版iTunes指的是 V12 7 2 新版iTunes界面无应用按钮 即无法安装ipa包 五种方法 1 使用iTools 2 使用低版本的iTunes 1 降低iTunes版本的方法 http bbs feng com read
  • C语言基础入门详解二

    前些天发现了一个蛮有意思的人工智能学习网站 8个字形容一下 通俗易懂 风趣幽默 感觉非常有意思 忍不住分享一下给大家 点击跳转到教程 一 C语言多级指针入门 include
  • 1.5 条件生成对抗网络(CGAN)

    1 什么是CGAN 在CGAN训练期间 生成器学习为训练数据集中的每个标签生成逼真的样本 而鉴别器则学习区分真的样本 标签对与假的样本 标签对 只学习接受真实且样本 标签匹配正确的对 拒绝不匹配的对和样本为假的对 2 生成器 条件标签称为y
  • 深入理解Android相机体系结构之十一

    手机相机的未来与发展 Android相机发展至今 通过开发者对框架的不断优化 算法人员对图像处理算法的不断提升 硬件工程师对硬件性能地不断调教 换来了在某些领域完全可以媲美专业相机的成像效果 这些成绩是有目共睹的 但是我们不能仅仅着眼于过去
  • 开源知识库平台Raneto

    什么是 Raneto Raneto 是一个开源知识库平台 它使用静态 Markdown 文件来支持您的知识库 官方提供了 doc demo 网站 即是帮助文档 也是个 demo 地址 https docs raneto com 准备 项目使
  • 【Yarn】ContainerAllocator Container申请工作机制

    文章目录 1 概述 2 继承体系 3 serviceStart 4 RMContainerAllocator 4 1 构造方法 4 1 1 createAssignedRequests 4 2 serviceInit 4 3 service
  • python 十大经典排序算法

    排序算法可以分为内部排序和外部排序 内部排序是数据记录在内存中进行排序 而外部排序是因排序的数据很大 一次不能容纳全部的排序记录 在排序过程中需要访问外存 常见的内部排序算法有 插入排序 希尔排序 选择排序 冒泡排序 归并排序 快速排序 堆
  • 利用python基于GBDT算法建立轨道交通客流预测模型,并使用网格搜索法进行参数调优...

    你可以使用Python来建立一个基于GBDT算法的轨道交通客流预测模型 为了得到最佳的预测效果 你可以使用网格搜索法来调整模型的参数 网格搜索法是一种通过对参数的不同取值进行试验来选择最优参数的方法
  • 机器学习笔记Machine Learning 之SVD (Singular Value Decomposition) 奇异值分解

    一 特征值和特征向量 A x x Ax lambda x Ax x A 是一个 n n 矩阵 x 是一个 n 维向量