机器学习(五) -- 无监督学习(2) --降维1

系列文章目录及链接

上篇:机器学习(五) -- 无监督学习(1) --聚类2
下篇:机器学习(五) -- 无监督学习(2) --降维2


前言

tips:标题前有“***”的内容为补充内容,是给好奇心重的宝宝看的,可自行跳过。文章内容被“文章内容”删除线标记的,也可以自行跳过。“!!!”一般需要特别注意或者容易出错的地方。

本系列文章是作者边学习边总结的,内容有不对的地方还请多多指正,同时本系列文章会不断完善,每篇文章不定时会有修改。

由于作者时间不算富裕,有些内容的《算法实现》部分暂未完善,以后有时间再来补充。见谅!

文中为方便理解,会将接口在用到的时候才导入,实际中应在文件开始统一导入。


一、通俗理解及定义

1、什么叫降维(What)

在某些限定条件下,降低随机变量(特征)个数,得到一组“不相关”主变量的过程

降维方式:

        特征选择
        主成分分析 (PCA,可以理解一种特征提取的方式)

        线性判别分析(LDA)

        t-SNE

LDA是一种有监督的数据降维方法,降维的同时考虑了类别信息,使得投影后的数据类内方差最小,类间方差最大。

PCA是一种无监督的数据降维方法,仅基于数据的方差进行降维,通过最大化投影方差来保留数据的主要信息,但可能忽略了与类别相关的信息。

t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种用于高维数据可视化的降维方法。通过保留数据点之间的局部相似性来将高维数据映射到二维或三维空间中,以便进行可视化。t-SNE在可视化复杂结构和发现数据中的簇群方面表现出色,但计算成本较高,且对参数的选择较为敏感。

2、降维的目的(Why)

如果特征本身存在问题或者特征之间相关性较强,对于算法学习预测会影响较大。降维是为了降低这种影响。

为了在尽量保证“信息量不丢失”的情况下,对原始特征进行降维,也就是尽可能将原始特征往具有最大投影信息量的维度上进行投影。将原特征投影到这些维度上,使降维后信息量损失最小。

3、怎么做(How)

PCA:

  1. 数据标准化:将原始数据进行标准化处理,消除量纲和数值大小对分析结果的影响。
  2. 计算协方差矩阵:计算标准化后数据的协方差矩阵,反映各变量之间的相关性。
  3. 特征值分解:对协方差矩阵进行特征值分解,得到特征值和特征向量。
  4. 选择主成分:根据特征值的大小选择前k个主成分,通常选择累计贡献率达到一定阈值(如80%)的前k个主成分。
  5. 转换数据:将原始数据转换到由前k个主成分构成的新坐标系中,得到降维后的数据。

二、原理理解及公式

1、基本概念

1.1、数据线性变换

拉伸

旋转 

1.2、协方差

1.2.1、公式

协方差表示的是两个变量的总体的误差。

1.2.2、相关性 

反映两个变量 X 和 Y 的相互关系。这种相互关系大致分为三种:正相关负相关不相关。 

        Y 在整体趋势上是随着 X 的增加而增加的,即 Y 与 X 的变化是同向的。这种情况,我们就称 X 与 Y 是正相关的。

        Y 在整体趋势上是随着 X 的增加而减少的,即 Y 与 X 的变化是反向的。这种情况,我们就称 X 与 Y 是负相关的。

        Y 在整体趋势上与 X 的并无正相关或者负相关的关系。这种情况,我们就称 X 与 Y 是不相关的。

 如下图所示,红线为x期望EX,绿线为y期望EY,每个图被EX、EY分割为四个区域

正相关关系中:

        在区域 I 中,满足 X>EX,Y>EY,则有 (X-EX)(Y-EY)>0;
        在区域 II 中,满足 X<EX,Y>EY,则有 (X-EX)(Y-EY)<0;
        在区域 III 中,满足 X<EX,Y<EY,则有 (X-EX)(Y-EY)>0;
        在区域 IV 中,满足 X>EX,Y<EY,则有 (X-EX)(Y-EY)<0。

