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

Abierto
#347 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
18/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
python, scikit-learn

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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).
  • 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.

Lenguaje dominante
Python
Estrellas
11
Forks
23
Merge medio
1 d 8 h
PR fusionados (30 d)
35

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de PhilanthroPy-Project/PhilanthroPy

Todos los issues de PhilanthroPy-Project/PhilanthroPy

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.