惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
B
Blog
P
Proofpoint News Feed
美团技术团队
The GitHub Blog
The GitHub Blog
Y
Y Combinator Blog
A
About on SuperTechFans
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Vercel News
Vercel News
有赞技术团队
有赞技术团队
小众软件
小众软件
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
H
Help Net Security
罗磊的独立博客
L
LangChain Blog
GbyAI
GbyAI
腾讯CDC
T
The Blog of Author Tim Ferriss
Microsoft Security Blog
Microsoft Security Blog

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
优化模型性能:产品经理需要了解的数据划分与评估策略
陶培林 · 2024-02-23 · via 人人都是产品经理

如何做好模型的性能评估?我们不妨从两个关键阶段来切入探讨。这篇文章里,作者就做了对应的解读,并阐述了在训练过程中可能遇到的数据泄露问题和相关解决方案,一起来看一下吧。

01

在机器学习的世界里,模型的性能评估是至关重要的。本文将深入探讨评估模型性能的两个关键阶段,并揭示在训练过程中可能遇到的数据泄露问题及其解决方案。

1. 模型开发阶段和调整阶段的性能评估

在这个阶段,可能会尝试不同的机器学习算法,或者对选定的算法进行超参数调整(即调整模型的“表盘”,这里的表盘是一个比喻,指的是模型的内部参数,如学习率、树的深度等)。在每次尝试或调整后,都需要评估模型性能,以便了解这些变化是否提高了模型的预测能力。

这通常在验证集上进行评估来实现。验证集是从原始训练数据中分离出来的,用于在模型训练过程中评估模型性能的数据集。这样做的目的是确保在优化模型时,实际上是超者提高性能方向前进,而不是让模型过拟合或性能下降。

2. 模型最终确定后的性能评估

一旦确定了模型的参数和结构(即模型“最终确定”),需要在完全独立的测试集上评估模型的性能。测试集包含了模型在训练过程中从为见过的数据,有助于评估模型在实际应用中的泛化能力。这个阶段的性能评估是为了验证模型在面对新数据时的表现, 确保模型不仅在训练数据上表现良好,也能在实际应用中准确预测。

3. 模型的数据划分

在模型开发和调整阶段,模型进行训练之前,就需要从测试集中分离出一份验证集,这样做的目标就是为了确保验证集数据在整个模型训练过程中不会被模型接触到,从而保证验证集能够提供一个独立的评估环境。即使在模型进行参数或结构调整,优化模型性能的多轮迭代中,使用的也是同一份验证集

但是在交叉验证中,则不成立。在交叉验证中,训练集被划分成若干分相同的数据量的数据集,每个部分轮流作为验证集,其他作为测试集。

02

上文也提了在模型优化多轮迭代中,使用同一份验证集的问题。这在传统的机器学习中,会存在一个潜在问题,即在多轮迭代优化中使用同一份验证集可能会导致模型“记住”验证集的数据,这被称为信息泄露(Information Leakage)。

为了避免这种情况,通常会在每次迭代中使用不同的验证集,或者采用交叉验证的方式(小数量集数据训练模型时选择交叉验证更优)。

下面说说数据集的一般步骤:

  • 数据预处理:在任何模型训练之前,首先对整个数据集进行清洗、特征工程等预处理步骤。
  • 划分数据集:将预处理后的数据集按照一定比例(如常见的60%训练集,20%验证集,20%测试集)划分训练集。这个过程是在模型训练之前完成的,以确保数据集的随机性和独立性。
  • 训练模型:使用训练集数据来训练模型,这个阶段,模型只会接触到训练集中的数据。
  • 验证模型:在模型训练完成后,使用验证集数据来评估模型的性能。这个过程中,模型会尝试对验证集中的数据进行预测,但不会影响模型的训练过程 。
  • 调整模型:根据验证集上的表现,可能需要调整模型的超参数或结构。这个过程可能会多次进行,每次都使用验证集来评估调整后模型的性能。
  • 最终评估:在确定了最佳模型后,使用测试集来对模型进行最终评估。测试集数据在整个过程中都不会被模型接触到,因此它提供了一个最接近实际应用场景的评估。

而在训练模型阶段会产生一个比较严重的问题-数据泄露(Data Leakage)。它指的是在训练模型的过程中,模型意外接触到了本应该在测试阶段才出现的数据或信息。而这种情况的出现一般发生在数据准备和预处理阶段,训练集和测试集数据之间的界限被破坏时。

数据泄露的具体表现可能包括:

  • 特征泄露:训练模型时使用了测试集中的特征,或者在特征工程中,使用了未来信息(比如,时间序列数据中的未来的值),导致模型在训练集上的表现被高估,而在实际应用中性能下降。
  • 统计信息泄露:在训练过程中使用了测试集的统计信息(如均值、标准差等)来调整模型参数,这使得模型在测试集上的表现被高估 。
  • 模型参数泄露:在模型选择或超参数调整过程中,使用了测试集的信息,导致模型对测试集的过拟合。

以下补充说明一些特征泄露示列:

1)时间戳泄露

假设你有一个包含过去几年房产交易数据的数据集,其中每个交易记录都有一个时间戳(日期)。如果你在训练模型时,不小心将这些时间戳作为特征输入,并且这些时间戳包含了未来房价变动的信息,那么模型可能会学习到这些未来信息,从而在训练集上表现得很好。

这并不意味着模型真正理解了房价变动的内在规律,因为它依赖的是未来信息,而不是基于当前和过去的数据来预测未来。

2)未来数据泄露

如果是预测明天的天气,在训练模型时,你不小心将后天的天气预报作为特征输入。模型可能会学会基于后天的天气来预测明天的天气,这显然是不合理的,因为模型在实际应用中无法预知未来几天的天气。

3)数据清洗错误

在处理数据时,可能会发现某些异常值或错误数据,并决定将它们从数据集中移除。然而,如果这些异常值在测试集中仍然存在,而模型在训练时已经“学会”了忽略这些值,那么在测试集上模型可能会表现不佳,因为它没有学会如何处理这些真实的异常情况 。

4)第三方信息

假设正在构建一个预测用户是否会购买某个产品的模型。在训练过程中,不小心将用户在社交媒体上的活动数据(如点赞、分享等)作为特征。这些数据可能包含了用户购买意愿的线索,但这些信息在用户实际购买行为发生之前是不可用的。这样,模型在训练集上的表现可能会很好,但在实际应用中,由于缺乏这些社交媒体数据,模型的预测能力会下降。

总结一下,为了解决这些问题,我们需要确保数据集的正确划分,并且在训练和验证过程中严格遵守这些划分。此外,交叉验证和定期更换验证集也是预防数据泄露的有效策略。

本文由 @陶培林 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。