news 2026/4/23 8:34:07

数据变化(原始数据—数据清洗—特征工程)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据变化(原始数据—数据清洗—特征工程)

数据清洗步骤

用户行为数据缺失值处理

  • user_id、item_id是关联用户和商品的唯一标识,缺失后无法建立有效关联
  • behavior_type是核心行为标签,缺失无法定义交互类型
  • timestamp是时间序列分析的基础,缺失影响序列特征的准确性
  • 直接删除比填充更可靠,避免了引入噪声
""" 原始数据示例: user_id | item_id | behavior_type | timestamp ---------|----------|---------------|---------- user_001 | item_001 | click | 2023-10-01 10:00 null | item_002 | cart | 2023-10-01 10:05 user_002 | null | buy | 2023-10-01 10:10 user_003 | item_003 | null | 2023-10-01 10:15 user_004 | item_004 | click | null 清洗后数据: user_id | item_id | behavior_type | timestamp ---------|----------|---------------|---------- user_001 | item_001 | click | 2023-10-01 10:00 """

异常用户/商品ID过滤

  • 统一ID格式便于数据管理和特征工程
  • 异常ID可能是测试数据或错误数据,会影响模型效果
  • 正则表达式匹配确保数据规范性
""" 原始数据: user_id | item_id | behavior_type -------------|-------------|--------------- user_001 | item_001 | click unknown_user | item_002 | cart user_002 | invalid_id | buy test_user | test_item | collect 清洗后数据: user_id | item_id | behavior_type ---------|----------|--------------- user_001 | item_001 | click """

低频用户/商品过滤

  • 低频用户行为稀疏,难以学习有效特征
  • 低频商品样本不足,难以准确建模
  • 过滤后提高数据质量,减少噪声干扰
  • 阈值根据业务经验设置(用户≥3次,商品≥5次)
""" 原始数据(用户行为统计): user_id | 行为次数 ---------|--------- user_001 | 15 user_002 | 8 user_003 | 2 # 低频用户 user_004 | 1 # 低频用户 清洗后保留: user_id | 行为次数 ---------|--------- user_001 | 15 user_002 | 8 """

商品数据异常价格处理

  • 负价格是数据错误,需要修正
  • 0价格可能是免费商品或数据缺失,需要特殊处理
  • 极端高价可能是错误数据,需要截断
  • 价格范围(0.01, 10000)根据实际业务场景设置
""" 原始数据: item_id | price | category ---------|--------|---------- item_001 | 99.99 | Electronics item_002 | -10.0 | Clothing # 异常价格 item_003 | 0.0 | Books # 异常价格 item_004 | 999999 | Home # 异常价格 清洗后数据: item_id | price | category ---------|--------|---------- item_001 | 99.99 | Electronics item_002 | 10.0 | Clothing # 修正为有效范围 item_003 | 0.01 | Books # 设置最小有效价格 item_004 | 10000 | Home # 截断到最大值 """

特征工程步骤

用户基础特征提取

  • 静态特征:描述用户固有属性,是用户画像基础
  • 行为统计特征:量化用户历史行为,反映用户偏好
  • 转化率特征:衡量用户从浏览到购买的能力
  • 时间特征:反映用户活跃度和新鲜度
  • 编码处理:将分类变量转换为数值,便于模型处理
""" 原始用户数据: user_id | age | gender | registration_date ---------|-----|--------|------------------ user_001 | 25 | M | 2023-01-15 user_002 | 35 | F | 2023-03-20 用户行为数据: user_id | behavior_type | timestamp ---------|---------------|---------- user_001 | click | 2023-10-01 10:00 user_001 | cart | 2023-10-01 11:00 user_001 | buy | 2023-10-01 12:00 user_002 | click | 2023-10-01 10:05 特征提取后: user_id | age | gender_encoded | registration_days | total_actions | purchase_count | conversion_rate | days_since_last_action | active_days ---------|-----|----------------|-------------------|---------------|----------------|-----------------|------------------------|------------ user_001 | 25 | 0 | 258 | 12 | 2 | 0.167 | 1 | 6 user_002 | 35 | 1 | 207 | 9 | 1 | 0.111 | 1 | 5 """

商品热度趋势特征

  • 多时间窗口统计:捕捉商品不同周期的热度变化
  • 趋势比率:反映商品热度的增长/衰减趋势
  • 时效性:近期行为比远期行为更具参考价值
  • 扛波动性:多时间窗口平滑单日波动影响
