深度神经网络——什么是降维?

引言

什么是降维? 降维是用于降低数据集维度的过程,采用许多特征并将它们表示为更少的特征。 例如,降维可用于将二十个特征的数据集减少到仅有几个特征。 降维通常用于无监督学习任务

降维是一个用于降低数据集维度的过程,采用许多特征并将它们表示为更少的特征。 例如,降维可用于将二十个特征的数据集减少到仅有几个特征。 降维常用于 无监督学习 从许多功能中自动创建类的任务。 为了更好地理解 为什么以及如何使用降维,我们将了解与高维数据相关的问题以及最流行的降维方法。

更多维度导致过度拟合

维度是指数据集中的特征/列的数量。

人们通常认为,在机器学习中,特征越多越好,因为它可以创建更准确的模型。然而,更多的功能并不一定意味着更好的模型。

数据集的特征对于模型的有用程度可能有很大差异,其中许多特征并不重要。 此外,数据集包含的特征越多,需要的样本就越多,以确保数据中能够很好地表示特征的不同组合。 因此,样本数量与特征数量成比例增加。 更多的样本和更多的特征意味着模型需要更加复杂,并且随着模型变得更加复杂,它们对过度拟合变得更加敏感。 该模型对训练数据中的模式学习得很好,但无法推广到样本数据之外。

降低数据集的维数有几个好处。 如前所述,更简单的模型不太容易过度拟合,因为模型必须对特征之间的相互关系做出更少的假设。 此外,维度越少意味着训练算法所需的计算能力就越少。 类似地,维度较小的数据集需要较少的存储空间。 降低数据集的维数还可以让您使用不适合具有许多特征的数据集的算法。

常见的降维方法

降维可以通过特征选择或特征工程来实现。 特征选择是工程师识别数据集最相关特征的地方,而 特征工程 是通过组合或改造其他特征来创建新特征的过程。

特征选择和工程可以通过编程或手动完成。 当手动选择和设计特征时,通常会通过可视化数据来发现特征和类之间的相关性。 以这种方式进行降维可能非常耗时,因此一些最常见的降维方法涉及使用 Scikit-learn for Python 等库中提供的算法。 这些常见的降维算法包括:主成分分析(PCA)、奇异值分解(SVD)和线性判别分析(LDA)。

用于无监督学习任务降维的算法通常是 PCA 和 SVD,而用于监督学习降维的算法通常是 LDA 和 PCA。在监督学习模型的情况下,新生成的特征仅被输入到机器学习分类器中。请注意,此处描述的用途只是一般​​用例,而不是这些技术可能使用的唯一条件。上述降维算法只是统计方法,它们在机器学习模型之外使用。

主成分分析

主成分分析(PCA) 是一种统计方法,分析数据集的特征/特征并总结最有影响力的特征。 数据集的特征组合在一起形成表示,该表示保留了数据的大部分特征,但分布在较少的维度上。 您可以将其视为将数据从较高维度的表示形式“压缩”为只有几个维度的表示形式。

作为 PCA 可能有用的情况的一个例子,请考虑描述葡萄酒的各种方式。 虽然可以使用许多高度具体的特征(例如二氧化碳水平、通气水平等)来描述葡萄酒,但在尝试识别特定类型的葡萄酒时,这些具体特征可能相对无用。 相反,根据味道、颜色和年龄等更一般的特征来识别类型会更加谨慎。 PCA可用于组合更具体的特征并创建更通用、有用且不太可能导致过度拟合的特征。

PCA 的执行方式是确定输入特征之间的平均值如何变化,并确定特征之间是否存在任何关系。 为了做到这一点,创建一个协变矩阵,建立一个由关于数据集特征的可能对的协方差组成的矩阵。 这用于确定变量之间的相关性,负协方差表示逆相关,正相关表示正相关。

数据集的主要(最有影响力)组成部分是通过创建初始变量的线性组合来创建的,这是在线性代数概念的帮助下完成的 特征值和特征向量。 创建组合是为了使主成分彼此不相关。 初始变量中包含的大部分信息被压缩到前几个主成分中,这意味着已经创建了新特征(主成分),其中包含较小维空间中的原始数据集的信息。

奇异值分解

奇异值分解(SVD) is 用于简化矩阵中的值,将矩阵简化为其组成部分,并使该矩阵的计算变得更容易。 SVD 可用于实值矩阵和复数矩阵,但出于本说明的目的,我们将研究如何分解实值矩阵。

