如何集成经过不同训练的两个神经网络?

时间:2019-01-03 14:44:22

标签: python neural-network deep-learning ensemble-learning

我创建了两个不同的神经网络,它们都可以预测一个团队是否要赢/输一场曲棍球比赛。第一个NN已针对已玩游戏中的82个功能进行了培训。另一个已经通过所有已玩游戏的玩家统计信息接受了115项功能的培训。

两组中的某些功能相同,但重要指标不同或表示方式不同(汇总/单独)

总有一些方法可以使这些NN集成在一起,这样就可以只给它提供一个仅包含两个特征的集合。

h_team1   h_team_2    h_team3    a_team1   a_team2    a_team3     WIN/LOSE
   1         0           0          1          0         0
   1         0           0          0          1         0
   0         1           0          0          0         1

新的NN的任务是对主队获胜的可能性进行分类。

如果我真的对自己想做的事情不满意,请纠正我。

我添加了一张图片,以帮助形象化我正在描述的问题。

https://imgur.com/a/ZKnGT8N(箭头指向我要构建的模型,尚未构建,因为我不知道如何)

编辑:

来自game_DATA-set h = home a = away的示例数据

h_Won/Lost h_powerPlayGoals h_powerPlayPercentage a_powerPlayGoals a_powerPlayPercentage h_team1    h_team 2     a_team1     a_team2     gameID
   1            2                    0.4                1              0.5                      1          0            1          0      1

player_DATA集中的示例数据

Won/Lost   playerID    team1  team2   metric1   opponent1     opponent2    gameID
   1          5678       1       0     10       1              0          1

1 个答案:

答案 0 :(得分:0)

原则上,可以将其馈送到另一个NN以获取新的输出,但是从统计角度来看,这绝对没有意义。您预测您的团队将以x概率获胜,因此另一支团队以1-x概率获胜。因此,为什么要为此使用另一个网络。

通过在最后一层使用softmax,您的输出对于第一个网络基本上是x和1-x,而在第二个网络中则是y和1-y。因此,对于第三个网络,唯一合理的事情是检查x> y并根据这两个之间的余量输出概率,但是您也可以仅使用差值而不是NN来执行此操作,然后您就不必必须学习任何东西。