跟着开源项目学因果推断——whynot(十四)
文章目录
WhyNot是一个Python包,它提供了一个用于动态决策的实验沙箱,将因果推理和强化学习工具与具有挑战性的动态环境连接起来。
该软件包有助于开发、测试、基准测试和教学因果推理和顺序决策工具。
github: https://github.com/zykls/whynot
文档:https://whynot.readthedocs.io/en/latest/
下载:
pip install whynot
举一个例子 hiv_simulator.ipynb
%load_ext autoreload
%autoreload 2import whynot.gym as gym
import numpy as np
import matplotlib.pyplot as plt
import torchfrom scripts import utils
%matplotlib inline# HIV环境
# Make the HIV environment and set random seed.
env = gym.make('HIV-v0')
np.random.seed(1)
env.seed(1)
torch.manual_seed(1)# 策略
class NoTreatmentPolicy(utils.Policy):"""The policy of always no treatment."""def __init__(self):super(NoTreatmentPolicy, self).__init__(env)def sample_action(self, obs):return 0class MaxTreatmentPolicy(utils.Policy):"""The policy of always applying both RT inhibitor and protease inhibitor."""def __init__(self):super(MaxTreatmentPolicy, self).__init__(env)def sample_action(self, obs):return 3class RandomPolicy(utils.Policy):"""The policy of picking a random action at each time step."""def __init__(self):super(RandomPolicy, self).__init__(env)def sample_action(self, obs):return np.random.randint(4)# 模拟
learned_policy = utils.run_training_loop(env=env, n_iter=300, max_episode_length=100, batch_size=1000, learning_rate=1e-3)
几种策略,我们定义了一个基本的Policy类。每个策略都有一个sample_action函数,它接受一个观察并返回一个操作,一共四类:
- NNPolicy
一种1层前馈神经网络,以状态维为输入维,一个包含8个神经元的隐藏层(状态维度为6),以动作作为输出维度。我们使用批处理归一化和ReLU激活。 - 没有任何刺激策略
任何调整都不要,属于最基本的 - 刺激最大策略
任何调整都需要,属于过分敏感 - 随机的政策
采取随机行动而不考虑观察结果。
# 其他三个策略
policies = {"learned_policy": learned_policy,"no_treatment": NoTreatmentPolicy(),"max_treatment": MaxTreatmentPolicy(),"random": RandomPolicy(),
}
utils.plot_sample_trajectory(env, policies, 100, wn.hiv.State.variable_names())
跟着开源项目学因果推断——whynot(十四)相关推荐
- 跟着开源项目学因果推断——FixedEffectModel 固定效应模型(十七)
这个开源项目来源于快手,当然对于快手的开源项目是有前车之鉴的[生存分析--快手的基于深度学习框架的集成⽣存分析软件KwaiSurvival(一)].KwaiSurvival让我觉得是实验代码,今天要接 ...
- 跟着开源项目学因果推断——mr_uplift(十五)
文章目录 1 mr_uplift 介绍 1.1 介绍 1.2 ERUPT 准则 2 案例模拟 2.1 生成模拟数据 2.2 绘制ERUPT Curves曲线 2.3 为新的观测结果分配最佳处理方法 2 ...
- 跟着开源项目学因果推断——causalnex(十三)
文章目录 1 causalnex 介绍 1.1 安装 2 使用的模型 2.1 NOTEARS的结构方程模型 3 建模案例:NOTEARS结构方程模型 3.1 数据加载 3.2 建模 & 错误指 ...
- 跟着google工程师学Go语言(二十四):单任务版爬虫
欢迎来到:Google资深工程师深度讲解Go语言 视频地址:Google资深工程师深度讲解Go语言-单任务版爬虫 获取城市名称和链接: CSS选择器 浏览器,console: $('#cityList ...
- 汇编语言mul指令_跟着开源软件学汇编语言:计算器
今天我们分享两个关于计算器的开源软件,这两个开源软件都是用汇编语言编写,学习这两个软件有助于我们理解相关的指令和数据转换的方法. rdebug的计算器 第一个开源软件来自rdebug的博客:https ...
- 【动手学因果推断】(二):潜在因果框架
[动手学因果推断](二):潜在因果框架
- 从开源项目学做微信小程序
1. 项目名称:灵动电商之微信小程序端 项目地址:黄秀杰/lendoo-wx - 码云 2. 项目名称:高仿网易 B2C 商城 项目简介:本项目是基于 Node.js + MySQL 开发的高仿网易严 ...
- 计算与推断思维 十四、回归的推断
十四.回归的推断 原文:Inference for Regression 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 到目前为止,我们对变量之间关系的分析纯粹是描述性的.我们 ...
- 开源项目SMSS发开指南(四)——SSL/TLS加密通信详解
本文将详细介绍如何在Java端.C++端和NodeJs端实现基于SSL/TLS的加密通信,重点分析Java端利用SocketChannel和SSLEngine从握手到数据发送/接收的完整过程.本文也涵 ...
最新文章
- 60个开发者不容错过的免费资源库
- a*算法matlab代码_蚁群算法(含MATLAB代码)
- 数据结构实验之排序七:选课名单(卡内存的一道题。。坑)
- Python机器学习:KNN算法07数据归一化
- Android---真机调试时不能识别手机的解决方案
- stream常用操作
- android 下载 文件怎么打开方式,apk文件怎么打开?
- 工具篇之Chrome浏览器所有页面崩溃(包括设置页面)的处理方法
- 利用scrapy爬取新浪体育新闻的小例子
- 如何将页脚(footer)保持在页面底部
- python自然语言处理实战源代码下载_NLP学习:涂铭《Python自然语言处理实战核心技术与算法》PDF+源代码...
- ConcurrentHashMap原理,在JKD7和JDK8版本的区别
- java poi写入excel_Java使用POI读取和写入Excel指南
- oracle添加序列
- 深度学习入门笔记(十一):权重初始化
- 雷达图 自定义点样式 渐变背景色
- 怎么利用计算机出数学卷子,怎样在电脑中编写数学试卷?
- JavaSE基础(79) BigInteger(能够存取比Long更大的整数,可以任意大小)
- DOS之特殊符号讲解
- R语言和Python连接hive