神经网络的输入向量长度不相等



我试图根据视频游戏的玩家到目前为止的比赛数据,预测他们是否会在下个月内停止玩游戏(0/1表示不停止/停止)。

玩家玩的每场比赛都会生成 (X) 个数据点,但是,每个玩家迄今为止可能打了不同数量的比赛 (M),因此当玩家的数据放入一个长向量中时,其向量的长度将为 X*M。

我对神经网络的工作原理非常陌生,但我的理解是数据集的每一行必须具有相同数量的列。这是真的吗?

鉴于我的问题,我集思广益了三种可能的解决方案,每种解决方案都做出了某种妥协......

[可能的解决方案1:汇总数据]

我考虑过将比赛数据聚合为一种解决方案,因此,例如,不是"比赛 1 分、比赛 2 分,...,比赛 n 分",而是"每场比赛平均分"。但是,我担心这不是最好的折衷方案,因为平均某些数据会影响分辨率(即作为游戏中的一个角色获得很多分数与作为另一个角色获得大量积分可能是一个有用的差异)。

[可能的解决方案 2:为缺失数据添加零]

也许如果我的玩家 A 打了 6 场比赛,而玩家 B 到目前为止只打了 5 场比赛,我可以加零,使玩家 B 的向量和玩家 A 的向量一样长。但是,我担心像这样添加零就像给我的数据增加了大量的噪音。

[可能的解决方案 3:将数据修剪为相同大小]

我可以为每个要包含的玩家向量设置特定数量的匹配项,例如 10 个匹配项。因此,如果玩家的匹配项少于 10 个,则会从数据集中删除,或者如果玩家的匹配项超过 10 个,则数据集中将仅显示他们的前 10 个匹配项。这里唯一的缺点是,唯一具有真实预测标签 1(停止游戏)的玩家是玩了正好 10 场比赛的玩家......但我不仅对预测感兴趣,我显然想要一个更笼统的预测。

如何在不等长的向量上训练神经网络???

所以我的问题可能太长了,人们不想阅读,但无论如何,我的问题讨论了一些可能的方法来处理神经网络(或任何可能需要相等长度的机器学习算法)的不均匀输入向量长度。

一个我没有想到的解决方案,但在Quora答案中向我建议,是只包括至少玩过3(一些少量)游戏的玩家,这样你可以将其作为原始数据包括在内,然后对于4-n游戏汇总结果

这本质上是我在上面问题详细信息中的"可能的解决方案 1"和"可能的解决方案 3"之间的一个很好的折衷方案。

最新更新