news 2026/3/10 22:09:50

【实战】不同数据类型下的处理方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【实战】不同数据类型下的处理方案

一、问题背景

在结构化数据与时序数据建模中,模型性能的上限往往并不由网络结构本身决定,而是由特征语义是否被正确表达所决定。传统“数值型 / 类别型”二分法已无法满足深度学习建模需求。

核心结论:

入参数据至少应区分为多种语义形态,不同形态必须采用不同的数值化与模型接入方式,否则模型将被迫学习错误结构。

二、分类体系

连续数值型

定义:具有明确大小、距离和比例意义的连续变量。

典型示例

  • 年龄

处理方式

  • StandardScaler / RobustScaler
  • 直接作为连续输入特征

离散类别型

定义:无顺序、无大小,仅表示“类别差异”。
典型示例

  • 国家
  • 地区
    不推荐方式
  • 直接数值编码(引入伪顺序)
  • 高维 One-Hot(维度膨胀、稀疏)

推荐方式:Embedding

self.embeddings=nn.ModuleList([nn.Embedding(size,embedding_dim)forsizeincate_sizes])

理论依据

  • Embedding 是可学习的语义映射
  • 能在低维连续空间中表达类别相似性

有序类别型

定义:存在顺序关系,但无严格比例意义。
示例

  • 风险等级(1–5)
  • 车况等级(差 / 中 / 好)

处理策略

  • 业务含义清晰 → 数值化
  • 语义复杂 → Embedding

周期型时间特征

定义:具有周期闭环结构的时间变量。
典型示例

  • weekday(1–7)
  • month(1–12)
  • hour(0–23)
    错误方式
  • 直接数值输入
  • Embedding

推荐方式:Sin/Cos 周期编码

df['weekday_sin']=np.sin(2*np.pi*df['weekday']/7)df['weekday_cos']=np.cos(2*np.pi*df['weekday']/7)

时间差/累积型

定义:表示时间间隔或累计长度。

示例

  • 购车时间
  • 在线时间

处理方式

  • 数值化
  • 标准化

状态 / 事件型

定义:离散状态,语义强,无连续意义。
示例

  • 是否节假日
  • 是否促销期
  • 是否政策窗口期

处理方式

  • Binary + Embedding
  • Multi-class Embedding

序列型特征

定义:当前状态依赖历史序列。
示例

  • 历史价格
  • 历史成交量

模型适配

  • CNN / LSTM / Transformer
  • 不适合普通 DNN

三、处理方法

数据分类体系

类型示例处理方式
数值连续型功率、里程、V0–V14标准化/归一化 → 直接输入 ANN/CNN/LSTM
离散类别型品牌、车型、地区Embedding → 学习稠密表示
有序类别型车龄档位、配置等级可映射为数值(归一化)或 Embedding
周期型时间月份、星期、小时sin/cos 映射 → 数值特征输入
二值状态型是否事故、是否个人卖家0/1 → 数值输入即可
高维匿名特征V0–V14数值标准化 → ANN/CNN 输入

各类特征处理方案

数值型特征
  • 示例:power, kilometer, V0-V14
  • 处理:标准化 / 归一化
  • 网络子模块:
self.num_net=nn.Sequential(nn.Linear(num_dim,64),nn.ReLU(),nn.Linear(64,32))
离散类别型
  • 示例:brand, model, regionCode, bodyType
  • ❌ 不可直接编号 → 数值大小无意义
  • ✅ 使用 Embedding:
self.embeddings=nn.ModuleList([nn.Embedding(size,8)forsizeincate_sizes])

Embedding 本质:把类别映射到可学习的稠密向量空间,保留语义相似性。

有序类别型
  • 示例:车龄档位(0–5年、5–10年、10年以上)
  • 方案 A(推荐):当作数值 → 标准化输入
  • 方案 B:Embedding(非线性关系强时)
周期型时间特征
  • 示例:月份、星期
  • ❌ 直接输入会引入假序关系
  • ✅ sin/cos 映射:
df['month_sin']=np.sin(2*np.pi*df['month']/12)df['month_cos']=np.cos(2*np.pi*df['month']/12)df['weekday_sin']=np.sin(2*np.pi*df['weekday']/7)df['weekday_cos']=np.cos(2*np.pi*df['weekday']/7)
  • 转化为数值特征输入 ANN
二值状态特征
  • 示例:notRepairedDamage, seller
  • 直接 0/1 输入即可

四、模型结构修改

ANN算法

importtorchimporttorch.nnasnnclassCarPriceANN(nn.Module):def__init__(self,num_dim,cate_sizes):super().__init__()# 数值子网络self.num_net=nn.Sequential(nn.Linear(num_dim,64),nn.ReLU(),nn.Linear(64,32))# 类别 Embeddingself.embeddings=nn.ModuleList([nn.Embedding(size,8)forsizeincate_sizes])fusion_dim=32+len(cate_sizes)*8# 融合网络self.fc=nn.Sequential(nn.Linear(fusion_dim,64),nn.ReLU(),nn.Dropout(0.2),nn.Linear(64,1))defforward(self,x_num,x_cate):num_feat=self.num_net(x_num)cate_feat=torch.cat([emb(x_cate[:,i])fori,embinenumerate(self.embeddings)],dim=1)x=torch.cat([num_feat,cate_feat],dim=1)returnself.fc(x).squeeze()

