跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 机器学习如何对已经上线的模型进行召回 & 重新训练
未分類
21 5 月 2020

机器学习如何对已经上线的模型进行召回 & 重新训练

机器学习如何对已经上线的模型进行召回 & 重新训练

資深大佬 : SlipStupig 54

问题一:我做了一个新闻分类器,在本地训练和测试的准确率是 70%,我上线之后,如何评估线上的准确率呢?

问题二:假设我有一些类别分错了,我想定期自动分拣出错误的结果,然后加入到训练模型里面重新训练,然后再上线(相当于一个自动召回系统?)

大佬有話說 (28)

  • 資深大佬 : shikimoon

    问题一不说了,问题二不一定总是有效

  • 資深大佬 : classyk

    在线学习 online learning 了解一下

  • 主 資深大佬 : SlipStupig

    @shikimoon 结果是 1 和 2 我都不知道该怎么办。。

  • 資深大佬 : SpencerCJH

    有请算法工程师登场 (逃

  • 資深大佬 : paopjian

    线上准确率不就是接着打标签再算吗?

  • 資深大佬 : sethverlo

    1. 打日志就行了嘛…

    2. 看你用的是什么框架啊,有的框架不支持 continue training 的,比如说 fasttext

    (其实 fasttext 支持 unsupervised 的再训练,但我用的是 supervised learning

  • 主 資深大佬 : SlipStupig

    @sethverlo 框架用的是 sklearn,日志确实能知道分类结果,但是我如何知道哪些是正确的哪些是错误的,如果数据过大靠人工似乎不现实。我想的是有没有一个相对自动的一点方案能让我分拣出漏报和误报的样本,然后让我重新进行训练,类似汽车召回一样的机制。

    @paopjian 比如我又 100 个样本以及被分类了,我离线的时候可以划分测试集和训练集,线上实际生产环境如何划分呢?我如何知道哪些被分错了的,并纠正然后继续训练?

  • 主 資深大佬 : SlipStupig

    @sethverlo 还有一种情况就是加入了新的样本,进行增量训练

  • 資深大佬 : razrlele

    Q1:
    可以用 AUC 来衡量离线在线指标。

    Q2:
    定期更新模型。

  • 資深大佬 : shikimoon

    @SlipStupig 你这是想当然了,把识别错误的 case 加进训练集重新训练效果就能变好,那一直加 acc 不是变 100%?

  • 資深大佬 : Xs0ul

    线上如果没有用户反馈给你标 label,没法知道预测是对是错. 不然你把这套流程移到输出之前,岂不是凭空提高了准确率

  • 資深大佬 : paopjian

    你要想在线学习我建议走 deeplearning,不用打标签,你这也太理想化了,监督学习引入非监督变量,那怎么判错?

  • 主 資深大佬 : SlipStupig

    @paopjian
    @Xs0ul
    @shikimoon

    感谢各位指正,这方面我水平不够,确实走入了误区。想请教一下各位,实际生产环境中模型上线了之后如何进行优化,有没有什么流程性的东西可以指点一下?

  • 資深大佬 : HankAviator

    1. 看你关注的指标,AUC,lift,误分类率都可能用得上。
    2. 持续训练是成本最低且现实的方案,主流企业也都是采用这个办法。样本量够大就足以生成令人满意的模型。

  • 資深大佬 : HankAviator

    另外采用复杂算法(集合树)相对简单二分类树可能有更好的效果

  • 資深大佬 : HankAviator

    上线模型一般都做周期性检验,然后测试环境跑一下,没问题就迭代到生产。引入尽可能多的变量也会有帮助(如果成本允许)

  • 主 資深大佬 : SlipStupig

    @HankAviator 问一个小白问题,指标该如何选择?

  • 資深大佬 : paopjian

    建议看一下 Hands - On.Machine.Learning.with.Scikit - Learn.and.TensorFlow。里面的机器学习方法都有讲,你这个 70 正确率也不是太好的

  • 資深大佬 : Mrpasserby

    你需要收集日志

  • 資深大佬 : t6attack

    现实生产环境中,比如 预测金融市场、预测天气,都是用事实结果作为新数据持续训练的。
    你这种,事实结果只能人工判断。没有其他办法。如果有,那就形成了逻辑悖论。如果有其他“非人工”方式可以知道分类结果是否准确,为什么不直接用这个方式进行分类呢?

  • 資深大佬 : pandachow

    如果线上环境没有引入用户反馈机制,那么分类器的分类效果是没有办法自动提升的。

    例如广告点击这样的业务场景,给用户看若干广告,用户可以选择无视,点击,或者点击 X 关闭,进而可以通过用户的反馈 target,再把新样本放进去不断训练。所以建议结合产品和业务场景引入一个合适合理的反馈机制。

    错误样本不需要重新训练,你可以手动设定他们的权重,如果是 heavily imbalanced dataset 的分类场景,建议使用 ROC & AUC (或带权重的)来作为评估。

  • 資深大佬 : otato

    如果不靠人工能分辨对错,为什么还需要你这个系统,直接上线分辨系统啊

  • 資深大佬 : icylogic

    supervised 只能持续人工标注新样本然后继续训练 /重新训练啊,你能做的只是提取出大小合理的 sample 送标注

  • 資深大佬 : p2pCoder

    线上的业务指标和离线指标是不一样的
    线上的业务指标是需要通过实验平台进行 abtest 的,比如一般的 ctr cvr,日活的变化,留存率的变化,以及总的转化,这些需要业务方确定指标
    实验平台也是一个比较大的工程,具体可参考谷歌的论文
    你最终的目标是通过这个分类器,使在新闻分类这个栏目下,各个新闻分类下,总的业务指标提升,比如用户 ctr,用户停留时长,用户总的点击量,平均每个用户点击量之类的指标

    至于样本滚动更新,正负样本的选取,模型的例行训练,模型的滚动更新,甚至在线学习,这些又是其他很复杂的东西了

    机器学习落地是一个大的系统性工程

  • 主 資深大佬 : SlipStupig

    @p2pCoder 大哥,太感谢了,能留个联系方式么,想深入交流一下,顺带表示感谢

  • 資深大佬 : p2pCoder

    @SlipStupig wx:emdiZ3gx

  • 主 資深大佬 : SlipStupig

    @p2pCoder 查找不到哦

  • 資深大佬 : p2pCoder

    @SlipStupig base64

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具