用可变数量的预测变量解决问题的方法

数据挖掘 机器学习 数据挖掘 分类 统计数据 nlp
2021-09-25 05:34:39

我一直在玩弄这个想法。我认为文本挖掘文献中可能有一些方法,但我没有遇到任何恰到好处的东西......

什么是/是一些解决问题的方法,其中变量的数量本身就是一个变量。这不是数据缺失问题,而是问题性质发生根本性变化的问题。考虑以下示例:

假设我想预测谁将赢得比赛,这是一个简单的多项式分类问题。我有很多过去的比赛数据,有很多可以训练的。让我们进一步假设我观察到每个参赛者都参加了多场比赛。然而,问题是数字或赛车手是可变的。有时只有 2 名赛车手,有时有多达 100 名赛车手。

一种解决方案可能是使用我选择的任何方法为每个数字或赛车手训练一个单独的模型,在这种情况下产生 99 个模型。例如,我可以有 100 个随机森林。

另一种解决方案可能是包含一个名为“number_of_contestants”的附加变量,并为 100 名赛车手提供输入字段,并在没有赛车手时将其留空。直观地说,如果赛车手的数量遵循泊松分布(我最初没有在问题中指定,但我在这里说),这种方法似乎很难预测 100 名参赛者比赛的结果。

想法?

2个回答

我没有看到问题。你所需要的只是一个学习者将一个比特串映射到代表参加者子集的参赛者总数,映射到另一个代表获胜者的比特串(只有一个比特集),或者一个排名列表,如果你想要全部(假设您的训练数据中有整个列表)。在后一种情况下,您将遇到学习排名问题。

如果参赛者的景观可以改变,那么为他们找到一个向量空间嵌入将有助于您可以使用之前的嵌入作为初始猜测,并根据他们的向量表示对任何人进行排名,即使是假设的。随着用户数量的增加,嵌入应该会稳定下来,再训练的成本应该会降低。当然,问题是如何找到嵌入。如果您有大量训练数据,您可能会找到一个随机数据以及排名函数。如果不这样做,则必须通过某种算法生成嵌入并仅估计排名函数。我以前没有遇到过你的问题,所以我无法指导你阅读特定的论文,但是最近的 NLP 文献应该会给你一些启发,例如this我觉得还是可行的。

是否可以使用近似贝叶斯计算(ABC)?如果您假设竞争对手数量的分布(例如泊松),则在每次迭代中选择竞争对手的子集并使用基于竞争对手特征的概率的多项分布来模拟您的数据,在丢弃与您的训练数据不匹配的参数后,您应该能够获得每个竞争对手的参数(即后验分布)并产生更多的比赛。

如果竞争对手的数量如此重要以至于影响了每个竞争对手的特征系数,这可能不起作用。