测试集中相同的预测变量,但我想要不同的输出

数据挖掘 机器学习 分类数据
2022-03-02 02:10:43

我有一个关于电视观众正在观看什么以及观看时长的(训练)数据集。目标(在新集 - 测试集)是预测电视观众将观看特定频道和节目的时间。

具体来说,我有以下预测:

  • 电视频道(例如 BBC、CNN 等)
  • 内容(例如新闻、娱乐、商业等)
  • 开始时间(例如 11:00、14:00 等)

和以下目标:

  • 结束时间(例如 12:00、15:00 等)

显然,我将使用TV ChannelContent预测器应用 One Hot Encoding 并Starting time以某种方式处理(在此处查看更多信息:Encoding features like month and hour as categorial or numeric?)。

但是,在我的训练集中,我可能有多个具有相同预测变量值(例如“BBC”、“新闻”、“20:00”)但输出不同的观察结果。这显然是因为不同的用户开始同时观看同一件事,但他们在不同的时间停止。

这是否会成为一个问题,因为我的测试集也包含这样的观察结果?

具体来说,我不想为这些观察接收相同的输出(结束时间),但我想接收不同的输出,这些输出(理想情况下)遵循训练集中各个观察的分布。我怎样才能做到这一点?

我应该为每个用户简单地添加一个新的分类变量吗?

1个回答

我希望我没有误解你的问题,否则,这对你来说可能听起来太微不足道了。

我认为相同的 X(预测变量)值导致不同的 Y(结束时间)本身并不是一个问题。毕竟,如果 X 的每个组合都会导致唯一的 Y,那么估计模型的意义何在?想想,一个简单的算法可以预测大多数,例如对于相同的 10 X,你可能会得到

  • 5 * Y1
  • 3 * Y2
  • 2 * Y3

所以你的预测是这个 X 的 Y1。

话虽如此,我认为您的目标变量不需要是分类的,我宁愿将其配置为连续的,与开始时间相同。然后,在简单的情况下,运行回归。

此外,我不建议按相同的 X 分组并添加分类用户类型。这导致确定性关系(映射),即

  • 用户类型 1 --> Y1
  • 用户类型 2 --> Y2

因为你派生用户类型的方法是找到导致唯一 Y 的 X 组合。

我宁愿把它作为一个单独的分析,即从电视观看中推断用户类型,你基本上对数据进行聚类,并说每个聚类都是一个用户类型。

编辑

根据您编辑的问题陈述,回想一下是有条件地以为模型的,即YX

Yi=E[Yi|Xi]+ϵi

的某个组合,例如您估计的结束时间是条件期望值,即平均估计值,但您预测的有一个分布(如果你更保守,你可以为你的预测给出一个置信区间,从图形上讲,这是该分布的一个片段)。这个分布对于每个都是不同的,参见例如这个文档中的图Y^XXi={BBC,news,20:00}Yi^Xi

现在,根据您的要求:您可以做的是从的分布(各自的结束时间)中取样。假设您有 10 次相同的采样 10 次并输出。YiXi={BBC,news,20:00}Yi

然而,我不认为这是最好的解决方案。再次从图形上讲,我将提供错误界限,即此处的最后一张图。换句话说,不要为相同的输入输出 10 个不同的预测,而是输出您预测 X_i = \{BBC, news, 20:00\} 的结束时间Y_i到 21 之间的置信度为 90% :10。YiXi={BBC,news,20:00}