人工稚能之sklearn数据降维

sklearn-降维算法 sklearn中的降维算法 主成分分析PCA class sklearn.decomposition.PCA (n_components=None, copy=True, whiten=False, svd_solver=’auto’, tol=0.0, iterated_power=’auto’, random_state=None) 特征选择是从已存在的特征中选取携带信息最多的,选完之后的特征依然具有可解释性,我们依然知道这个特 征在原数据的哪个位置,代表着原数据上的什么含义。 而PCA,是将 阅读详情

640?wx_fmt=jpeg


机器学习模型拟合的输入数据往往是多维数据,这个维度可能会非常庞大。比如统计一篇文章中的单词频率,就可以把文章看成单词的向量。而单词的数量又是非常庞大,每个单词都是一个维度,这样大维度的数据在拟合时会非常耗费计算资源,也就是说出现了维度灾难。


遇到维度灾难,我们一般都会使用降维算法来压缩数据量,以减少模型训练消耗的存储资源和计算资源。


对于维度大的数据,维度之间往往会存在相关性,这种相关性导致数据产生了冗余。比如两条信息,一条说这个人是个男的,第二条说这个人不是女的,那这两条信息就是相关的,就可以灭掉一条。降维的作用就是消除这种冗余信息。降维还可以用来剔去信息量小的信息,来实现信息的压缩。比如图片就可以使用降维算法来实现压缩。

640?wx_fmt=jpeg

一种比较常用的降维算法是PCA算法【主成分分析】,它的原理是数学上的SVD矩阵分解算法。具体的公式这里不能细说,因为我也不想吓跑一半读者。

640?wx_fmt=jpeg

打个比方说一张女人图片,我们如何判定这个女人是不是美女呢。我们会看比较关键的一些特征,比如说脸好不好看,胸好不好看,屁股怎么样,腿怎么样,至于衣服上是某个花纹还是手臂上有一个小痔还是,这些特征我们都是不关心的,就可以过滤掉。我们关心的是主成分,也就是对结果贡献系数较大的特征。SVD算法的作用就是来告诉你哪些特征是重要的,有多重要,哪些特征是不重要的,是可以忽略的。


接下来我们使用sklearn提供的TruncatedSVD模块来对美女图片进行压缩。


首先我们使用matplotlib显示一张美女png图片,png图片的格式非常简单,每一个像素有三个维度的颜色值RGB,整个图片就是一个「height x width x 3」维的矩阵。


我们先使用matplotlib显示一下美女图片

# -*- coding: utf-8 -*-
import matplotlib.pyplot as plt
import matplotlib.image as img

# 读入图片矩阵600*900*3
img_matrix = img.imread('beauty.png')

plt.imshow(img_matrix)
plt.show()

640?wx_fmt=jpeg

接下来我们进行SVD转换,先将图像RGB三个通道数据分别转换到特征空间,再从特征空间还原会通道数据,然后将三个处理后的通道数据合并成图像数据显示出来,对比和原始图像的差异。

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as img
from sklearn.decomposition import TruncatedSVD

# 加载png数据矩阵
img_array = img.imread('beauty.png')
shape = img_array.shape

# 高度、宽度、RGB通道数=3
height, width, channels = shape[0], shape[1], shape[2]

# 转换成numpy array
img_matrix = np.array(img_array)

# 存储RGB三个通道转换后的数据
planes = []

# RGB三个通道分别处理
for idx in range(channels):    # 提取通道    plane = img_matrix[:, :, idx]    # 转成二维矩阵    plane = np.reshape(plane, (height, width))    # 保留10个主成分    svd = TruncatedSVD(n_components=10)    # 拟合数据,进行矩阵分解,生成特征空间,剔去无关紧要的成分    svd.fit(plane)    # 将输入数据转换到特征空间    new_plane = svd.transform(plane)    # 再将特征空间的数据转换会数据空间    plane = svd.inverse_transform(new_plane)    # 存起来    planes.append(plane)

# 合并三个通道平面数据
img_matrix = np.dstack(planes)

# 显示处理后的图像
plt.imshow(img_matrix)

plt.show()

保留10个主成分效果图,马赛克有点严重,能看得出轮廓,只是看不清人脸了

640?wx_fmt=jpeg

保留50个主成分,有点像老式彩电的效果,差不多能辨识出是个美女了

640?wx_fmt=jpeg

保留100个主成分,基本很清晰了

640?wx_fmt=jpeg

那这个图像在不同的主成分数量下的压缩比例大概是多少呢?

