gpt4 book ai didi

machine-learning - 二元分类使用哪种强化算法

转载 作者:行者123 更新时间:2023-11-30 08:58:03 25 4
gpt4 key购买 nike

我是机器学习新手,但在过去的两天里我读了很多关于强化学习的文章。我有一个获取项目列表的应用程序(例如从 Upwork)。有一个主持人可以手动接受或拒绝项目(基于下面解释的一些参数)。如果项目被接受,我想发送项目提案,如果被拒绝,我将忽略它。 我希望用人工智能取代该主持人(以及其他原因),所以我想知道我应该使用哪种强化算法。

参数:下面列出了决定代理是否接受或拒绝项目的一些参数。假设我只想接受与 Web 开发相关的项目(特别是后端/服务器端),这里是参数应如何影响代理。

  • 行业:如果项目与 IT 行业相关,那么被接受的机会应该更大。
  • 类别:如果项目属于 Web 开发类别,则应该有更多机会被接受。
  • 雇主评级:评级超过 4 分(满分 5 分)的雇主应该有更多机会被接受。

我认为 Q-Learning 或 SARSA 能够帮助我,但我看到的大多数例子都与悬崖行走问题有关,其中各州相互依赖,这不适用于我的情况,因为每个项目都是与上一篇不同。

注意:我希望代理能够自学,这样如果将来我也开始奖励它前端项目,它应该学习这种行为。因此,建议“纯粹的”监督学习算法是行不通的。

编辑 1:我想补充一点,我有 3000 个项目的数据(部门、类别、职位、雇主评级等)以及该项目是否被我的版主接受或拒绝。

最佳答案

使用 Q-learning 应该可以轻松解决您的问题。这仅取决于您如何设计问题。强化学习本身是一种非常强大的算法,它允许代理从环境中接收状态,然后根据这些状态执行操作。根据这些行动,它将获得相应的奖励。对于您的问题,结构将如下所示:

状态

状态:3 x 1 矩阵。 [行业、类别、雇主评级]

扇区状态都是整数,每个整数代表不同的扇区。例如,1 = IT 行业、2 = 能源、3 = 制药、4 = 汽车等。

类别状态也可以是全整数,其中每个整数代表不同的类别。例如:1 = Web 开发,2 = 硬件,3 = 等等

雇主评级同样是 1 - 5 之间的所有整数。其中州代表评级。

行动

操作:输出是一个整数。

Action 空间是二元的。 1 或 0。1 = 接受该项目,0 = 不接受该项目。

奖励

奖励向您的系统提供反馈。就您而言,只有当操作 = 1(即您接受了该项目)时,您才会评估奖励。这将使您的 RL 了解到它在该项目中的表现有多出色。

奖励将是一个看起来像这样的函数:

def reward(states):
sector, category, emp_rating = states
rewards = 0
if sector == 1: # The IT sector
rewards += 1

if category == 1: # The web development category
rewards += 1

if emp_rating = 5: # Highest rating
rewards += 2
elif emp_rating = 4: # 2nd highest rating
rewards += 1

return rewards

为了增强这个奖励功能,你实际上可以给一些部门负奖励,所以如果 RL 接受了这些项目,实际上会收到负奖励。我在这里避免了这一点,以避免进一步的复杂性。

您将来还可以编辑奖励函数,让您的 RL 学习新事物。例如让某些部门比其他部门更好等等。

编辑:是的,关于lejlot的评论,它基本上是一个多臂老虎机问题,没有顺序决策。 bandit 问题的设置与 Q-learning 基本相同,只是减去了顺序部分。您所关心的是您有一个项目提案(状态),做出决定(行动),然后是您的奖励。对于您的情况,接下来发生什么并不重要。

关于machine-learning - 二元分类使用哪种强化算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51860263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com