漫谈 Clustering (番外篇): Dimensionality Reduction

机器学习6:降维(dimensionality reduction) 将数据从高维映射到低维。 PCA算法: Principal Component Analysis 其为无监督问题,基于方差提取最有价值的信息。 阅读详情

转:http://blog.pluskid.org/?p=290

本文是“漫谈 Clustering 系列”中的第 7 篇,参见本系列的其他文章。

由于总是有各种各样的杂事,这个系列的文章竟然一下子拖了好几个月,(实际上其他的日志我也写得比较少),现在决定还是先把这篇降维的日志写完。我甚至都以及忘记了在这个系列中之前有没有讲过“特征”(feature)的概念了,这里不妨再稍微提一下。机器学习应用到各个领域里,会遇到许多不同类型的数据要处理:图像、文本、音频视频以及物理、生物、化学等实验还有其他工业、商业以及军事上得到的各种数据,如果要为每一种类型的数据都设计独立的算法,那显然是非常不现实的事,因此,机器学习算法通常会采用一些标准的数据格式,最常见的一种格式就是每一个数据对应欧几里德空间里的一个向量。

如果原始的数据格式不兼容,那么就需要首先进行转换,这个过程通常叫做“特征提取”(Feature Extraction),而得到的标准数据格式通常叫做 Feature 。例如,一个最简单的将一个文本 Document 转化为向量的方法如下:

  1. 选定特征空间,这里采用三维欧氏空间,三个维度(依次)分别由 to 、be 和 the 表示。
  2. 假设待提取的文档是“To be, or not to be: that is the question:”,首先对其进行一些预处理,例如去掉单词的时态后缀、滤掉标点符号等,得到“to be or not to be that be the question”。
  3. 统计三个维度所对应的单词出现的频率:to 2 次,be 3 次,the 1 次。
  4. 该文档对应的向量即 [2, 3, 1] 。

当然,在实际中我们几乎不会这样人工设定空间的各个维度所对应的单词,而通常是从一个数据集中统计出所有出现的词,再将其中的一些挑选出来作为维度。怎样挑选呢?最简单的办法是根本不做任何挑选,或者简单地只是把出现频率太低的单词(维度)去掉。

不过,事实上我们通常会做更复杂一些的处理,例如,如果你是在做 sentiment analysis ,那么你通常会更加关注语气很重的词,比如 “bad”、“terrible”、“awesome” 等的重要性就比普通的词要大,此时你可以为每一个维度设一个权重,例如,给 “bad” 设置权重 2 ,那么出现 3 次的话,向量在该维度对应的值就为 2*3 = 6 。当然这样手工指定权重只在小范围内可行,如果要为数百万个维度指定权重,那显然是不可能的,另一个稍微自动一点的办法是 tf-idf 。

tf 就是 Term Frequency ,就和刚才说的单词出现的次数差不多,而 idf 则是 Inverse Document Frequency ,通常使用如下公式进行计算:

其中 \tilde{\mathbf{x}}_i 是 \mathbf{x}_i 所对应的低维表示再重新构造出来的高维形式,就相当于是压缩之后解压出来的结果,不过虽然有许多压缩方法都是无损的,就是说这个差值会等于零,但是大部分降维的结果都是有损的。不过我们仍然希望把上面的 reconstruction error 最小化。

另外一种方式是简单地使用 variance 来衡量所包含信息量,例如,我们要把一些 D 维的向量降为 1 维,那么我们希望这一维的 variance 达到最大化,亦即:

从直观上来说,这样的目标函数的意义在于:如果原来 \mathbf{x}_i 和 \mathbf{x}_j 比较接近,那么 W_{ij} 会相对比较大,这样如果映射过后 y_i 和 y_j 相差比较大的话,就会被权重 W_{ij} 放大,因此最小化目标函数就保证了原来相近的点在映射过后也不会彼此相差太远。

令 D 为将 W 的每一行加起来所得到的对角阵,而 L = D-W ,被称作是拉普拉斯矩阵,通过求解如下的特征值问题

以求解出最优的局部线性重构矩阵 W ,对于距离较远的点 i 和 j ,W_{ij} 应当等于零。这之后再把 W 当作已知量对下式进行最小化:

经过类似的推导,最终要求解的特征值问题如下:

<img src="http://blog.pluskid.org/latexrender/pictures/d994014c9f3a67538e1071e52dc30bb2.png" _xhe_src="http://blog.pluskid.org/latexrender/pictures/d994014c9f3a67538e1071e52dc30bb2.png" title="" \displaystyle"="" alt="" align="absmiddle" style="border: 0px; margin-left: auto; margin-right: auto;">

