Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@
- **Replay** — учитывает только те логи, где B совпадает с A.
- **IPS** — взвешивает отклики по отношению вероятностей выбора в B и A.
- **SNIPS** — нормализует веса IPS для меньшей дисперсии.
- **Doubly Robust** — комбинирует модель отклика и IPS; достаточно корректности хотя бы одной из них.
- **Direct Method** — строит модель отклика и прогнозирует исходы под политикой B.
- **Doubly Robust** — комбинирует Direct Method и IPS; достаточно корректности хотя бы одной из них.
- **SN-DR** — нормализует поправку Doubly Robust, что снижает дисперсию.
- **Switch-DR** — применяет IPS-поправку только при малых весах, иначе полагается на модель.

Expand All @@ -23,6 +24,7 @@
- **Replay** — новая политика должна часто совпадать со старой, иначе большинство логов отбрасывается.
- **IPS** — требует точного знания вероятностей действий в обеих политиках; большие веса увеличивают дисперсию.
- **SNIPS** — нормализует веса IPS и снижает дисперсию, но остаётся чувствительным к ошибкам вероятностей и малым объёмам данных.
- **Direct Method** — зависит от точности модели отклика и может смещаться вне обучающей области.
- **Doubly Robust** — корректность достигается, если верна хотя бы модель отклика или пропенсити, но метод чувствителен к ошибкам обеих моделей и выбору клиппинга.
- **SN-DR** — уменьшает дисперсию DR за счёт нормализации весов, но наследует его предположения.
- **Switch-DR** — отбрасывает экстремальные веса, сочетая DM и DR, но выбор порога влияет на смещение.
Expand Down Expand Up @@ -91,6 +93,7 @@ from policyscope.estimators import (
replay_value,
ips_value,
snips_value,
dm_value,
dr_value,
sndr_value,
switch_dr_value,
Expand All @@ -107,10 +110,11 @@ mu_hat = train_mu_hat(df, target="accept")
V_replay = replay_value(df, policyB, target="accept")
V_ips, ess_ips, clip_ips = ips_value(df, piB_taken, pA_taken, target="accept")
V_snips, ess_snips, clip_snips = snips_value(df, piB_taken, pA_taken, target="accept")
V_dm = dm_value(df, policyB, mu_hat, target="accept")
V_dr, ess_dr, clip_dr = dr_value(df, policyB, mu_hat, pA_taken, target="accept")
V_sndr, ess_sndr, clip_sndr = sndr_value(df, policyB, mu_hat, pA_taken, target="accept")
V_switch, ess_switch, share_switch = switch_dr_value(df, policyB, mu_hat, pA_taken, tau=20, target="accept")
print(V_replay, V_ips, V_snips, V_dr, V_sndr, V_switch)
print(V_replay, V_ips, V_snips, V_dm, V_dr, V_sndr, V_switch)
```

## Валидация оценок
Expand Down
Loading
Loading