假设我们有一个由实值数据组成的矩阵,我们的目标是减少矩阵内的列/特征的数量,类似于 PCA 的目标。 与 PCA 一样,SVD 会压缩矩阵的维数,同时尽可能保留矩阵的可变性。 如果我们想对矩阵 A 进行操作,我们可以将矩阵 A 表示为另外三个矩阵,称为 U、D 和 V。矩阵 A 由原始 x * y 元素组成,而矩阵 U 由元素 X * X 组成(它是正交矩阵)。 矩阵 V 是包含 y * y 元素的不同正交矩阵。 矩阵 D 包含元素 x * y,它是一个对角矩阵。

为了分解矩阵 A 的值,我们需要将原始奇异矩阵值转换为新矩阵中找到的对角线值。 使用正交矩阵时,即使乘以其他数字,它们的属性也不会改变。 因此,我们可以利用这个性质来近似矩阵A。 当我们将正交矩阵与矩阵 V 的转置相乘时,结果是与原始 A 等效的矩阵。

当矩阵 a 分解为矩阵 U、D 和 V 时,它们包含矩阵 A 中找到的数据。但是,矩阵的最左边的列将包含大部分数据。 我们可以只取前几列,并得到矩阵 A 的表示形式,该矩阵的维度要少得多,并且 A 中包含大部分数据。

线性判别分析

左:LDA 之前的矩阵,右:LDA 之后的轴,现在可分离

线性判别分析(LDA) 是一个从多维图中获取数据的过程 将其重新投影到线性图上。 您可以通过考虑一个充满属于两个不同类的数据点的二维图来想象这一点。 假设这些点分散在各处,因此无法绘制出能够整齐地分隔两个不同类的线。 为了处理这种情况,可以将二维图中找到的点简化为一维图(一条线)。 这条线将分布所有数据点,并且有望将其分为两部分,以实现数据的最佳分离。

执行 LDA 时有两个主要目标。 第一个目标是最小化类别的方差,而第二个目标是最大化两个类别的均值之间的距离。 这些目标是通过创建将存在于二维图中的新轴来实现的。 新创建的轴用于根据前面描述的目标分隔两个类。 创建轴后,在 2D 图中找到的点将沿轴放置。

将原始点沿新轴移动到新位置需要三个步骤。 第一步,使用各个类之间的距离均值(类间方差)来计算类的可分离性。 在第二步中,通过确定相关类别的样本与平均值之间的距离来计算不同类别内的方差。 在最后一步中,创建最大化类之间方差的低维空间。

当目标类的均值彼此相距较远时,LDA 技术可获得最佳结果。 如果分布的均值重叠,LDA 无法使用线性轴有效地分离类别。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【中文】PDF文档切分\切片\拆分最优方案-数据预处理阶段,为后续导入RAG向量数据库和ES数据库实现双路召回

目的 将PDF文档拆开,拆开后每个数据是文档中的某一段,目的是保证每条数据都有较完整的语义,并且长度不会太长 项目自述 看了很多切分项目,包括langchain、Langchain-Chatchat、、Chinese-LangChain、LangChain-ChatGLM-Webui、…

c语言指针经典笔试题

指针的笔试题目 //深度讨论数组名 int main1() {int a[] { 1,2,3,4 };printf("%d\n", sizeof(a)); //sizeof内部出现数组名代表是整个数组的大小 //16printf("%d\n", sizeof(a 0)); //首元素地址0还是首元素地址 4/8printf("%d\n", sizeof(*…

TestProject Python SDK入门

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客跳槽涨薪的朋友们有福了,今天给大家推荐一个软件测试面试的刷题小程序。​编辑https://…

阻力支撑相对强度(RSRS)选股系列报告之三

https://download.csdn.net/download/SuiZuoZhuLiu/89447699?spm1001.2014.3001.5503https://download.csdn.net/download/SuiZuoZhuLiu/89447699?spm1001.2014.3001.5503

《维汉翻译通》App一款免费的维吾尔语翻译工具,也是新疆人学习中文的利器!维吾尔文OCR识别提取文字神器,功能丰富、界面简洁无广告、操作简单!

免费翻译,无界限沟通 《维汉翻译通》App提供免费的短文本翻译服务,无论是日常对话还是专业术语,都能迅速给出准确的翻译结果。维吾尔语免费翻译工具的加入,更是让这款App成为学习维吾尔语的必备应用。 智能OCR,文字识…

#QT(QCharts绘制曲线)

1.IDE:QTCreator 2.实验:绘制曲线图表 3.记录: 4.代码 pro QT core gui #加入以下代码引入charts QT charts greaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c17# You can make your code fail to compile if it uses depre…

关于数据库导入导出excel后出现前面的0消失或者有-的变成了日期

1、数据导出0消失 在数据库导出excel后,发现前面的数字0都消失了,怎么办呢,将需要转换的列转成字符串在导出 2、数据导入时,excel的0消失 载excel中输入’00001’,发现变成了‘1’,选中列点击右键–>设置…

python写一个ai agent对接仓库管理系统的业务流程