正相关时,数据大部分是分布在 I、III 区域内,只有少部分分布在 II、IV 区域。因此,从平均角度来看,正相关满足:

同理得:负相关满足:

不相关满足:

及有:

  • 当 Cov(X,Y) > 0 时,X 与 Y 正相关;

  • 当 Cov(X,Y) < 0 时,X 与 Y 负相关;

  • 当 Cov(X,Y) = 0 时,X 与 Y 不相关。

1.2.3、协方差矩阵

 不相关时,cov(x,y)=0;正相关时,cov(x,y)>0;负相关时,cov(x,y)<0。

  

 1.3、特征值和特征向量

A为n阶矩阵,若数λ和n维非0列向量x满足Ax=λx,那么数λ称为A的特征值,x称为A的对应于特征值λ的特征向量。式Ax=λx也可写成( A-λE)x=0,并且|λE-A|叫做A 的特征多项式。当特征多项式等于0的时候,称为A的特征方程,特征方程是一个齐次线性方程组,求解特征值的过程其实就是求解特征方程的解。,

eg:

 特征值:

特征矩阵:

1、特征选择和主成分分析(PCA)

 特征选择和PCA详情可以转至:机器学习(三) -- 特征工程(2)

特征选择是在原有特征中选择一部分“无关”特征,PCA则是高维数据转化为低维数据的过程,在此过程中可能会舍弃原有数据、创造新的变量。

2、主成分分析(PCA)

主成分分析(Principal Component Analysis)通过某种线性投影,将高维的数据映射到低维的空间中,并期望在所投影的维度上数据的信息量最大(方差最大),以此使用较少的数据维度,同时保留住较多的原数据点的特性

2.1、目标及方法

 

目标:只保留一个轴时(2维降到1维),信息保留最多

方法:找到数据分布最分散的方向(方差最大),作为主成分(坐标轴)

PCA==找坐标系

2.2、原理

去中心化(把坐标原点放在数据中心)、找坐标系(找到方差最大的方向)

2.2.1、白数据与手上数据转换

 白数据

手上的数据 

拉伸的方向就是方差最大的方向 ,旋转的角度决定了方差最大的方向的角度

2.2.2、求协方差矩阵的特征向量==R 

 去中心化后Ex=Ey=0

代入协方差矩阵

 

2.2.3、协方差的特征向量

C‘是2x2的矩阵,有两个特征值和两个特征向量

 

2.2.4、协方差的特征值

2.3、补充

2.3.1、3维降2维

2.3.2、标准差椭圆/置信椭圆

2.4、奇异值分解(SVD)

奇异值分解(Singular Value Decomposition)

2、线性判别分析(LDA)

线性判别分析(Linear Discriminant Analysis)是机器学习中用于监督分类问题的最流行的降维技术之一。

LDA想法和PCA非常相似,但LDA是有监督的,要确保投影后各个类别的类内方差小,而类间方差大。

2.1、原理

投影到维度更低的空间中,使得投影后的点,会形成按类别区分, 一簇一簇的情况,相同类别的点,将会在投影后的空间中更接近方法。二分类LDA最早有Fisher提出,因此也称为 Fisher判别分析。

2.2、目标

核心思想:类内小,类间大

使得不同类别之间的距离越远越好, 同一类别之中的距离越近越好。 (让投影后的类中心之间的距离尽可能大,从而增强样本的可分性。)
下图所示,右图要比左图效果好。

3、PCA优缺点

3.1、优点:

  1. 以方差衡量信息的无监督学习,不受样本标签限制。
  2. 由于协方差矩阵对称,因此k个特征向量之间两两正交,也就是各主成分之间正交,正交就肯定线性不相关,可消除原始数据成分间的相互影响
  3.  可减少指标选择的工作量
  4. 用少数指标代替多数指标,利用PCA降维是最常用的算法
  5. 计算方法简单,易于在计算机上实现。

3.2、缺点:

  1. 主成分解释其含义往往具有一定的模糊性,不如原始样本完整
  2. 贡献率小的主成分往往可能含有对样本差异的重要信息,也就是可能对于区分样本的类别(标签)更有用
  3. 特征值矩阵的正交向量空间是否唯一有待讨论

