docs: check whether a donor score is calibrated, by decile, on your own file
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 70/100
- Issue type
- Documentation
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- python, scikit-learn
- Domain
- documentation, machine-learning
Research direction
Read docs/how-to/estimate_donor_lifetime_value.md for the held-out-year pattern and philanthropy/datasets/_panel.py for make_donor_panel. Write the new page docs/how-to/check_score_calibration.md, then add it to docs/how-to/index.md and mkdocs.yml. Done when the decile table runs without a download and mkdocs build --strict passes.
Written by the indexing model from the issue text.
Description
Goal
A user can tell whether "a score of 0.3" means about 30% of those donors give, using only scikit-learn, before they put the number in front of a gift officer.
Acceptance criteria
- New how-to
docs/how-to/check_score_calibration.md: fitDonorPropensityModelon the earlier fiscal years of a gift panel, score the last year, and compare predicted vs actual per decile withsklearn.calibration.calibration_curve(y, p, n_bins=10, strategy="quantile"). - It shows the table, not only a plot, and says in plain words what an over- or under-confident decile means for a mailing list.
- It shows
CalibratedClassifierCV(..., method="sigmoid")as the fix and fits it on a fold the model was not trained on. The project's floor is scikit-learn 1.6, wherecv="prefit"is deprecated: wrap the already-fitted model asCalibratedClassifierCV(FrozenEstimator(model), method="sigmoid")(from sklearn.frozen import FrozenEstimator). - It says what the library already does, so nobody calibrates twice:
MajorGiftClassifieris Platt-calibrated internally over 5 folds, and theDonorPropensityModeldocstring reports that an isotonic wrapper lowered the top-10% hit rate on all five KDD Cup 1998 seeds. The point of the page is checking calibration on a later year of your own file, not re-fitting it by default. - Runs on
philanthropy.datasets.make_donor_panelso it needs no download; added todocs/how-to/index.mdandmkdocs.yml;mkdocs build --strictpasses.
Scope
Docs only. No new public function: scikit-learn already has calibration_curve and CalibratedClassifierCV.
Where to start
docs/how-to/estimate_donor_lifetime_value.mdfor the held-out-year patternphilanthropy/datasets/_panel.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.
- Dominant language
- Python
- Stars
- 11
- Forks
- 23
- Avg merge
- 15h 13m
- Merged PRs (30d)
- 30
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from PhilanthroPy-Project/PhilanthroPy
-
bug roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 77/100
PhilanthroPy-Project/PhilanthroPy#366 ·
Maintainers usually reply within 1 day
-
docs: state that grateful-patient features time every gift against the latest dischargePossibly taken @jimoholayinka01 claimed this today. Opendocumentation good first issue roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
PhilanthroPy-Project/PhilanthroPy#361 · 2 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
enhancement help wanted roadmap
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
PhilanthroPy-Project/PhilanthroPy#345 ·
Maintainers usually reply within 1 day
-
docs: "How to add a CRM ingest reader" checklist for contributorsPossibly taken @IG-ABHINAV claimed this 1 day ago. Openbeginner documentation good first issue roadmap
Difficulty 2/5 Half a day Newbie friendliness 68/100
PhilanthroPy-Project/PhilanthroPy#342 · 3 comments · 1 assignee ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 25/100
PhilanthroPy-Project/PhilanthroPy#369 ·
Maintainers usually reply within 1 day
All issues in PhilanthroPy-Project/PhilanthroPy
Similar issues
-
release
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
MichaelYcJo/SpecSeal#1535 ·
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
valentinfrlch/ha-llmvision#769 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 75/100
daniel-ospina/tortoise#11937 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue help wanted python up-for-grabs
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
andrewsiah/agentswarm-data-tasks#238 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
cadence-workflow/cadence-ai-samples#175 ·
Maintainers usually reply within 1 day