[FAQ] HW5 (2026): predict_proba differs — locked env, artifact checksum, normalize_record
I maintainer di solito rispondono entro 2 giorni
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- Meno di un'ora
- Idoneità per principianti
- 35/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- docker, numpy, python, scikit-learn
- Ambito
- documentation, machine-learning
Direzione di ricerca
The issue already provides a full FAQ answer, including commands and references to cohorts/2026/homework/05-deployment/homework.md and model.py. Check whether that guidance matches the frozen homework release and API behavior; done means the answer is accurate and resolves the reported probability mismatch. The FAQ checklist says the answer is already complete, so this is not an evident first contribution.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Course
machine-learning-zoomcamp
Question
Homework 5 (2026): Why do my predict_proba results differ from the expected options, even though my code runs without errors?
Answer
Fix first — make sure you run the frozen 2026 release exactly as checked in, without retraining or regenerating anything:
-
Verify the artifact before using it (from
cohorts/2026/homework/05-deployment/):sha256sum pipeline.binIt must match the hash in
homework.md. If it differs, re-download the directory instead of debugging numbers. -
Use the locked environment, don't regenerate it:
uv sync --lockedDo not run
uv syncwithout--lockedand do not regenerateuv.lock. A different scikit-learn/numpy build can shift probabilities. -
Normalize the lead exactly like the API does (
model.py):import pickle from model import normalize_record with open("pipeline.bin", "rb") as f: pipeline = pickle.load(f) record = normalize_record(lead) # training-set medians, "NA" for missing categoricals prob = float(pipeline.predict_proba([record])[0, 1])Hand-rolling imputation (e.g.
fillna(0)) instead ofnormalize_recordchanges the vector and the probability. -
Serve and containerize without edits:
uv run uvicorn predict:app --host 0.0.0.0 --port 9696 docker build -t zoomcamp-model:2026-hw5 . docker run --rm -p 9696:9696 zoomcamp-model:2026-hw5 curl -s http://localhost:9696/healthFree port 9696 first (stop any local uvicorn). The container must return the same inference as local; if it doesn't, the artifact or lockfile inside the build context differs.
Reference: cohorts/2026/homework/05-deployment/homework.md (frozen lead-scoring release, DictVectorizer + LogisticRegression(solver="liblinear", C=1.0)).
Checklist
- I have searched existing FAQs and this question is not already answered
- The answer provides accurate, helpful information
- I have included any relevant code examples or links
- Lingua principale
- Python
- Stelle
- 7
- Fork
- 20
- Merge medio
- 7g 9h
- PR unite (30g)
- 8
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di DataTalksClub/faq
-
[FAQ] omework 5 (2026): Why does `/predict` return 200 OK for `"Paid_Ads"`, `"tiktok"` or a negative count, and how do I reject bad input?Forse già presa @github-actions l’ha presa 1 giorno fa. Apertafaq-proposal
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
DataTalksClub/faq#524 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
[FAQ]Forse già presa @github-actions l’ha presa 2 giorni fa. Apertafaq-proposal
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
DataTalksClub/faq#521 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
DataTalksClub/faq#518 ·
I maintainer di solito rispondono entro 2 giorni
-
[FAQ] Commit ID for ProjectsForse già presa @github-actions l’ha presa 4 giorni fa. Apertafaq-proposal
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 84/100
DataTalksClub/faq#503 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
DataTalksClub/faq#486 ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di DataTalksClub/faq
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
-
Validate finite output clamping limits in StepPredictor.prepare_clamping_params to prevent silent NaN/Inf propagationForse già presa @muskan-creates352 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
mllam/neural-lam#848 ·
I maintainer di solito rispondono entro 2 giorni
-
infra
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
fab-geocommuns/RNB-coeur#1166 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
deepspeedai/DeepSpeed#8951 ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
aws/context-ontology-accelerator#343 ·
I maintainer di solito rispondono entro 1 giorno