python实现q-learning算法

本文介绍了如何使用Python实现Q-learning算法,通过复现A Painless Q-learning Tutorial的内容,详细探讨了该算法的实现过程。文章旨在帮助读者理解并掌握Q-learning在机器学习中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于q-learning算法,可参照以下博客,我只是复现作者的算法,如有错误,请私信改正。

A Painless Q-learning Tutorial (一个 Q-learning 算法的简明教程)_peghoty-优快云博客

 

import numpy as np
import pandas as pd

class QL:
    def __init__(self, actions, gamma=0.8, e_greedy=0.9):
        self.actions = actions
        self.gamma = gamma
        self.e_greedy = e_greedy
        self.q_table = pd.DataFrame(columns=actions, dtype=np.float64)  #行为状态,列是动作,这里简化了,同时也是下一个状态

    def choose_action(self, state):
        self.check_state(state)
        if(np.random.uniform(0, 1)<self.e_greedy):
            action_list = self.q_table.loc[state, :]  # 取出当前state的行
            action = action_list[action_list == action_list.max()].index #找最大值的动作,可能有多个,比如刚开始都是0.
            action = np.random.choice(action) # 在最大值中随机选择一个动作。
        else:
            action = np.random.ch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值