旧梦可以重温,且看:机器学习(五) -- 无监督学习(1) --聚类2
欲知后事如何,且看:机器学习(五) -- 无监督学习(2) --降维2

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3281420.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

排序算法:快速排序,golang实现

目录 前言 快速排序 代码示例 1. 算法包 2. 快速排序代码 3. 模拟程序 4. 运行程序 5. 从大到小排序 快速排序的思想 快速排序的实现逻辑 1. 选择基准值 (Pivot) 2. 分区操作 (Partition) 3. 递归排序 循环次数测试 假如 10 条数据进行排序 假如 20 条数据进行…

LLM大模型:十大人工智能大模型技术介绍

十大人工智能大模型技术的简介&#xff1a; 深度学习模型 深度学习是人工智能领域中一种重要的机器学习技术&#xff0c;通过构建深度神经网络来模拟人脑的认知过程。深度学习模型能够自动提取数据的特征&#xff0c;并在海量数据中进行学习和优化&#xff0c;从而在语音识别…

【优秀python案例】基于Python的京东商城口红商品的爬虫与可视化的设计与实现

摘要&#xff1a;随着互联网的普及&#xff0c;网络购物已经成为了人们购物的首选&#xff0c;用户只需要在电商平台上进行自己喜欢的商品进行搜素&#xff0c;就可以得到成千上万条商品信息。而在购买商品时&#xff0c;商品价格就成为了用户的主要关注对象&#xff0c;而在一…

安科瑞ASJ系列智能剩余电流继电器介绍

产品概述&#xff1a; 安科瑞ASJ系列智能剩余电流继电器是一种重要的电气安全保护设备&#xff0c;‌主要用于交流50Hz、‌额定电压400V及以下的TT和TN系统配电线路中。‌该系列继电器的主要功能包括对电气线路进行接地故障保护&#xff0c;‌以防止接地故障电流引起的设备损坏…

UE4调试手段:主动崩溃与“.pdb”解析“.dmp”文件

主动崩溃 尝试了一些做法&#xff0c;发现 check(false) 对于Development配置而言&#xff0c;是有效果的&#xff0c;代码如下&#xff1a; // Called when the game starts or when spawned void AMyActor::BeginPlay() {Super::BeginPlay();check(false); // 尝试用这个来…

基于 SSM 的电器网上订购系统

基于 SSM 的电器网上订购系统 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;Spring、JSP、MyBatis工具&#xff1a;MyEclipse/IDEA、Tomcat 课题背景 近年来&#xff0c;随着Internet的迅速崛起&#xff0c;互联网已日益成为收集提供信息的最佳渠道并逐…

设计模式 - Singleton pattern 单例模式

文章目录 定义单例模式的实现构成构成UML图 单例模式的六种实现懒汉式-线程不安全懒汉式-线程安全饿汉式-线程安全双重校验锁-线程安全静态内部类实现枚举实现 总结其他设计模式文章&#xff1a;最后 定义 单例模式是一种创建型设计模式&#xff0c;它用来保证一个类只有一个实…

python做简单爬虫的一些常用组件

文章目录 前言requestjsonbs4 前言 最近一直在做零散的一次性的爬虫工作&#xff0c;基本都是用python开发的&#xff0c;整理一下python做小规模爬虫开发常用的一些工具类 request python最简单的发http请求的包&#xff0c;request.get和request.post就可以搞定绝大部分的…

【Github】Github 上commit后 contribution 绿格子不显示 | Github绿格子 | Github贡献度不显示

一、Github 消失的绿点 1、贡献值为什么没了&#xff1f; 2、选择要显示的贡献 如下配置 二、如何解决消失的绿点&#xff1f; 1、添加邮箱 确保邮箱的设置必须选择一个邮箱邮箱 2、git config 添加邮箱 设置邮箱如下&#xff1a; git config --local user.email 316434776…

使用标量函数实现 EF Core 的实用方法

