机器学习中的数据表示
机器学习中的数据表示在机器学习中数据是模型的“燃料”。但原始数据往往不直接适用于算法需要经过一系列转换、编码和结构化处理才能被模型有效利用。数据表示的质量直接影响模型性能甚至决定了模型能否收敛。本文将从实战角度出发演示如何将不同类型的数据数值、文本、图像转化为机器学习可用的表示形式。### 1. 为什么数据表示如此重要机器学习模型本质上是在高维空间中进行数学运算如矩阵乘法、梯度下降。如果数据不能用数值向量或张量表示模型将无法处理。例如- 文本“猫”无法直接输入线性回归模型。- 图像像素的排列顺序决定了模型能否捕捉到空间特征。- 类别型数据如果直接编码为整数如0,1,2可能被模型误解为有大小关系。因此数据表示的核心目标是在保持信息完整性的前提下将原始数据转换为机器可计算的数值结构。### 2. 数值数据的表示与标准化数值数据是最简单的形式但即使如此也需要考虑尺度问题。假设我们有一个房价数据集包含“面积平方米”和“房间数”两列它们数值范围差异很大面积可能100-500房间数1-5。如果不做处理模型会认为面积更重要。以下代码演示了如何对数值数据进行标准化Z-score标准化使其均值为0标准差为1pythonimport numpy as npfrom sklearn.preprocessing import StandardScaler# 模拟原始数据100个样本2个特征np.random.seed(42)area np.random.uniform(50, 500, 100) # 面积范围50-500rooms np.random.randint(1, 6, 100) # 房间数1-5data np.column_stack((area, rooms))print(原始数据前5行:)print(data[:5])# 标准化处理scaler StandardScaler()data_scaled scaler.fit_transform(data)print(\n标准化后数据前5行:)print(data_scaled[:5])print(f\n标准化后均值: {np.mean(data_scaled, axis0)})print(f标准化后标准差: {np.std(data_scaled, axis0)})输出示例原始数据前5行:[[341. 4.] [292. 4.] [115. 3.] [ 65. 2.] [459. 5.]]标准化后数据前5行:[[ 0.82 0.41] [ 0.51 0.41] [-0.72 -0.32] [-1.15 -1.06] [ 1.54 1.15]]标准化后均值: [-1.11e-16 1.48e-16]标准化后标准差: [1. 1.]关键点标准化后数据分布近似正态分布数值范围一致避免了特征尺度差异带来的权重偏差。### 3. 文本数据的向量化表示文本是非结构化数据的典型代表。常见方法包括词袋模型Bag of Words、TF-IDF和词嵌入。这里我们用TF-IDF演示因为它能抑制常见词的权重突出重要词汇。pythonfrom sklearn.feature_extraction.text import TfidfVectorizerimport pandas as pd# 示例文档集合documents [ 机器学习是人工智能的核心, 深度学习需要大量数据, 机器学习模型需要训练数据, 自然语言处理是人工智能的重要分支]# 创建TF-IDF向量器vectorizer TfidfVectorizer(token_patternr\w, max_features10) # 限制最多10个特征# 计算TF-IDF矩阵tfidf_matrix vectorizer.fit_transform(documents)# 转换为DataFrame便于查看feature_names vectorizer.get_feature_names_out()df_tfidf pd.DataFrame(tfidf_matrix.toarray(), columnsfeature_names)print(TF-IDF矩阵4个文档 x 10个特征:)print(df_tfidf)# 查看词汇表print(\n词汇表:)print(vectorizer.vocabulary_)输出示例TF-IDF矩阵4个文档 x 10个特征: 人工智能 学习 数据 模型 训练 机器 深度 处理 需要 重要0 0.447 0.447 0.000 0.000 0.000 0.447 0.000 0.000 0.000 0.0001 0.000 0.000 0.447 0.000 0.000 0.000 0.447 0.000 0.447 0.0002 0.000 0.447 0.447 0.447 0.447 0.447 0.000 0.000 0.000 0.0003 0.447 0.000 0.000 0.000 0.000 0.000 0.000 0.447 0.000 0.447词汇表:{机器学习: 6, 是: ...省略部分关键点每个文档被转换为一个稀疏向量维度由词汇表大小决定。TF-IDF值高的词在文档中重要且不常见。注意这里token_pattern用于控制分词规则max_features限制维度避免过拟合。### 4. 图像数据的张量表示图像通常表示为三维张量高度、宽度、通道数RGB。深度学习框架如TensorFlow/PyTorch内置了图像加载和转换功能。以下代码用OpenCV演示如何将彩色图像转换为灰度并标准化pythonimport cv2import numpy as npimport matplotlib.pyplot as plt# 生成一个模拟的随机图像真实场景中可用cv2.imread加载np.random.seed(42)image np.random.randint(0, 256, (100, 100, 3), dtypenp.uint8) # 100x100彩色图像print(原始图像形状:, image.shape) # (100, 100, 3)print(像素值范围:, image.min(), -, image.max())# 转换为灰度图像丢弃颜色通道gray_image cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)print(\n灰度图像形状:, gray_image.shape) # (100, 100)# 标准化到[0,1]范围gray_normalized gray_image.astype(np.float32) / 255.0print(标准化后像素值范围:, gray_normalized.min(), -, gray_normalized.max())# 可选增加通道维度以适应CNN输入input_tensor np.expand_dims(gray_normalized, axis-1) # (100, 100, 1)print(最终张量形状:, input_tensor.shape)# 可视化对比plt.figure(figsize(10,4))plt.subplot(1,2,1)plt.imshow(image)plt.title(原始彩色图像)plt.subplot(1,2,2)plt.imshow(gray_normalized, cmapgray)plt.title(灰度标准化图像)plt.show()关键点- 图像数据通常需要归一化到[0,1]或[-1,1]区间加速模型收敛。- 灰度图像只有1个通道彩色图像有3个通道。- 深度学习模型通常要求固定输入尺寸因此还需进行resize操作。### 5. 类别型数据的编码类别数据如颜色红、绿、蓝不能直接输入模型。常见编码方式-Label Encoding将类别映射为整数如红0, 绿1, 蓝2但可能引入虚假顺序。-One-Hot Encoding创建二进制向量每个类别对应一个维度。以下代码展示两种方法的差异pythonfrom sklearn.preprocessing import LabelEncoder, OneHotEncoderimport numpy as np# 原始类别数据categories np.array([红色, 绿色, 蓝色, 红色, 蓝色])# Label Encodinglabel_encoder LabelEncoder()labels label_encoder.fit_transform(categories)print(Label Encoding结果:, labels)print(类别映射:, dict(zip(label_encoder.classes_, range(len(label_encoder.classes_)))))# One-Hot Encodingonehot_encoder OneHotEncoder(sparse_outputFalse) # 返回密集矩阵categories_reshaped categories.reshape(-1, 1) # 需要2D输入onehot onehot_encoder.fit_transform(categories_reshaped)print(\nOne-Hot Encoding结果:)print(onehot)print(类别映射:, onehot_encoder.categories_)输出示例Label Encoding结果: [0 1 2 0 2]类别映射: {红色: 0, 绿色: 1, 蓝色: 2}One-Hot Encoding结果:[[1. 0. 0.] [0. 1. 0.] [0. 0. 1.] [1. 0. 0.] [0. 0. 1.]]类别映射: [array([红色, 绿色, 蓝色], dtypeU2)]关键点对于无序类别如颜色One-Hot Encoding是更安全的选择因为它不暗示任何顺序关系。对于有序类别如学历小学中学大学Label Encoding可能更合适。### 6. 混合数据的统一表示实际项目中数据往往混合了数值、类别、文本等多种类型。处理策略通常是1.数值特征标准化或归一化。2.类别特征One-Hot Encoding或Embedding。3.文本特征TF-IDF或词嵌入。4.拼接所有特征向量形成最终输入。以下是一个简单示例展示如何将数值和类别特征合并pythonimport pandas as pdfrom sklearn.compose import ColumnTransformerfrom sklearn.preprocessing import StandardScaler, OneHotEncoder# 模拟混合数据data pd.DataFrame({ 面积: [120, 85, 200, 95], 房间数: [3, 2, 4, 2], 朝向: [南, 北, 东, 南], 价格: [300, 220, 500, 260] # 目标变量})# 定义预处理步骤preprocessor ColumnTransformer( transformers[ (num, StandardScaler(), [面积, 房间数]), # 数值特征标准化 (cat, OneHotEncoder(), [朝向]) # 类别特征One-Hot ])# 对特征进行转换不包括目标变量features data.drop(价格, axis1)transformed preprocessor.fit_transform(features)print(转换后的特征矩阵:)print(pd.DataFrame(transformed).head())print(f\n特征维度: {transformed.shape}) # 4个样本 x (2数值特征 3类别特征)输出示例转换后的特征矩阵: 0 1 2 3 40 -0.258 0.258 1.0 0.0 0.01 -1.291 -1.032 0.0 1.0 0.02 1.806 1.548 0.0 0.0 1.03 -0.258 -0.774 1.0 0.0 0.0特征维度: (4, 5)关键点ColumnTransformer允许对不同类型的列应用不同的转换器自动处理混合数据。最终特征矩阵包含标准化后的数值和One-Hot编码的类别。### 总结数据表示是机器学习流水线的基石。本文通过实战代码展示了1.数值数据需要标准化处理避免特征尺度失衡。2.文本数据可通过TF-IDF等向量化方法转化为稀疏特征。3.图像数据表示为三维张量并需归一化到统一范围。4.类别数据使用One-Hot编码避免引入虚假顺序。5.混合数据通过ColumnTransformer等工具统一处理。在实际工程中数据表示策略需要根据模型类型如决策树对尺度不敏感、数据规模和业务需求灵活调整。例如高维稀疏特征如One-Hot编码后的文本数据可能适合线性模型而密集嵌入如Word2Vec更适合深度学习。掌握这些基础表示方法是构建高效机器学习系统的第一步。

