我不确定这个问题是适合StackOverflow还是Programmers,但由于它更偏向于实现,所以我在这里提问。
我正在寻找一种算法,它可以接受n
个输入(全部为浮点数)并产生m
个输出(全部为浮点数;m < n
)。然后可以使用某种适应度评分来训练这个系统,以学习输入和输出之间的相关性。
用于此目的的最佳算法是什么?
一点背景信息:我想使用机器学习而不是自己发明的算法,因为我不知道数据之间的(全部)相关性,我确实知道机器学习算法的结果是否会好,并从那里进行训练。
我有一些变量要传入,例如:
- 只有我知道的信息(信心
0-1
) - 所有人都知道的关于我的信息(资源和之前的成就
0-1
) - 我正在调查的人的风险档案(分别,基于其他玩家
0-1
) - 我正在调查的人的行为档案(分别,基于其他玩家
0-1
) - 我正在调查的玩家拥有的资源(分别
0-1
) - 总玩家数量(基于允许的最大玩家数
0-1
) - 结果的预测(偏见
0-1
)
输出应该是:
- 采取的行动(从“什么都不做”到“迅速行动”
0-1
) - 采取行动的数量(从“不多”到“尽你所能”
0-1
)
我有非常大的数据集可以处理,因此理想情况下,建议的算法也可以持久化。
我见过像人工神经网络这样的算法,但它们不允许使用适应度评分,因为它们需要输入和输出配对。我无法提供这些,我只能计算这些数字可能正确的几率(适应度评分——设计上永远不会>= 1
)
回答:
从描述来看,这看起来是一个经典的强化学习问题,其中你有一个执行行动的代理(这里定义为行动+强度,但这仍然是一个行动),它改变了代理的某些内部状态,并且(至少在某个时间点)获得了奖励。
有许多方法可以从你的环境中学习一个好的策略(选择特定行动的规则),包括但不限于:
- Q-learning
- MDP(马尔可夫决策过程)
- 蒙特卡洛方法