research: tune `UpliftTLearner` on a validation fold and report Qini against the rules

未关闭
#348 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
25/100
Issue 类型
功能
描述清晰度
基本清楚
活跃度
活跃

调研方向

Start with philanthropy/experimental/_uplift.py to see how UpliftTLearner exposes max_depth and leaf size, then read qini_curve and qini_auc_score in philanthropy/metrics/_uplift.py, and the Karlan and List loader in philanthropy/datasets/_karlan_list.py. Done means a validation-tuned setting, held-out Qini with bootstrap intervals for the tuned model, the default, and both rules, and a recorded keep, change, or promote decision. Comment on the issue before starting, since the work is open-ended.

由索引模型根据 Issue 内容生成。

描述

enhancement help wanted roadmap
Goal

Settle whether UpliftTLearner should leave experimental, using the new qini_auc_score on randomised appeal data.

Acceptance criteria
  • Pick max_depth and n_estimators (the only two tree settings UpliftTLearner exposes) on a validation split of the Karlan and List data (philanthropy.datasets.load_karlan_list(path), a local file; the docstring says where to get it). The default max_depth=None is one candidate. Split with treatment stratified, since the file is a randomised trial.
  • Report qini_auc_score on the held-out split for the chosen setting, the default, and two rules built from the file's own columns: "most recent giver" (rank by months_since_last_gift, ascending) and "past spend" (rank by highest_previous_amount, descending). Give each a bootstrap interval.
  • Record the decision (keep in experimental, change the default, or promote) with the numbers. There is no uplift page under docs/results/ yet: put the table in docs/how-to/estimate_appeal_uplift.md, or propose a Results page here first if the result is worth one. Promotion out of experimental also needs the fit(X, y, treatment) signature question settled (see its Tier 3 row in docs/reference/index.md), so a good Qini alone does not promote it.
Scope

Randomised data only: uplift cannot be evaluated on observational files.

Where to start
  • philanthropy/experimental/_uplift.py
  • philanthropy/metrics/_uplift.py (qini_curve, qini_auc_score)
  • philanthropy/datasets/_karlan_list.py
Dependencies
  • None

Phase order is a release plan, not a rule against picking up independent work early. Comment on this issue before you start so two people don't build the same thing.

主要语言
Python
星标
11
派生
23
平均合并
1 天 11 小时
30 天内合并 PR
30

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

PhilanthroPy-Project/PhilanthroPy 的其他 Issue

查看 PhilanthroPy-Project/PhilanthroPy 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。