相关新闻

【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?

【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?

【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢? 作为一名经常与Azure打交道的开发者,你可能遇到过这样的场景:应用突然变慢、API请求超时、或者数据库连接失败,这时你第一个想到的就是——我的App Se…

2026/7/27 21:15:34阅读更多 →
TMS320VC5501 GPIO与外部总线控制寄存器深度解析与实战配置

TMS320VC5501 GPIO与外部总线控制寄存器深度解析与实战配置

1. 项目概述与核心价值 在嵌入式DSP开发领域,尤其是面对像TI TMS320VC5501这类经典的定点数字信号处理器时,很多工程师的入门第一课往往是从点灯开始的。但点灯背后,远不止是写一行 GPIO_SetHigh 那么简单。它涉及到对芯片引脚复用、电源域…

2026/7/27 21:13:34阅读更多 →
Q-learning算法在能源市场中的优化应用与实践

Q-learning算法在能源市场中的优化应用与实践

1. Q-learning算法在能源市场中的应用背景 能源市场正经历着前所未有的变革与挑战。随着可再生能源占比的持续提升和市场化改革的深入推进,传统的能源决策方法已经难以应对日益复杂的市场环境。我在参与某省级电力交易中心优化项目时,曾亲眼目睹传统线性…

2026/7/27 21:13:34阅读更多 →
GBase 8s SSC共享存储集群以硬核实力入选2026产业图谱