得到的按照特征值从小到大排序的特征向量就组成映射矩阵 A ,和 LE 不同的是这里不需要去掉第一个特征向量。另一点是在 LE 中的特征值是一个稀疏的特征值问题,在只需要求解最小的几个特征值的时候可以比较高效地求解,而这里的矩阵在乘以 X 之后通常就不再稀疏了,计算量会变得比较大,这个问题可以使用 Spectral Regression 的方法来解决,参见 Spectral Regression: A Unified Approach for Sparse Subspace Learning 这篇 paper 。如果采用 Kernel Trick 再把 LPP 非线性化的话,又会回到 LE 。而 LLE 的线性版本 NPE 也是采用了类似的办法来得到的,就不在这里多讲了。

另外,虽然 LE 是 unsupervised 的,但是如果训练数据确实有标签可用,也是可以加以利用的——在构造相似度矩阵的时候,属于同一类别的相似度要大一些,而不同类别的相似度则会小一些。

当然,除去聚类或分类之外,降维本身也是一种比较通用的数据分析的方法,不过有许多人批评降维,说得到的结果没有意义,不用说非线性,就是最简单的线性降维,除去一些非藏极端的特殊情况的话,通常将原来的分量线性组合一下都不会得到什么有现成的物理意义的量了。然而话也说回来,现在的机器学习几乎都是更 prefer “黑盒子”式的方法吧,比如决策树,各个分支对应与变量的话,它的决策过程其实人是可以“看到”或者说“理解”的,但是 SVM 就不那么“直观“了,如果再加上降维处理,就更加“不透明”了。不过我觉得这没什么不好的,如果只是靠可以清晰描诉出来的 rule 的话,似乎感觉神秘感不够,没法发展出“智能”来啊 ^_^bb 最后,所谓有没有物理意义,其实物理量不过也都是人为了描述问题方便而定义出来的吧。

聚类之降维(Dimensionality Reduction)算法详解 有时可能有几个不同的工程团队,也许一个工程队给你二百个特征,第二工程队给你另外三百个的特征,第三工程队给你五百个特征,一千多个特征都在一起,它实际上会变得非常困难,去跟踪你知道的那些特征,你从那些工程队得到的。假使我们要采用两种不同的仪器来测量一些东西的尺寸,其中一个仪器测量结果的单位是英寸,另一个仪器测量的结果是厘米,我们希望将测量的结果作为我们机器学习的特征。我们可以对新求出的“主元”向量的重要性进行排序,根据需要取前面最重要的部分,将后面的维数省去,可以达到降维从而简化模型或是对数据进行压缩的效果。 阅读详情

相关推荐

从零到一:海外短剧成品系统源码搭建流程详解及APP+H5交付服务

在当今全球化的数字娱乐浪潮中,海外短剧市场以其独特的文化魅力和广阔的受众基础,正逐渐成为内容创作者与平台运营者争相布局的新蓝海。我为了紧跟时代的发展我翻看了大量的文章,偶然间看到了一篇文章点进去发现他们是专业做短剧开发的,总结下来在这篇文章里分享给大家。

liangyill_的博客 907

降维(Dimensionality Reduction)

降维(Dimensionality Reduction)理论的学习

Need not to know 1748

AltiumDesigner 09安装过程破解问题 .

首先分享一下破解文件,网上总是下载不到,好不容易下载到了,放在网盘上,有需要的自取。AltiumDesigner 09破解文件。链接:https://pan.baidu.com/s/1ZGvbR_6T51hpcaFbQiMX5w 密码:qwvaAltiumDesigner 09安装安装文件,比较大,包含破解文件:链接:https://pan.baidu.com/s/1mfgragB519jpGfR...

xiaoxiao_rabbit的博客 3万+

机器学习实战(八):Dimensionality Reduction

特征过多造成方案难以选定,训练非常缓慢,所以可以选择大量减少特征数量——数据降维 数据降维能加速训练,滤掉噪声和不必要细节,有利于数据可视化,但流水线更复杂 ,维护难度更高。 本章将介绍两种主要的数据降维方法(投影和流形学习),学习三种数据降维技术(PCA、Kernel PCA、LLE) The Curse of Dimensionality(维度的诅咒) 高位超立方体大多数点更接近边界,高位数据集很大可能非常稀疏。即训练集维度越高,过度拟合风险越大,且不能通过增加训练集数量解决。 Main Approac

WNM的博客 1260

soul聊天协议逆向

