news 2026/6/23 16:59:00

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

作者头像

张小明

前端开发工程师

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/6/15 19:10:44

Open-AutoGLM源码下载后怎么做?专家教你5个高阶用法

第一章:Open-AutoGLM源码下载 获取 Open-AutoGLM 的源码是参与其开发与定制的第一步。该项目托管于公开代码仓库,开发者可通过 Git 工具完成克隆操作。 准备环境 在开始前,请确保本地已安装 Git 和 Python 3.8 环境。推荐使用虚拟环境以隔离…

作者头像 李华
网站建设 2026/6/21 21:27:48

火焰山组合 火焰山出现准备建仓把握时间

{}地线:0,LINETHICK2 COLOR6699FF; 强弱线:50,COLORGREEN,POINTDOT; VAR1:HHV(HIGH,9)-LLV(LOW,9); VAR2:HHV(HIGH,9)-CLOSE; VAR3:CLOSE-LLV(LOW,9); VAR4:VAR2/VAR1*100-70; VAR5:(CLOSE-LLV(LOW,60))/(HHV(HIGH,60)-LLV(LOW,60)); VAR6:(2*CLOSEHIGHLOW)/4; VAR7:SMA(VAR3/V…

作者头像 李华
网站建设 2026/6/23 1:09:30

基于随机森林的共享单车投放量分析与预测选题审批表

河北东方学院本科毕业论文(设计)选题审批表学院(宋体5号居中)班级与教务系统专业一致姓名(宋体5号居中)学号(宋体5号居中)指导教师姓名(宋体5号居中)指导教师职称(填写具…

作者头像 李华
网站建设 2026/6/20 23:32:26

【Open-AutoGLM实现全解析】:从零构建高效自动化大模型系统

第一章:Open-AutoGLM实现全解析导论Open-AutoGLM 是一个面向自动化自然语言任务的开源框架,旨在通过模块化设计和可扩展架构,实现对 GLM 系列大语言模型的高效调用、微调与部署。该框架融合了提示工程、自动推理优化与多任务流水线调度机制&a…

作者头像 李华
网站建设 2026/6/15 13:40:12

Open-AutoGLM入门到精通:7天掌握自动化大模型构建全流程

第一章:Open-AutoGLM入门到精通:7天掌握自动化大模型构建全流程Open-AutoGLM 是一个面向大语言模型自动化构建的开源框架,旨在降低开发者从零训练和微调大模型的技术门槛。通过集成数据预处理、模型选择、超参数优化与分布式训练调度&#xf…

作者头像 李华
网站建设 2026/6/14 3:42:31

你的PPT配图还在用十年前的老套路?这些网站让你告别土味审美

你是否还在用着那些高饱和度渐变、生硬立体箭头,或是配着模糊风景图的“名言警句”来装饰你的PPT?这种充斥着“土味审美”的视觉呈现,不仅无法为你的内容加分,反而会拉低专业形象,让观众对你的专业能力打上问号。《202…

作者头像 李华