用于预测未知类别值的模型/损失函数类型?

我想根据1)之前的历史记录,2)一些子类信息和3)任意月份信息来预测给定客户的销售额。月份对某些客户可能有影响,但对其他客户可能没有。信息大致如下所示:

account_id  sub_account month sales3           1           12    903           1           1     1203           2           12    1003           2           1     501           1           12    201           1           12    501           1           12    3001           3           12    50

因此,虽然我可以使用某种类型的编码,但我并不确定哪些是重要的,哪些不是。这“感觉像是”某种围绕值的无监督聚类,但不确定最好的方法是什么。


回答:

这绝对是一个监督学习问题(一个回归问题,因为你的目标变量是连续的)。此外,由于你有客户的之前历史记录,你实际上面对的是一个时间序列预测问题。

解决这个问题的方法有很多(很多…),但一个简单且相当有效的方法是使用自回归来解决问题:

  • 选择一个window_size(回顾的月份数 – 例如5)
  • 对于每一对(account_id, sub_account)和一组window_size连续月份,生成:sales_5m_ago, sales_4m_ago, ... ,sales_1m_ago ==> sales this month作为训练实例。

这样,你将得到一个包含许多销售历史子集的数据集,这些子集可以用来预测接下来一个月会发生什么。然后,你可以用它构建任何回归模型(例如,RandomForestRegressor),并且要预测测试客户的销售额,你只需要提供之前的window_size销售数据,模型就会给你下个月的预测。

最后,如果你想要/有原始数据中的额外特征,你只需在创建训练集时将它们与你的月销售值一起分组即可:

sales_5m_ago, sales_4m_ago, ... ==> sales_5m_ago,temperature_5m_ago, rain_days_5m_ago, sales_4m_ago,temperature_4m_ago, rain_days_4m_ago, ...

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中创建了一个多类分类项目。该项目可以对…

发表回复

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