CNN + LSTM算法

特征类型适合 LSTM?
时间序列数值
周期型时间✅(sin/cos 后)
类别型❌ → Embedding 后拼接
静态属性❌ → 后融合 MLP
classCarPriceCNNLSTM(nn.Module):def__init__(self,num_feat_dim,cate_sizes,emb_dim=8):super().__init__()self.embeddings=nn.ModuleList([nn.Embedding(size,emb_dim)forsizeincate_sizes])self.conv=nn.Conv1d(num_feat_dim,64,kernel_size=3,padding=1)self.lstm=nn.LSTM(64,64,batch_first=True)fusion_dim=64+len(cate_sizes)*emb_dim self.fc=nn.Sequential(nn.Linear(fusion_dim,64),nn.ReLU(),nn.Linear(64,1))defforward(self,x_seq,x_cate):x=x_seq.transpose(1,2)# [B, C, T]x=self.conv(x)x=x.transpose(1,2)# [B, T, C]_,(h_n,_)=self.lstm(x)seq_feat=h_n[-1]cate_feat=torch.cat([emb(x_cate[:,i])fori,embinenumerate(self.embeddings)],dim=1)x=torch.cat([seq_feat,cate_feat],dim=1)returnself.fc(x).squeeze()

五、总结

在结构化与序列混合特征建模中,数据语义表达的正确性远比网络复杂度更关键,总结如下核心原则:

  1. 多维分类入参策略

    • 数值型:标准化 / 归一化 → 直接输入
    • 离散类别型:Embedding → 可学习稠密向量
    • 有序类别型:数值化或Embedding(取决于非线性关系)
    • 周期型:Sin/Cos 编码 → 数值输入
    • 二值状态/事件型:0/1 或 Embedding
    • 序列型特征:CNN / LSTM / Transformer 建模
  2. 网络设计原则

    • 子网络独立处理:不同特征类型在模型中应先独立编码或提取表示
    • 特征融合:数值特征 + 类别 Embedding → 融合层 → 回归输出
    • 时间序列特征:通过 CNN / LSTM 提取动态模式,再与静态特征融合
  3. 建模实质

    • 核心目标是让模型理解特征语义,而不是盲目堆叠输入
    • 多输入网络(Multi-Input Neural Network)是表格和混合特征预测的首选方案
    • ANN 适合静态表格数据,CNN+LSTM 适合历史序列或时间窗口建模
  4. 工程建议

    • 特征处理应与业务理解结合,避免引入伪顺序或错误关联
    • Embedding 维度可调,过大易过拟合,过小易欠拟合
    • 周期型特征必须转换,否则模型难以捕捉周期规律
    • 对序列特征,可选滑动窗口 + CNN/LSTM 提取局部和全局模式

总结一句话

模型性能的上限不在网络结构,而在于特征的语义表达与正确编码;合理分类、独立编码、融合建模,是表格+序列深度学习预测的工业级实践标准。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 17:48:56

【Open-AutoGLM点咖啡全解析】:揭秘AI自动点单系统背后的技术黑科技

第一章:Open-AutoGLM点咖啡系统概述Open-AutoGLM点咖啡系统是一套基于大语言模型与自动化控制技术融合的智能饮品定制平台,旨在通过自然语言交互实现个性化咖啡制作流程的全链路自动化。该系统结合了语义理解、任务编排、设备联动和用户偏好学习等核心技…

作者头像 李华
网站建设 2026/2/18 3:17:48

好写作AI:你的领域专属,深度学习驱动的学科适配与术语库

你是否曾感叹:通用的写作工具,难以理解你所在学科的“行话”与独特逻辑?好写作AI采用深度学习驱动的核心技术,实现真正的学科深度适配,并构建了庞大、精准、动态的领域专属术语库。它不仅仅是一个写作工具,…

作者头像 李华
网站建设 2026/3/9 6:59:40

好写作AI:保护你的创意,隐私安全与原创性双重保障

在将珍贵的研究灵感与思想结晶托付给一个AI工具时,你最关心的两个问题一定是:“我的想法安全吗?” 和 “我的作品还是原创的吗?” 好写作AI自诞生之初,就将 隐私安全 与 原创性保障 视为产品生命线。我们坚信&#xff…

作者头像 李华
网站建设 2026/3/10 5:07:55

基于随机森林的共享单车投放量分析与预测任务书

河北东方学院本科毕业论文(设计)任务书题 目宋体五号居中学 院人工智能学院专 业宋体五号居中班级与教务系统班级一致学生姓名宋体五号居中指导教师张三(讲师)日 期2024年10月20日毕业论文(设计&#xff0…

作者头像 李华
网站建设 2026/3/9 14:43:32

政府信息公开查询系统改造——采用anything-llm提升服务体验

政府信息公开查询系统改造——采用anything-LLM提升服务体验 在政务服务日益智能化的今天,公众对政策信息获取的期待早已超越“能查到”,转向“查得快、问得懂、答得准”。然而现实是,许多政府网站的信息公开栏目仍停留在“文件堆砌”模式&am…

作者头像 李华