2022-10-10-使用SVD进行数据降维

简介: 2022-10-10-使用SVD进行数据降维

SVD介绍

降维(Dimensionality Reduction) 是机器学习中的一种重要的特征处理手段,它可以减少计算过程中考虑到的随机变量(即特征)的个数,其被广泛应用于各种机器学习问题中,用于消除噪声、对抗数据稀疏问题。它在尽可能维持原始数据的内在结构的前提下,得到一组描述原数据的,低维度的隐式特征(或称主要特征)。简单来说,在高维数据中筛选出对我们有用的变量,减小计算复杂度提高模型训练效率和准确率,这就是我们要说的降维。

MLlib机器学习库提供了两个常用的降维方法:奇异值分解(Singular Value Decomposition,SVD) 和 主成分分析(Principal Component Analysis,PCA),下面我们将通过实例介绍其具体的使用方法。

一、公式和原理

奇异值分解(SVD)将矩阵A分解为三个矩阵:U,Σ和V,如下公式,其中

左奇异矩阵 :,U 为一个标准正交矩阵,也叫实对称矩阵,怎么理解这个概念呢?就是说矩阵A的转置等于其本身,或者说矩阵U的维度为m×m ,用符号表示为U,我们称 U为左奇异矩阵。

奇异值 : Σ 是一个对角矩阵,仅在主对角线上有值,其它元素均为0,用符合表示为Σ,我们称Σ为奇异值。

右奇异矩阵 : V也是一个正交矩阵,这会儿知道是啥意思了吧,和U的解释一样,用符号表示为V ,我们称 V 为 右奇异矩阵。

奇异值分解 : 就是想要找到一个比较小的值k,保留前k个奇异向量和奇异值,其中 U 的维度从 m×m 变成了 m×k , V 的维度从 n×n 变成了 m×k ,Σ 的维度从 m×n 变成了 k×k 的方阵,从而达到降维效果。


JAVA实现

POM文件中需要加入的依赖

<dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.1.17.Final</version>
        </dependency>
     <!-- Spark-core -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.11</artifactId>
            <version>2.3.1</version>
        </dependency>
        <!-- SparkSQL -->
        <dependency>


目录
相关文章
|
7月前
|
算法 数据可视化 Python
使用Python实现主成分分析(PCA)
使用Python实现主成分分析(PCA)
273 4
|
7月前
|
数据可视化
主成分分析PCA谱分解、奇异值分解SVD预测分析运动员表现数据和降维可视化
主成分分析PCA谱分解、奇异值分解SVD预测分析运动员表现数据和降维可视化
|
7月前
|
人工智能 算法 计算机视觉
VGen与SVD的比较
【1月更文挑战第7天】VGen与SVD的比较
154 1
VGen与SVD的比较
|
机器学习/深度学习 存储 搜索推荐
三个主要降维技术对比介绍:PCA, LCA,SVD
本文将深入研究三种强大的降维技术——主成分分析(PCA)、线性判别分析(LDA)和奇异值分解(SVD)。我们不仅介绍这些方法的基本算法,而且提供各自的优点和缺点。
135 1
|
存储 资源调度 自然语言处理
奇异值分解(SVD)和图像压缩
在本文中,我将尝试解释 SVD 背后的数学及其几何意义,还有它在数据科学中的最常见的用法,图像压缩。
227 0
|
搜索推荐 算法 数据可视化
降维算法: 奇异值分解SVD
降维算法: 奇异值分解SVD
211 0
|
机器学习/深度学习 数据可视化 算法
通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)
通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)
510 1
通俗易懂的讲解奇异值分解(SVD)和主成分分析(PCA)
|
数据可视化 算法
13张动图快速理解马尔科夫链、PCA、贝叶斯!
本文用可视化的方式来解释抽象的理论概念,使这些抽象概念变得生动而立体!
|
机器学习/深度学习 算法 搜索推荐
|
机器学习/深度学习 人工智能 搜索推荐
SVD 矩阵分解 | 学习笔记
快速学习 SVD 矩阵分解
SVD 矩阵分解 | 学习笔记