如何保持机器学习模型的相关性?

我计划为训练构建一个推荐系统。

根据我目前的理解,如果我构建并训练了一个机器学习模型,它的预测是基于我的训练数据的。但如果我有一个数据集很小但变化很快的环境,比如一个小型在线商店,这意味着我的模型很快就会过时。

例如:如果一个新用户(没有现有数据)喜欢某件产品,这条数据不会立即在我的机器学习模型中可用。所以新用户会一直得到相同的推荐,直到我重新训练我的机器学习模型。这对我来说听起来不太实用。

有什么好方法可以在我获得用户的新信息(隐式反馈)时快速更新我的模型吗?

我知道有强化学习,但这似乎在今天并不常见。所以我想一定有其他方法来解决这个问题…

如果您能给我一些提示或关键词来解决这个问题,我会非常高兴的。或者可能是我对基本原理的误解?


回答:

是的,您绝对正确,任何机器学习模型的预测都是基于训练数据的

所以如果您的数据在不断变化,您也想更新您的机器学习模型,可以执行以下步骤:

  • 每当数据库表中添加了新用户的活动时,将这些数据添加到您的训练数据中。为此,您需要规划如何更好地结构化表格和保存数据。

  • 然后设置一个定时任务(cron job 是基于时间的作业调度程序,根据您设置的时间运行您的脚本(作业))。

  • 设置一个阈值,例如每当数据库中的活动增加到这个程度或者数据增加到这个程度时,运行定时任务或运行脚本。

  • 在您的定时任务中,脚本将执行三件事。

    • 首先,它会从数据库中提取新数据,并将其准备成训练数据的格式。
    • 然后用上述步骤准备的新数据训练保存的机器学习模型。
    • 训练完成后,用新模型替换旧的机器学习模型。

通过这种方式,您可以轻松地保持模型的更新状态。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注