通过观察上面的CFG发现,该混淆符合以下逻辑,整体思路就是先查找主分发器,一般被引用次数最多的那个块就是主分发器,引用主分发器的块大概率是真实块,再使用unicorn模拟执行,遍历每一个分支,记录每一个块,如果某一个块是上次记录的块则也为真实块,无后继的块则为retn块,剩下的就是无用块。通过Frida Hook libc.so后发现,聊天协议走的是JAVA层的socket,然后Hook JAVA层相关函数得到如下调用堆栈。里面调用的函数不是很多,所以。不行不行,革命要彻底!

2503_90751789的博客 3208

Chapter2、HDR流水线

HDR内容的获取(不同曝光时间的图片合成) 相机响应函数 HDR视频

qq_55621259的博客 2597

降维(Dimensionality Reduction) 是机器学习中的一种重要的特征处理手段

降维(Dimensionality Reduction) 是机器学习中的一种重要的特征处理手段, package dimensionalityreduction import org.apache.log4j.{Level, Logger} import org.apache.spark.SparkContext import org.apache.spark.mllib.linalg import org.apache.spark.mllib.linalg.{Matrix, SingularValueD

为了更好的未来_加油 2801

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 334

漫谈cluster

<br />http://blog.pluskid.org/?page_id=78<br /> 漫谈 Clustering (1): k-means漫谈 Clustering (2): k-medoids漫谈 Clustering (番外篇): Vector Quantization漫谈 Clustering (3): Gaussian Mixture Model漫谈 Clustering (番外篇): Expectation Maximization漫谈 Clustering (4): Spectral

#pragma once = 一期一会 777

解决Android UVCCamera stopPreview 报错 崩溃 闪退 问题

在使用libuvccamera库的UVCCamera时,经常在调用stopPreview关闭预览的时候,app直接崩溃闪退了,经过综合各种修改源码的方案,已解决这个问题,以下请参考: 首先找到android_usbfs.c,linux_usbfs.c两个原文件,在两个文件中都可以找到这段代码,按如下示例修改: 修改前: for (i = 0; i < num_urbs; i++) { if (urb == tpriv->iso_urbs[i]) { urb_idx = i + 1;

hanye2020的博客 3576

深入浅出:大型语言模型(LLM)的全面解读

在当今的数字化时代,人工智能技术已经成为各行各业的核心驱动力之一。而在人工智能的领域中,大型语言模型(LLM)作为一种引人瞩目的技术,正在以其强大的语言理解和生成能力引领着一场革命。本文旨在深入浅出地解读大型语言模型,探讨其背后的原理、技术突破、应用场景以及未来发展趋势。

fudaihb的博客 10万+

聚类学习

很好的一个聚类方面的学习系列:          http://blog.pluskid.org/?page_id=78 漫谈 Clustering 系列 漫谈 Clustering (1): k-means漫谈 Clustering (2): k-medoids漫谈 Clustering (番外篇): Vector Quantization漫谈 Clusteri

leiyifight的专栏 1135

如何在 Ubuntu 22.04 上安装和配置 VNC 服务器?

VNC(Virtual Network Computing)是一种图形桌面共享系统,通过网络允许用户控制另一台计算机的桌面环境。无论你是系统管理员还是开发人员,VNC 都可以在远程访问桌面环境时提供极大的便利。在安装和配置 VNC 服务器之前,我们需要确保系统是最新的,并安装一些基本工具。这些命令将更新你的软件包列表并升级所有已安装的软件包,以确保你拥有最新的安全修复和功能更新。

网络技术联盟站 4003

降维(Dimensionality Reduction)算法-图像处理

主要介绍了什么是降维(Dimensionality Reduction)算法,及其中的PCA(Principal Component Analysis)算法。及在图片预处理中的应用。

水木姚姚个人主页:知乎同名个人主页:https://www.zhihu.com/people/66-64-1-50 900

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

人工智能基础知识笔记十:降维技术

有无标签?有标签且目标是分类:优先考虑LDA(如果数据大致满足其假设)。无标签:继续判断。主要目标是什么?快速预处理/压缩/去噪PCA通常是首选起点。数据可视化t-SNE(专注局部簇) 或UMAP(平衡局部全局)。UMAP是更可行的选择。MDS(尤其非度量)。LLE(但UMAP通常更优)。降维后特征用于下游任务(聚类/分类)PCAUMAP是常见选择。LDA仅适用于有监督分类。数据结构?线性结构明显PCALDA(监督) 效果很好。复杂非线性/流形结构t-SNEUMAPLLE非度量MDS。数据规模。

jimmyleeee的专栏 1363

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Dimensionality Reduction(降维)

前言 在前面,我们给大家介绍了一种无监督学习的算法K-means,是来解决聚类问题的,在这一章我将给大家介绍另一种无监督学习算法,是用来解决降维问题的,叫做Principal Component Analysis(主成分分析法)。 最后,如果有地方理解不对的,希望大家不吝赐教,谢谢! 【机器学习系列】【第十一章:聚类】【第十三章:异常检测】 第十二章 Dimens...

qq_36417014的博客 519

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

【Machine Learning】14 降维(Dimensionality Reduction)

14.1 Motivation I:Data Compression      2维做投影用1维数据来表示                                                   3维做投影用2维数据来表示 投影的线或平面可以理解为新的坐标系。   14.2 Motivation II:Visualization 降维后新的特征向量所表示的意义需要自己去...

weixin_38716567的博客 322

数据降维(Dimensionality reduction)

数据降维(Dimensionality reduction) 应用范围 无监督学习 图片压缩(需要的时候在还原回来) 数据压缩 数据可视化 数据压缩(Data Compression) 将高维的数据转变为低维的数据, 这样我们存储数据的矩阵的列就减少了, 那么我们需要存储的数据就减少了 数据可视化 数据可视化是非常重要的, 通过可视化数据可以发现数据的规律, 但是大多数时候我们...

anmin1992的专栏 366

机器学习入门(12)——降维(Dimensionality Reduction)

目标一:数据压缩(Motivation I_ Data Compression) 降维也是一种无监督学习问题。 数据压缩不仅允许我们压缩数据,还因使用较少的计算机内存或磁盘空间,加快我们的学习算法。 将数据从二维降至一维: 假使我们要采用两种不同的仪器来测量一些东西的尺寸,其中一个仪器测量结果的单位是英寸,另一个仪器测量的结果是厘米,我们希望将测量的结果作为我们机器学习的特征。现在的问题的是,两种仪器对同一个东西测量的结果不完全相等(由于误差、精度等),而将两者都作为特征有些重复,因而,我们希望将这个二维的

strivequeen的博客 1212

关于降维((Dimensionality Reduction)

一、前言     机器学习过程中都是根据特征进行学习,而每个机器学习的问题都可能包含成千上万的特征,训练时过多的特征数量会导致训练效率低下,这里引入了一个问题——维度灾难。     维度灾难     这里通过一个例子进行说明:假设一个三维立方体边长为1,那么它的体积为1,而他的内接球体积为43πr3\dfrac{4}{3}\pi r^{3}34​πr3,其中r<1,而如果在高维空间(假设为K)中,高维立方体体积仍为1,但内接球体积变为43πrK\dfrac{4}{3}\pi r^{K}34​πrK,因

g1162141320的博客 2644

维数约减--Dimensionality Reduction

目录 维数约减--Dimensionality Reduction 维数约减--Dimensionality Reduction ​ 维数约减属于无监督学习范畴,我们希望使用维数约减的原因可能有:通过数据压缩以减少数据占有内存的大小,为算法运算提高速度,将数据可视化等。 数据压缩-data compres...

768

Dimensionality Reduction(主成分分析PCA与线性判别分析LDA)

PCA原理,实现,应用。多重境界的理解。通常情况下,在收集数据集时会有很多的特征,这代表着数据是高冗余的表示,但是对于某个工程来说其实可能并不需要那么多的特征。所以就需要给数据进行降维(Dimensionality Reduction)。降维可以简化数据,使数据集更易使用,降低时间开销,而且能减少一部分噪音的影响,使最后的效果变好。比如上图中,如果进行降维后再进行分类,将会易于处理.........

nakaizura 5335

ml-8-2-降维(Dimensionality Reduction)

降维(Dimensionality Reduction) Motivation I_ Data Compression数据压缩 无监督学习问题,称为降维。有几个不同的的原因使你可能想要做降维。一是数据压缩,后面我们会看了一些视频后,数据压缩不仅允许我们压缩数据,因而使用较少的计算机内存或磁盘空间,但它也让我们加快我们的学习算法。 但首先,让我们谈论降维是什么。作为一种生动的例子,我们收集的数据集,有许多,许多特征,我绘制两个在这里。 假设我们未知两个的特征 x 1 :长度:用厘米表示;X 2 ,是用英寸表

数据飓风 1260
上一篇: 漫谈 Clustering (4): Spectral Clustering
下一篇: 漫谈 Clustering (5): Hierarchical Clustering
Savitch
博客等级 码龄16年 84粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值