一.介绍 在构建应用程序时&#xff0c;您可能使用标量函数在数据库端实现一些逻辑。在 SQL 中&#xff0c;标量函数是一种对单个值或少量输入值进行操作并始终返回单个值作为输出的函数。这些函数本质上是可重复使用的代码块&#xff0c;用于对数据执行计算或操作。 以下是标…

Java面试——Tomcat

优质博文&#xff1a;IT_BLOG_CN 一、Tomcat 顶层架构 Tomcat中最顶层的容器是Server&#xff0c;代表着整个服务器&#xff0c;从上图中可以看出&#xff0c;一个Server可以包含至少一个Service&#xff0c;用于具体提供服务。Service主要包含两个部分&#xff1a;Connector和…

Java实现数据库图片上传(包含从数据库拿图片传递前端渲染)-图文详解

目录 1、前言&#xff1a; 2、数据库搭建 &#xff1a; 建表语句&#xff1a; 3、后端实现&#xff0c;将图片存储进数据库&#xff1a; 思想&#xff1a; 找到图片位置&#xff08;如下图操作&#xff09; 图片转为Fileinputstream流的工具类&#xff08;可直接copy&#…

系统学习渗透测试:从零到精通的全面指南

渗透测试&#xff0c;作为网络安全领域的一项重要技术&#xff0c;旨在通过模拟黑客攻击来评估计算机系统的安全性。对于想要系统学习渗透测试的人来说&#xff0c;这既是一条充满挑战的道路&#xff0c;也是一次深入了解网络安全的宝贵机会。本文将从基础知识、技能提升、实战…

【释放品牌魅力,开启营销新篇章】—— 短视频矩阵营销系统源码

【释放品牌魅力&#xff0c;开启营销新篇章】—— 短视频矩阵营销系统在这个数字化高速发展的时代&#xff0c;您是否还在为品牌曝光度不足、营销效果不佳而苦恼&#xff1f;来吧&#xff0c;让我们一起探索全新的解决方案——短视频矩阵营销系统&#xff01; 在这个数字化高速…

NC 缺失的第一个正整数

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一个无重…

AI初学者必看: 什么是大型语言模型 (LLM)?

介绍 “人工智能&#xff08;AI&#xff09;”一词于 1956 年问世&#xff0c;如今已为大家所熟知。然而&#xff0c;在 ChatGPT 迅速流行之前&#xff0c;AI 的使用和讨论大多局限于科学研究或虚构电影。如今&#xff0c;AI 尤其是生成式 AI 已成为大家热议的话题。 初学者生…

详解校门外的树(树状数组)

前言 在看之前建议先看一下 【学习笔记】详解树状数组-CSDN博客 题目 思路 建立两个树状数组,维护左括号与右括号。 假设有一个长度为10的数轴&#xff0c;我们要将区间[ 2 , 5 ]中种树&#xff0c;这时&#xff0c;我们将 2 处放一个左括号 ” ( ” ,5处放一个 ” )” &…

3DMAX神经网络插件Neuron使用方法详解

3DMAX神经网络插件Neuron使用方法 3DMAX神经网络插件Neuron&#xff0c;从一系列样条曲线创建具有分支结构的几何体。适用于如神经网络、血管、树枝等形状的3D建模。 【适用版本】 3dMax2016及更高&#xff08;不仅限于此范围&#xff09; 【安装方法】 Neuron插件无需安装&a…

【C++】跳转语句-continue语句

continue语法特点&#xff1a; 中止循环后会继续执行下面循环&#xff08;除了continue所跳出的那些执行操作不会执行&#xff09; 这也是额continue语句和break语句最大的区别 break是直接跳出循环不再执行下面步骤 #include<iostream> using namespace std;int main…

收集树中的金币

提示 1 定义一个点的度数为其邻居个数。如果一个点的度数为 1&#xff0c;那么这个点叫做叶子节点&#xff0c;例如示例 2 的 3,4,6,7 都是叶子节点。 如果叶子节点没有金币&#xff0c;我们有必要移动到叶子节点吗&#xff1f;没有必要。 那么可以先把这些没有金币的叶子节点…