这个例子中图像的大小是600 x 900,压缩后变成了两个矩阵,一个矩阵是600 x n_components,另一个矩阵是ncomponents x 900,还有其它一些微量的变量信息。那这个压缩比大约是 n_components x 15 / 5400,那么当保留50个主成分时,压缩率约为14%。当保留100个主成分时,压缩率约为28%。


阅读相关文章,关注公众号【码洞】

机器学习学习笔记(四)之特征降维 特征降维 降维是指在某些限定的条件下,降低随机变量(特征)的个数,得到一组‘不相关’的主变量的过程 效果:特征与特征之间不相关 1、降维的两种方式 特征选择 主成分分析 2、什么是特征选择? 定义:数据中包含冗余或相关变量(或称特征、属性、指标等),旨在从原有特征中找出主要特征。 方法: Filter(过滤式):主要探究特征本身特点、特征与特征和目标值之间关联 方差选择法:低方差特征过滤 相关系数 Embedded(嵌入式):算法自动选择特征(特征与目标值之间的关联) 决策树:信息熵、信息增熵 阅读详情

相关推荐

sklearn数据集使用全解析:从入门到实战

Scikit-learn(简称sklearn) 是Python中最受欢迎的机器学习库之一,基于NumPy、SciPy和Matplotlib构建,封装了分类、回归、聚类、降维等算法。其核心优势在于简洁的API设计和丰富的内置数据集,开发者只需几行代码即可完成数据加载、模型训练与评估。本文将深入解析sklearn数据集的使用方法,涵盖数据加载、生成、预处理及实战案例。

小李独爱秋的博客 2467

使用Sklearn学习降维算法PCA和SVD

1,概述 1.1,什么是维度? 我们先来解释一下维度的概念。 对于数组和Series来说,维度就是功能shape返回的结果,shape中返回了几个数字,就是几维。索引以外的数据,不分行列的叫一维(此时shape返回唯一的维度上的数据个数),有行列之分叫二维(shape返回行x列),也称为表。一张表最多二维,复数的表构成了更高的维度。当一个数组中存在2张3行4列的表时,shape返回的是(更高维,行,列)。当数组中存在2组2张3行4列的表时,数据就是4维,shape返回(2,2,3,4)。 数组中的每

理科男同学 6404

降维不是删特征,而是重构数据表达空间

降维(Dimensionality Reduction)是机器学习中处理高维数据的基础技术,其核心原理是在可控信息损失下,将原始高维空间映射至低维流形,以提升计算效率、增强可视化可解释性并强化模型抗噪与泛化能力。它并非简单删除冗余列,而是通过线性(如PCA、LDA)或非线性(如UMAP、t-SNE)方法重构数据内在结构,广泛应用于用户行为分析、工业缺陷检测、金融风控等场景。尤其在特征工程验证、边缘AI部署和业务可解释性需求强烈的任务中,降维成为连接算法输出与真实决策的关键桥梁。本文聚焦降维的本质理解、方法选

weixin_34050005的博客 390

sklearn入门——降维算法

概述

weixin_47037146的博客 1257

手把手教你用Xilinx Ultrascale+ FPGA解串12-bit ADC的LVDS信号(附Verilog代码)

本文详细介绍了如何使用Xilinx Ultrascale+ FPGA解串12-bit ADC的LVDS信号,涵盖硬件设计、时钟域处理和数据对齐等关键技术。通过Verilog代码实例和调试技巧,帮助工程师解决高速数据采集中的核心挑战,提升系统稳定性和性能。

weixin_42522964的博客 373

WSL2下用QEMU模拟ARM开发板:从编译uboot到调试全流程(附常见错误解决)

本文详细介绍了在WSL2环境下使用QEMU模拟ARM开发板的完整流程,包括uboot编译、内核调试等关键步骤。通过QEMU模拟vexpress-a9开发板,开发者可以高效搭建嵌入式开发环境,解决常见错误并提升开发效率。

solidity8miner的博客 286

Sklearn - 特征降维

Matrix Decomposition Feature Selection 一、利用特征提取进行特征降维 decomposition 1、PCA 主成分 2、对线性不可分数据进行特征降维 核机制 3、通过最大化类间可分性进行特征降维 4、使用矩阵分解进行特征降维 5、对稀疏矩阵进行特征降维 二、使用特征选择 进行降维 feature_selection 1、数值型特征方差的阈值化 2、二值特征的方差阈值化 3、处理高度相关性的特征 4、删除与分类任务不相关的特征 1)分类类型 2)数值型特征 3)Sele

