基于精度的规则组合学习分类器系统

xcs-rc的Python项目详细描述


xcs-rc

基于精度的学习分类器系统规则组合机制,python3的短期XCS-RC,松散地基于martin butz的xcs java代码(2001)。阅读我的博士论文here获得完整的算法描述。

规则组合是一种采用归纳推理的新型函数,它取代了所有达尔文遗传操作,如变异和交叉。它可以处理binariesreal,比几个xcs实例更快地达到更好的正确率总体大小。我以前比较它们的论文可以在herehere上找到。


相关链接


安装

pip install xcs-rc

初始化

import xcs_rc
agent = xcs_rc.Agent()

classic强化学习周期

# input: binary string, e.g., "100110" or decimal array
state = str(randint(0, 1))

# pick methods: 0 = explore, 1 = exploit, 2 = explore_it
action = agent.next_action(state, pick_method=1)

# determine reward and apply it, e.g.,
reward = agent.maxreward if action == int(state[0]) else 0.0
agent.apply_reward(reward)

部分可观测马尔可夫决策过程(pomdp)环境

# create env and agent
env = xcs_rc.MarkovEnv('maze4')  # maze4 is built-in
env.add_agents(num=1, tcomb=100, xmax=50)
agent = env.agents[0]

for episode in range(8000):
    steps = env.one_episode(pick_method=2)  # returns the number of taken steps

数据分类

agent.train(X_train, y_train)
cm = agent.test(X_test, y_test)  # returns the confusion matrix
preds, probs = agent.predict(X)  # returns lists of predictions and probabilities

打印填充,将其保存到csv文件,或使用附加模式

agent.pop.print(title="Population")
agent.save('xcs_population.csv', title="Final XCS Population")
agent.save('xcs_pop_every_100_cycles.csv', title="Cycle: ###", save_mode='a')

最后,向填充插入规则

# automatically load the last set (important for append mode)
agent.load("xcs_population.csv", empty_first=True)
agent.pop.add(my_list_of_rules)  # from a list of classifiers

主要参数

xcs-rc参数

  • tcomb组合周期,下一规则组合前的学习周期数
  • {< CD5> }:^ {EM1}预测公差,两个分类器组合的最大差值
  • prederrtol预测误差容限,删除不适当组合规则的阈值

如何设置

agent.tcomb = 50 # perform rule combining every 50 cycles
agent.predtol = 20.0 # combines rules whose prediction value differences <= 20.0
agent.prederrtol = 10.0 # remove if error > 10.0, after previously below it

原始xcs的参数

  • 所有与突变和交叉相关的信息都被删除
  • 其他的则被保存和访问(例如,agent.alpha = 0.15

结果

经典问题:multiplexerMarkov environment

Binary MP11-HIGH

Real MP6-HIGH

Markov Maze4

pygame学习环境中的flappy bird:

Flappy Bird XCS-RC plot

Flappy Bird XCS-RC youtube

youtube:cartpole-v0来自openai健身房的基准测试:

CartPole XCS-RC

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java从服务器中的jsp页面读取参数   java构造函数会话(字符串,int)不可见   在java中计算特定字符,但我的程序只读取单词中的第一个字符   在java中转换为json的Hashmap的Hashmap。当发送到jsp时,我用javascript解析它。但它在javascript中的解析不正确   JavaSpringDataREST并没有保存实体的所有字段   java如何通过inten共享图像   eclipse是Java所需要的。即使已定义,也要运行的类文件   rest MapStruct Java流   java在OpenJDK 11的源代码上运行DocumentationTool   比较两个ArrayList索引时的java IndexOutOfBoundsException   java为什么Spring验证器需要将错误对象传递给应用程序(富客户端)并由其处理?   java Android从sms垃圾邮件文件夹或列表中检索垃圾邮件号码   java从匿名类参数访问类的实例   java MethodHandle与通用非类返回筛选器?   指定队列顺序的java