要实现一个AI agent对接仓库管理系统的业务流程,首先需要了解仓库管理系统的具体业务流程和需求。以下是一个简单的示例,用Python编写一个AI agent,用于对接仓库管理系统的业务流程。 1. 首先,定义一个类WarehouseManager&#xf…

场景设计题

为什么要这样分表?跨库join如何解决?数据量突增怎么解决? 如何解决线上问题?cpu狂飙怎么办?频繁minor gc怎么办?可能造成的原因是什么?如何避免? 数据库 隔离级别,怎么实…

npm发布自己的插件包:新手教程

npm(Node Package Manager)是Node.js的包管理工具,广泛用于JavaScript项目中。本文将为你介绍如何从零开始发布一个npm插件包。 前提条件 在开始之前,你需要确保以下几点: 安装Node.js和npm:你可以在No…

C++ 二叉搜索树【面试】

以下是一个简单的二叉搜索树实现&#xff0c;包括插入和查找操作的示例代码&#xff1a; #include <iostream>// 定义二叉搜索树的节点结构 struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} };//…

Spring Boot定时任务编程指南:如何创建和配置周期性任务

&#x1f341; 作者&#xff1a;知识浅谈&#xff0c;CSDN签约讲师&#xff0c;CSDN博客专家&#xff0c;华为云云享专家&#xff0c;阿里云专家博主 &#x1f4cc; 擅长领域&#xff1a;全栈工程师、爬虫、ACM算法 &#x1f525; 微信&#xff1a;zsqtcyw 联系我领取学习资料 …

基于Langchain构建本地大型语言模型(LLM)问答系统的经验分享

基于Langchain构建本地大型语言模型&#xff08;LLM&#xff09;问答系统的经验分享 https://download.csdn.net/download/xziyuan/89334371?spm1001.2101.3001.9500 最近&#xff0c;我一直在探索如何利用Langchain来构建一个本地的大型语言模型问答系统。在这个过程中&…

消息中间件比较:Redis,Kafka和RabbitMQ

对微服务使用异步通信时&#xff0c;通常使用消息代理。代理确保不同微服务之间的通信可靠且稳定&#xff0c;消息在系统内得到管理和监控&#xff0c;并且消息不会丢失。您可以从几个消息代理中进行选择&#xff0c;它们的规模和数据功能各不相同。这篇博文将比较三种最受欢迎…

不知道密码,一样能卸载瑞星esm防病毒终端安全防护系统

离开单位后试图卸载瑞星的时候却发现还需要密码&#xff0c;真是烦死了。研究了几分钟后找到了完美卸载方法。 首先&#xff0c;让我们请出老流氓360安全卫士&#xff0c;下载好它&#xff0c;让右键菜单出现使用 360强力删除这一选项。 之后&#xff0c;进入安全模式&#x…

中医药人工智能大模型正式启动

6月15日&#xff0c;在横琴粤澳深度合作区举行的中医药广东省实验室&#xff08;以下简称横琴实验室&#xff09;第一届学术委员会第一次会议暨首届横琴中医药科技创新大会上&#xff0c;中医药横琴大模型、中药新药智能自动化融合创新平台同时启动。这也是该实验室揭牌半年来取…

迷你手持小风扇十大名牌排名有哪些?公认迷你小风扇排行榜揭开!

随着夏季高温的来临&#xff0c;迷你小风扇成为了大家追求清凉和舒适的必备工具。其小巧便携的设计、强劲的风力和长续航时间&#xff0c;使得迷你小风扇迅速在市场上走红。然而&#xff0c;面对琳琅满目的品牌和各种型号&#xff0c;如何选择一款既高效又耐用的迷你小风扇成为…

UE5 C++ 跑酷游戏练习 Part1

一.修改第三人称模板的 Charactor 1.随鼠标将四处看的功能的输入注释掉。 void ARunGANCharacter::SetupPlayerInputComponent(class UInputComponent* PlayerInputComponent) {// Set up action bindingsif (UEnhancedInputComponent* EnhancedInputComponent CastChecked&…

python+unity手势控制地球大小

效果图如下 具体操作如下 1 在unity窗口添加一个球体 2 给球体添加材质,材质图片使用地球图片 地球图片如下 unity材质设置截图如下 3 编写地球控制脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class test : MonoBehavio…

RK3588/算能/Nvidia智能盒子:加速山西铝业智能化转型,保障矿业皮带传输安全稳定运行

近年来&#xff0c;各类矿山事故频发&#xff0c;暴露出传统矿业各环节的诸多问题。随着全国重点产煤省份相继出台相关政策文件&#xff0c;矿业智能化建设进程加快。皮带传输系统升级是矿业智能化的一个重要环节&#xff0c;同时也是降本增效的一个重点方向。 △各省份智能矿山…