【机器学习】必会降维算法之:随机投影(Random Projection)

随机投影(Random Projection)

  • 1、引言
  • 2、随机投影(Random Projection)
    • 2.1 定义
    • 2.2 核心原理
    • 2.3 应用场景
    • 2.4 实现方式
    • 2.5 算法公式
    • 2.6 代码示例
  • 3、总结

1、引言

小屌丝:鱼哥,降维算法还没讲完呢。
小鱼:嗯… 应该是没讲完。
小屌丝:那你是不是应该继续啊
小鱼:… 继续,整。
小屌丝:今天咋这么痛快。
小鱼:嘿嘿, 不能说的秘密。
小屌丝:哦… 嘿嘿~ ~ 懂了
在这里插入图片描述

2、随机投影(Random Projection)

2.1 定义

随机投影是一种降维技术,它通过将高维数据投射到较低维度的随机子空间中来实现数据降维。

与 PCA 等传统方法不同,随机投影不需要对数据进行复杂的数学运算,而是基于随机矩阵理论,利用随机性来近似保留原始数据的距离和结构。

2.2 核心原理

随机投影的核心原理是使用一个随机生成的矩阵将原始数据投影到一个较低维度的空间。这个随机矩阵的行数是目标维度,列数是原始数据的维度。通过乘以这个矩阵,原始数据的每一行都会映射到一个较短的向量上。

随机投影的理论依据是Johnson-Lindenstrauss引理(JL引理),它指出对于任意一组点,在保持它们之间距离几乎不变的前提下,可以将它们从高维空间映射到低维空间。

2.3 应用场景

随机投影在多个领域都有广泛的应用,包括但不限于:

  • 数据可视化:将高维数据投影到二维或三维空间,便于观察和分析。
  • 数据压缩:减少数据存储和传输的开销。
  • 特征选择:通过降维去除冗余特征,提高模型性能。
  • 加速机器学习算法:降低输入数据的维度,减少计算成本。

2.4 实现方式