GBase 8s SSC共享存储集群以硬核实力入选2026产业图谱

2026可信数据库大会重磅发布新版中国数据库产业图谱,首次新增共享存储架构数据库独立赛道,南大通用GBase 8s SSC共享存储集群(gbase database)成功入选,获得行业权威背书。作为适配政企核心业务的国产数据库架构方案&a…

2026/7/28 0:58:54阅读更多 →
高管邮件秒回率提升81%的秘密:基于NLP情感熵值分析的AI润色模型

高管邮件秒回率提升81%的秘密:基于NLP情感熵值分析的AI润色模型

更多请点击: https://kaifayun.com 第一章:高管邮件秒回率提升81%的秘密:基于NLP情感熵值分析的AI润色模型 在企业通信场景中,高管收件箱日均处理邮件超127封,但平均响应延迟达4.3小时。传统“礼貌性润色”仅优化措辞…

2026/7/28 0:58:54阅读更多 →
Dify性能瓶颈诊断:CPU飙升87%?内存泄漏定位→压测报告→优化前后QPS对比(附可复用监控脚本)

Dify性能瓶颈诊断:CPU飙升87%?内存泄漏定位→压测报告→优化前后QPS对比(附可复用监控脚本)

更多请点击: https://codechina.net 第一章:Dify性能瓶颈诊断:CPU飙升87%?内存泄漏定位→压测报告→优化前后QPS对比(附可复用监控脚本) CPU与内存异常捕获实战 当Dify服务在生产环境突发CPU使用率飙升至…

