research: next-gift timing (gives within 90 days) as a discrete-time classifier
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
- Área
- data, machine-learning
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
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.pyphilanthropy.datasets.make_donor_panelfor 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
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de PhilanthroPy-Project/PhilanthroPy
-
enhancement help wanted roadmap
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
PhilanthroPy-Project/PhilanthroPy#345 ·
Los mantenedores suelen responder en 1 día
-
beginner documentation good first issue roadmap
Dificultad 2/5 Medio día Aptitud para principiantes 68/100
PhilanthroPy-Project/PhilanthroPy#342 ·
Los mantenedores suelen responder en 1 día
-
beginner enhancement good first issue roadmap
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
PhilanthroPy-Project/PhilanthroPy#340 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 35/100
PhilanthroPy-Project/PhilanthroPy#357 ·
Los mantenedores suelen responder en 1 día
-
documentation roadmap
Dificultad 2/5 Menos de una hora Aptitud para principiantes 30/100
PhilanthroPy-Project/PhilanthroPy#352 ·
Los mantenedores suelen responder en 1 día
Todos los issues de PhilanthroPy-Project/PhilanthroPy
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/onnxscript#3155 ·
Los mantenedores suelen responder en 4 días
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
bug docs severity:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
docs good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100