随机投影的实现方式主要包括以下几个步骤:

  • 生成随机投影矩阵:生成一个 ( d × k ) ( d \times k ) (d×k) 的随机矩阵 ( R ) ( \mathbf{R} ) (R),其中每个元素服从均值为零、方差为 ( 1 k ) ( \frac{1}{k} ) (k1) 的正态分布。
  • 投影数据:将高维数据矩阵 ( X ) ( \mathbf{X} ) (X) 与随机投影矩阵 ( R ) ( \mathbf{R} ) (R) 相乘,得到降维后的数据矩阵 ( X ′ ) ( \mathbf{X'} ) (X)

2.5 算法公式

核心公式为

[ X ′ = X R ] [ \mathbf{X'} = \mathbf{X} \mathbf{R} ] [X=XR]

其中:

  • ( X ) ( \mathbf{X} ) (X) ( n × d ) ( n \times d ) (n×d) 的高维数据矩阵。
  • ( R ) ( \mathbf{R} ) (R) ( d × k ) ( d \times k ) (d×k) 的随机投影矩阵。
  • ( X ′ ) ( \mathbf{X'} ) (X) ( n × k ) ( n \times k ) (n×k) 的降维后数据矩阵。

2.6 代码示例

# -*- coding:utf-8 -*-
# @Time   : 2024-06-05
# @Author : Carl_DJimport numpy as np
from sklearn.random_projection import GaussianRandomProjection
import matplotlib.pyplot as plt# 生成一个高维随机数据集
np.random.seed(0)
X = np.random.randn(100, 50)# 使用 GaussianRandomProjection 进行降维
n_components = 10  # 降维目标维数
rp = GaussianRandomProjection(n_components=n_components)
X_projected = rp.fit_transform(X)# 显示降维前后的数据维度
print("原始数据维度:", X.shape)
print("降维后数据维度:", X_projected.shape)# 可视化降维后的数据(投影到2D平面)
plt.figure(figsize=(8, 6))
plt.scatter(X_projected[:, 0], X_projected[:, 1], c='blue', marker='o')
plt.title('Random Projection to 2D')
plt.xlabel('Component 1')
plt.ylabel('Component 2')
plt.show()

代码解析

  • 1、生成了一个 100x50 的高维随机数据集 ( X ) ( \mathbf{X} ) (X)
  • 2、使用 Scikit-learn 的 GaussianRandomProjection 进行降维,将数据降到 10 维;
  • 3、输出数据降维前后的维度并进行可视化(将其进一步投影到2D平面);

在这里插入图片描述

3、总结

随机投影是一种高效且简单的降维技术,通过将高维数据投射到低维随机子空间中,可以近似保留数据的距离关系。

虽然其理论基础相对简单,但在处理大规模和高维数据时非常有效,具有较高的计算效率。

掌握随机投影的基本原理和实现方法,对于应对大数据和高维数据的挑战有重要意义。

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 企业认证金牌面试官
  • 多个名企认证&特邀讲师等
  • 名企签约职场面试培训、职场规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)评测一等奖获得者

关注小鱼,学习【机器学习】&【深度学习】领域的知识。

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

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

相关文章

浙江保融科技2025实习生校招校招笔试分享

笔试算法题一共是有4道,第一道是手搓模拟实现一个ArrayList,第二道是判断字符串是否回文,第三道是用代码实现1到2种设计模式。 目录 一.模拟实现ArrayList 二.判断字符串是否回文 ▐ 解法一 ▐ 解法二 ▐ 解法三 三.代码实现设计模式 一…

网络协议安全:TCP/IP协议栈的安全问题和解决方案

「作者简介」:北京冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础对安全知识体系进行总结与归纳,著作适用于快速入门的 《网络安全自学教程》,内容涵盖Web安全、系统安全等12个知识域的一百多个知识点,持续更新。 这一章节我们需要知道TCP/IP每…

大模型扫盲系列——大模型实用技术介绍_大模型底层技术是哪些

Gemma模型架构和参数计算 近期,大模型相关的技术和应用层出不穷,各个方向的论文百花齐放,底层的核心技术是大家公认的精华部分。本文从技术的角度聚焦大模型的实战经验,总结大模型从业者关注的具体方向以及相关发展,帮…

干货 | 如何进行群体DNA甲基化分析

目前,针对群体的研究基本上还是以重测序为主,基于对遗传多样性丰富的自然群体中的个体进行全基因组重测序,研究物种遗传进化多样性,结合准确的目标性状的表型数据及统计方法进行全基因组关联分析,可对动植物复杂农艺性…

MEME使用-motif分析(生物信息学工具-24)

01 背景 Motif分析是一种在生物信息学和计算生物学中广泛应用的技术,用于识别DNA、RNA或蛋白质序列中具有生物学功能的短保守序列模式(motif)。这些motif通常与特定的生物学功能相关,如DNA中的转录因子结合位点、RNA中的剪接位点…

最新Springboot小程序医院核酸检测服务系统

采用技术 最新Springboot小程序医院核酸检测服务系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringBootMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 管理员页面 医护人员管理 普通管理员管理 接种进…

稳定安全生产设备日志采集工具

免费试用下载: Gitee下载 最新版本 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

vector oj题 和 位运算

知识点1: lowbit(x) 简介:众所周知,lowbit()操作是算法竞赛中的高级技巧,特别是高级数据结构,线段树的核心,还有什么二进制与位运算题目,而本文就用最通俗易懂的话,来教会大家lowbi…

【MySQL系列】MySQL 字符集的演变与选择

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

[信号与系统]有关滤波器的一些知识背景

前言 最近在看FIR和IIR,本文作为前置,需要在理解这两种滤波器之前阅读。 本文内容会详细讲述一下有关滤波器的技术要求。 选频滤波器的频率响应 选频滤波器(Selective Frequency Filter)的频率响应是描述该滤波器在不同频率下…

中国企业数字化转型现状、趋势和挑战

一、来自不同行业、不同所有制的145家企业的调查 为了了解中国企业数字化转型的现状、趋势和挑战,2022年我们完成了一次在线问卷调查。 受访企业达145家,国内企业111家,占比77%(其中央企占总比例51%),民营…

【数据结构与算法(C语言)】离散事件模拟- 单链表和队列的混合实际应用

目录 1. 前言2. 流程图3. 数据结构3.1 单链表3.2 链式队列 4. 核心函数4.1 银行业务模拟 void BankSimulation()4.2 初始化 void OpenForDay()4.3 客户到达 void CustomerArrived(Event en)4.4 客户离开 void CustomerArrived(Event en) 5. 非核心函数5.1 新建客户 NewCustomer…

Redis精要

一、什么是缓存击穿、缓存穿透、缓存雪崩? 缓存穿透 【针对大量非法访问的请求,缓存中没有,直接访问DB】 缓存穿透指的查询缓存和数据库中都不存在的数据,这样每次请求直接打到数据库,就好像缓存不存在 一样。 对于系…

JVM-GC-常用调优命令和GC参数

定位问题常用命令 top:查看内存/CPU占用情况top -Hp pid: 查看进程内线程情况jsp:查看java进程情况jstack 线程pid:查看进程内线程信息,一般查看线程状态,判断是否死锁。重点观察:WAITING、BLOCKED的线程,另外查看wait…

全面的WAS存储权限管理方案,了解一下

WAS存储权限管理通常指的是对Windows Azure Storage(WAS)的存储设备进行权限控制和管理。在企业中,随着数据量的飞速增长,对存储设备的安全性、效率和成本的关注也日益增加。有效的WAS存储权限管理可以确保数据的安全性&#xff0…

UV胶带和UV胶水的应用场景有哪些不同吗?

UV胶带和UV胶水的应用场景有哪些不同吗? UV胶带和UV胶水的应用场景确实存在不同之处,以下是详细的比较和归纳: 一:按使用场景来看: UV胶带的应用场景: 包装行业:UV胶带在包装行业中常用于食品包装、药…

深圳比创达电子|EMC与EMI一站式解决方案:源头到终端的全面防护

随着电子技术的飞速发展,电磁兼容性(EMC)和电磁干扰(EMI)问题日益成为产品研发和生产的关键因素。为了帮助企业更好地应对这些挑战。 一、EMC与EMI的基本概述 电磁兼容性(EMC)是指设备或系统在…

【Linux】ss 命令使用详解

目录 一、ss命令介绍 二、ss命令格式和使用 1、命令格式 2、ss命令的常用选项 3、命令的常见用法 3.1 找出打开套接字/端口应用程序 3.2 检查系统的监听套接字 3.3 显示所有状态为established的SMTP连接 3.4 查看建立的 TCP 连接 3.5 通过 -r 选项解析 IP 和端口号 …

12通道温振信号采集卡

12 通道智能数据采集器,以下简称 SG-Vib-S12。 SG-Vib-S12 旨在帮助用户对工业生产中的设备健康状况进行监测与诊断, 降低因设备故障对生产过程产生的影响。SG-Vib-S12 输入同时兼容 IEP、ICP 两 线制、三线制(振温一体)传感器&…

【html】如何利用hbuilderX 开发一个自己的app并安装在手机上运行

引言: 相信大家都非常想开发一款自己的apk,手机应用程序,今天就教大家,如何用hbuilderX 开发一个自己的app并安装在手机上运行。 步骤讲解: 打开hbuilderX ,选择新建项目 2.选择5app,想一个名字&#x…