2026/7/28 0:58:54阅读更多 →
如何快速掌握NomNom存档编辑器:No Man‘s Sky新手完全指南

如何快速掌握NomNom存档编辑器:No Man‘s Sky新手完全指南

如何快速掌握NomNom存档编辑器:No Mans Sky新手完全指南 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item in…

2026/7/28 0:58:54阅读更多 →
企业元宇宙架构设计:核心原则与实施挑战

企业元宇宙架构设计:核心原则与实施挑战

1. 企业元宇宙架构设计的行业背景与挑战企业元宇宙正在从概念验证阶段迈向规模化落地,这背后是数字化转型浪潮与新兴技术融合的双重推动。根据Gartner最新技术成熟度曲线,企业元宇宙已进入"期望膨胀期"峰值,预计未来2-5年将进入实质…

2026/7/28 0:58:54阅读更多 →
2026年终预测:AI 漫剧的终局是什么?普通人现在入局还来得及吗?

2026年终预测:AI 漫剧的终局是什么?普通人现在入局还来得及吗?

2026年的AI漫剧赛道已然度过了最初“拼画质”的野蛮生长阶段,步入以剧情原创度、IP生命力以及多模态管线协同为核心的深水区。单打独斗的创作者逐渐发现,单纯比拼单张图的精细度已无法拉开差距,真正的壁垒在于全流程的整合效率。在此趋势下&a…

2026/7/28 0:56:54阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/27 1:14:34阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/27 1:14:52阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/27 1:14:56阅读更多 →
告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生

告别臃肿!3步让你的暗影精灵笔记本重获新生 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否也曾为官方Om…

2026/7/28 0:00:29阅读更多 →
RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

RAG必踩坑!财报法规检索不准?这款开源工具让答案浮出水面,准确率飙升98.7%!

做 RAG 的人应该都踩过这个致命的坑:把几百页的财报、法规、技术手册扔给向量库,问一个具体问题,搜出来的全是沾边但没用的内容 —— 关键信息要么被硬切块拆碎了,要么藏在几十条结果的最下面。语义相似≠真正相关,这个…

2026/7/28 0:00:29阅读更多 →
抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

抖音视频文案提取工具全指南:免费2026版、手机App、在线工具一网打尽

2026年做短视频运营,从抖音上扒文案早就不是偷偷抄笔记的事了。我刚开始做内容的时候,每天刷半小时抖音,手动把爆款视频的口播敲进备忘录,一条2分钟的视频得花十来分钟,碰到语速快的还要反复回听。后来试了一圈工具&am…

2026/7/28 0:00:29阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/27 16:57:54阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/26 19:05:21阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/26 19:05:21阅读更多 →