AI工程化、开源分享、文档翻译、代码笔记 968

【头歌educoder】离散数学实训参考-第二章-关系-part1-关系基础

python实现离散数学-关系基础-二元关系

wander_alice的博客 8465

人工智障学习笔记——机器学习(13)LLE降维

一.概念 LLE:Locally linear embedding(局部线性嵌入算法)是一种非线性降维算法,它能够使降维后的数据较好地保持原有流形结构。LLE可以说是流形学习方法最经典的工作之一。和传统的PCA,LDA等关注样本方差的降维方法相比,LLE关注于降维时保持样本局部的线性特征,由于LLE在降维时保持了样本的局部特征。 二.算法 LLE算法认为每一个数据点都可以由其近邻点的

九日王朝 1万+

ALTERA Triple-Speed Ethernet IP核在UDP通信中的实战配置指南

本文详细介绍了在Intel FPGA(原ALTERA)平台上配置Triple-Speed Ethernet IP核以实现UDP通信的实战指南。内容涵盖从IP核选型、QSYS系统搭建、关键参数配置,到UDP数据包组装、NIOS C程序调试及上板验证的全流程,重点解析了如何利用该IP核快速构建稳定的千兆网通信基础,为FPGA网络应用开发提供清晰路径。

m3n5b7v8c9x的博客 515

i茅台APP加密参数逆向分析:MT-Device-ID与mt-v生成算法

在移动应用安全领域,参数加密是防止API滥用的重要手段。通过对通信协议的逆向分析,可以揭示加密参数的生成原理,这对理解移动应用安全机制具有重要意义。以i茅台APP为例,其关键接口使用了MT-Device-ID和mt-v两个加密参数,前者基于设备硬件信息生成,后者则通过动态签名机制确保请求时效性。这类技术广泛应用于电商、金融等需要高安全性的场景。通过抓包工具和逆向工程手段,可以还原出从设备指纹生成到动态签名的完整技术链条,其中涉及MD5、SHA256等常见哈希算法的应用。掌握这些加密参数的生成逻辑,不仅有助于

weixin_28568819的博客 321

人工稚能之sklearn分类

分类算法和聚类比较类似,都是将输入数据赋予一个标签类别。区别是分类算法的分类是预先确定的,有明确含义的。而聚类的标签是从输入数据本身的分布中提取出来的一种抽象的类别。聚类...

shellquery的博客 98

ERPS协议原理

目录 1、ERPS概述: 2、ERPS名词概念解释: 3、ERPS协议报文: 4、ERPS单环基本原理: 5、单环多实例原理: 6、多环原理: 1、ERPS概述: ERPS(Ethernet Ring Protection Switching),即以太网多环保护技术,是ITU-T定义的一种二层破环协议标准,标准号为ITU-T G.8032/Y1344,因此又称为G.8032。它定义了RAPS(Ring Auto Protection Switching)协议报文和保护倒换机制。 ERPS目前支持v1和v2两

weixin_44880796的博客 1万+

【sklearn】K-Means聚类与PCA降维实践 - 用户信用分群和分析

目的 本实验使用电信用户的通信行为数据集,进行用户信用分群和分析。由于是没有标注的训练样本,使用降维和聚类等无监督方法将用户进行分群,然后对不同群体数据进行人工分析,确定群体的信用行为特点。 数据 本实验中数据集来自开源的电信用户的通信行为数据集,共30000条数据,7个字段:入网时间、套餐价格、每月流量、每月话费、每月通话时长、欠费金额、欠费月份数。 实现代码 import pand...

秋天 7104

柔性电极材料新突破:清华团队实现0.1mV级脑信号采集精度

清华团队的 0.1mV 级柔性电极突破,不仅是材料科学与神经工程的跨界胜利,更标志着脑机接口从 “信号采集” 向 “神经交互” 的范式转变。当电极与脑组织实现 “柔性共生”,人类首次拥有了窥探大脑微观电活动的 “精密探头”,这既是神经疾病诊疗的里程碑,更是人机融合时代的新起点。随着技术标准化与产业生态的完善,这场始于实验室的 “柔性革命”,正加速向临床病房、智能工厂、消费电子等场景渗透,为脑机接口的大规模应用铺设 “柔性跑道”。:当柔性电极实现 “神经信号的无损捕捉”,如何平衡技术创新与伦理边界?

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2947

SOMEIP协议--第三节[SOMEIP/SD](SD格式)

