research: next-gift timing (gives within 90 days) as a discrete-time classifier

Đang mở
#347 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
18/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python, scikit-learn
Lĩnh vực
data, machine-learning

Hướng nghiên cứu

Start by reading build_snapshots in philanthropy/ingest/_snapshots.py and the splitter in philanthropy/model_selection/_temporal_donor_splitter.py, plus make_donor_panel in philanthropy.datasets for a first pass. Build donor-period rows per 90-day window and compare a scikit-learn classifier against the same-month-last-year rule on a held-out period. Done means a top-10% hit rate with an interval and a recorded adopt or reject decision; the public API proposal needs a maintainer comment first.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

enhancement help wanted roadmap
Goal

Tell a team which active donors are likely to give in the next 90 days, so the ask lands near the gift, and check it against "same month as last year".

Acceptance criteria
  • Build donor-period rows (one per donor per 90-day window) with features known at the window start; label is a gift inside the window. This is a discrete-time hazard model fit with a scikit-learn classifier, no survival library.
  • Baseline rule: the donor gave in the same calendar month last year.
  • Grouped split by donor and by time so no donor's future windows train the model that scores their past ones (FiscalYearGroupedSplitter, which needs donor ids in groups under its default drop_repeat_donors=True). Assign each window to the fiscal year it starts in, and drop any training window whose 90-day label period runs past the start of the test year: otherwise a June window's label is read from test-year gifts.
  • Report top-10% hit rate against the rule on a held-out period, with an interval; record adopt or reject.
  • If adopted, propose the public API in a comment here before building it.
Scope

Back-test first. The snapshot builder may need a window option; discuss before changing build_snapshots.

Where to start
  • philanthropy/ingest/_snapshots.py (build_snapshots)
  • philanthropy/model_selection/_temporal_donor_splitter.py
  • philanthropy.datasets.make_donor_panel for a first pass, then a real file
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.

Ngôn ngữ chính
Python
Star
11
Fork
23
Merge trung bình
1 ngày 11 giờ
Pull request đã merge (30 ngày)
30

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của PhilanthroPy-Project/PhilanthroPy

Tất cả issue của PhilanthroPy-Project/PhilanthroPy

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.