""" 原始行为数据(时间序列): item_id | timestamp | behavior_type ---------|---------------------|-------------- item_001 | 2023-10-01 10:00 | click item_001 | 2023-10-05 14:00 | buy item_001 | 2023-10-07 09:00 | cart item_001 | 2023-10-14 16:00 | click item_002 | 2023-10-01 11:00 | click item_002 | 2023-10-02 10:00 | click 特征提取后(当前时间:2023-10-15): item_id | total_actions | actions_7d | actions_30d | trend_7d_30d ---------|---------------|------------|-------------|------------- item_001 | 4 | 2 | 4 | 0.5 item_002 | 2 | 0 | 2 | 0.0 """

行为序列特征

  • 序列模式:揭示用户行为的内在规律
  • 转换概率:量化行为间的转换倾向
  • 时间模式:反映用户的行为节奏
  • 个性化表征:每个用户的序列特征都是独特的
""" 用户行为序列: 用户: user_001 时间序列: [click, click, cart, click, buy, click, cart, buy] 提取的序列特征: - sequence_length: 8 - unique_items: 5 - click_ratio: 0.5 (4/8) - cart_ratio: 0.25 (2/8) - buy_ratio: 0.25 (2/8) - transition_click_to_cart: 0.25 (从click到cart的转换概率) - transition_click_to_buy: 0.125 - avg_time_interval: 平均行为间隔时间 """

图特征提取

  • 结构信息:捕捉用户和商品在图中的位置重要性
  • 协同信息:通过共同邻居发现相似用户/商品
  • 流行度传播:中心点往往更受欢迎
  • 冷启动缓解:新用户/商品可以通过图结构获得特征
""" 用户-商品交互图: 用户节点: [user_001, user_002, user_003] 商品节点: [item_001, item_002, item_003, item_004] 边: (user_001, item_001), (user_001, item_002), (user_002, item_001), ... 提取的图特征: 用户图特征: user_id | graph_degree | weighted_degree | avg_jaccard_similarity ---------|--------------|-----------------|------------------------ user_001 | 2 | 7 | 0.15 user_002 | 1 | 5 | 0.10 商品图特征: item_id | graph_degree | weighted_degree | avg_user_degree ---------|--------------|-----------------|---------------- item_001 | 2 | 12 | 1.5 item_002 | 1 | 5 | 2.0 """
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 8:30:43

Go进阶之反射

Go语言是静态类型语言.比如int float32 []byte32等等.每个变量都有一个静态类型.并且在编译的时候就已经确定了.type Myint int var i int var j Myint变量i和j不是相同类型.因为二者拥有不同的静态类型.尽管二者底层的类型都是int.但在没有类型转换的情况下是不可以相互赋值的…

作者头像 李华
网站建设 2026/4/23 8:30:43

智能声光感应窗帘系统设计

目录智能声光感应窗帘系统概述核心功能模块技术实现要点应用场景与优势扩展功能源码文档获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!智能声光感应窗帘系统概述 智能声光感应窗帘系统结合声音识别与光照传感器技术,通过自动化控制…

作者头像 李华
网站建设 2026/4/23 8:30:45

宝塔面板一键部署 Emlog 教程:从服务器准备到站点上线全攻略

文章目录宝塔面板一键部署 Emlog 教程:从服务器准备到站点上线全攻略一、宝塔面板简介二、部署前准备三、宝塔面板安装1. 下载并执行安装脚本2. 访问宝塔面板四、宝塔面板一键部署 Emlog1. 搜索并选择 Emlog2. 填写部署信息3. 部署完成与访问4. 设置管理员账号五、部…

作者头像 李华
网站建设 2026/4/23 8:30:48

微积分:世界是用“微分”写成的,我们是用“积分”读懂的

——试着不用符号理解微积分 🍃 01. 世界是连续变化的 温度不是“突然 5℃”,而是慢慢升的 汽车不是“瞬间到 60 km/h”,而是一点点加速 树不是“咻”一下长高,而是毫米级地生长 河水不是“啪”地冲过去,而是持续…

作者头像 李华
网站建设 2026/4/18 10:46:12

警惕 Shell 脚本中的逻辑陷阱:|| 替代 if-else 引发的安全漏洞

在 Shell 脚本编写中,开发者为了追求简洁,常使用 && 与 || 的短路组合逻辑替代结构化的 if-else 语句。这种看似便捷的写法,实则隐藏着极易被忽视的逻辑陷阱。本文将深入剖析这两种逻辑的核心差异,通过实战案例揭示漏洞成…

作者头像 李华
网站建设 2026/4/18 22:11:20

gops 工具在 Cilium 中的应用指南

目录gops 工具在 Cilium 中的应用指南什么是 gops?Cilium 环境中的 gops 实战演示场景 1: 列出所有 Go 进程场景 2: 获取进程统计信息场景 3: 查看内存统计场景 4: 检查 Goroutine 泄漏Cilium 诊断实战当前节点 (qfusion2 / .148) 状态节点对比分析使用 Prometheus …

作者头像 李华