模型评估(1)

一般的,机器学习过程包括两个阶段,分别为:模型设计阶段(Prototyping)与应用阶段(Deployed)。

Prototyping阶段是使用历史数据训练一个适合解决目标任务的一个或多个机器学习模型,并对模型进行验证(Validation)与离线评估(Offline evalutation),然后通过评估指标选择一个较好的模型。

Deployed阶段是当模型达到设定的指标值时便将模型上线,投入生产,使用新生成的数据来对该模型进行在线评估(Online evalution),以及使用新数据更新模型。

在对模型进行离线评估和在线评估时,它们所用的评价指标往往不同。如在离线评估中,经常使用的有准确率(accuracy)、精确率-召回率(precision-recall);

而在线评估中,一般使用一些商业评价指标,如用户生命周期值(customer lifetime value)、广告点击率(click through rate)、用户流失率(customer churn rate)等,这些指标才是模型使用者最终关心的一些指标。

甚至在对模型进行训练和验证过程中使用的评价指标都不一样。 


在这两个阶段使用的数据集也不一样,分别是历史数据(historical data)新数据(live data)

在机器学习中,很多模型都是假设数据的分布是一定的,不变的,即历史数据与将来的数据都服从相同的分布。但是,在现实生活中,这种假设往往是不成立的,即数据的分布会随着时间的移动而改变,有时甚至变化得很急剧,这种现象称为分布漂移(Distribution Drift)

例如,在文章推荐系统中,文章的主题集数目和主题的发生频率可能是每天改变的,甚至每个小时都在改变,昨天流行的主题在今天可能就不再流行了。如在新闻推荐中,新闻主题就变更得非常快。因此在进行模型构建之时,我们需要去扑捉分布漂移信息并使自己的模型能够应对这种情况。一个常用的方法便是使用一些验证指标对模型在不断新生的数据集上进行性能跟踪。如果指标值能够达到模型构建时的指标值,那么表示模型能够继续对当前数据进行拟合。当性能开始下降时,说明该模型已经无法拟合当前的数据了,因此需要对模型进行重新训练了。


不同的机器学习任务有着不同的性能评价指标。

例如,在垃圾邮件检测系统中,它本身是一个二分类问题(垃圾邮件vs正常邮件),可以使用准确率(Accuracy)对数损失函数(log-loss)AUC等评价方法。又如在股票预测中,它本身是一个实数序列数据预测问题,可以使用平方根误差(root mean square error, RMSE)等指标;又如在搜索引擎中进行与查询相关的项目排序中,可以使用精确率-召回率(precision-recall)NDCG(normalized discounted cumulative gain)。 


一般会将已有的数据集随机划分成两个部分,一个用来训练模型,另一个用来验证与评估模型。

另一种方法是重采样,即对已有的数据集进行有放回的采样,然后将数据集随机划分成两个部分,一个用来训练,一个用来验证。至于具体的做法有hold-out validation、k-fold cross-validation、bootstrapping与jackknife resampling,后面会进行详细介绍。


超参数的调优是一个相当复杂与繁琐的任务。在模型设计阶段,需要尝试不同的模型、不同的超参数以及不同的特征集

我们需要寻找一个最优的超参数,因此需要使用相关的搜索算法去寻找,如格搜索(grid search)随机搜索(random search)以及启发式搜索(smart search)等。这些搜索算法是从超参数空间中寻找一个最优的值。


当模型使用离线数据训练好并满足要求后,就需要将模型使用新的在线数据进行上线测试,这就是所谓的在线测试。在线测试不同于离线测试,有着不同的测试方法以及评价指标。最常见的便是A/B testing,它是一种统计假设检验方法。另一个相对使用较小的在线测试方法是multiarmed bandits




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值