Entry和Option是SD报文中最重要的内容,是服务发现功能的承载。7.Minor Version是指当前服务的小版本号,可以配置,用于给用户区分当前服务的版本用的。注意:stop offer,stop subscribe,Subscribe Nack 这三条的TTL一定设为0,唯一和offer,subscribe,Subscribe的区别。Option用来辅助Entry实现其功能,是Entry携带的附加信息,作用上一般是用来告诉对端自己业务的ip和port信息,方便对端通过ip和port发送报文。

qq_41816308的博客 1341

人工智障学习笔记——机器学习(12)LDA降维

一.概念 LDA:Linear Discriminant Analysis (也有叫做Fisher Linear Discriminant)。与PCA一样,是一种线性降维算法。不同于PCA只 会选择数据变化最大的方向,由于LDA是有监督的(分类标签),所以LDA会主要以类别为思考因素,使得投影后的样本尽可能可分。它通过在k维空间选择一个投影超平面,使得不同类别在该超平面上的投影之间的距离尽可能近

九日王朝 1万+

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

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

数据降维实战指南:从维度灾难到业务可解释性

数据降维是应对高维特征导致的计算膨胀、泛化下降与解释失效等工程痛点的核心技术。其本质并非数学压缩,而是通过线性(如PCA)或非线性(如UMAP)映射,在保留关键判别信息的前提下,重建数据的低维语义结构。技术价值在于平衡模型性能、推理效率与业务可理解性——例如用主成分载荷图锚定‘客户活跃度’,或借UMAP可视化验证故障聚类。典型应用场景覆盖实时推荐、风控建模、IoT异常检测及监管合规报告。本文聚焦工业级落地中的预处理校准、方法选型逻辑与三重效果验证,深度融合Data Science实践与业务语义解耦。

weixin_30825199的博客 512

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

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

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

Python数据降维方法:从PCA到t-SNE的全面解析

本文系统介绍了数据降维的核心概念、常用方法及应用场景,旨在帮助读者理解不同降维技术的原理和适用性。主要内容包括: 降维概述:解释了数据降维的定义、目标和分类(线性与非线性降维) 线性降维方法: PCA(主成分分析):通过正交变换保留最大方差信息 LDA(线性判别分析):有监督方法,最大化类间可分性 SVD(奇异值分解):矩阵分解技术,应用于推荐系统等 非线性降维方法: t-SNE:适合高维数据可视化,保持局部结构 UMAP:基于流形理论,性能优于t-SNE 自编码器:基于神经网络的深度学习方法 方法对比:提

YunYingLiang的博客 176

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

人工智障学习笔记——机器学习(11)PCA降维

一.概念 Principal Component Analysis(PCA):主成分分析法,是最常用的线性降维方法,它的目标是通过某种线性投影,将高维的数据映射到低维的空间中表示,即把原先的n个特征用数目更少的m个特征取代,新特征是旧特征的线性组合。并期望在所投影的维度上数据的方差最大,尽量使新的m个特征互不相关。从旧特征到新特征的映射捕获数据中的固有变异性。以此使用较少的数据维度,同时保留住较

九日王朝 7048

数据降维实战指南:从维度灾难到业务可解释的七步法

在机器学习与数据科学中,高维数据常引发计算膨胀、模型泛化失效和业务解释失语等核心问题,这本质上是‘维度灾难’在工程落地中的真实映射。其原理源于高维空间距离失效、特征冗余加剧及信息熵稀释,技术价值在于提升模型效率、增强鲁棒性并支撑可审计决策。典型应用场景覆盖用户行为分析、风控建模、IoT设备预测及医疗影像辅助诊断等需平衡精度与可解释性的工业级任务。本文聚焦数据工程师视角,融合PCA、UMAP与特征选择等主流方法,强调维度语义解耦、重建误差验证与业务指标对齐,避免陷入纯数学压缩误区,真正实现降维结果可复现、可诊

weixin_33937913的博客 600

python sklearn工具包_Sklearn工具包及模型评估

一、Sklearn工具包介绍scikit-learn,又写作sklearn,是一个开源的基于python语言的机器学习工具包。它通过NumPy, SciPy和Matplotlib等python数值计算的库实现高效的算法应用,并且涵盖了几乎所有主流机器学习算法。1、常用模块Sklearn中常用模块:分类(Classification)、回归(Regression)、聚类(Clustering)、降维...

weixin_32349223的博客 1949
上一篇: 人工稚能之sklearn分类
下一篇: 基于Netty实现Redis协议的编码解码器
codehole_
博客等级 码龄7年 34粉丝 132原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值