Sistem de predicție a diagnosticului de Alzheimer
Autore: Mihai Nan
🧠 Sistem de predicție a diagnosticului de Alzheimer 🩺
Un institut medical dorește să dezvolte un sistem automatizat care să ajute la
identificarea pacienților cu risc de Alzheimer, folosind date clinice,
demografice și comportamentale.
Ai primit un set de date cu pacienți evaluați clinic, iar scopul este să construiești
un model de clasificare binară care să poată prezice diagnosticul pentru pacienți noi.
Ți-au fost puse la dispoziție următoarele fișiere:
- train.csv – date istorice despre pacienți, care conțin diagnosticul
- test.csv – date despre pacienți noi, fără diagnostic
Scopul principal: predicția probabilității ca un pacient să fie diagnosticat cu Alzheimer
(valoare între 0 și 1, unde 0 = pacient sănătos, 1 = pacient cu Alzheimer).
📊 Setul de date
Fiecare rând reprezintă un pacient și conține următoarele atribute:
🔑 Identificare
PatientID– identificator unic al pacientului
👤 Date demografice
Age– vârsta pacientuluiGender– sexul (0= feminin,1= masculin)Ethnicity– etnia pacientului (valori codificate numeric)EducationLevel– nivelul educațional (codificat numeric)
🧬 Stil de viață și sănătate
BMI– indicele de masă corporalăSmoking– fumător (1) / nefumător (0)AlcoholConsumption– consum de alcoolPhysicalActivity– nivelul de activitate fizicăDietQuality– calitatea dieteiSleepQuality– calitatea somnului
🏥 Istoric medical
FamilyHistoryAlzheimers– istoric familial AlzheimerCardiovascularDisease– boli cardiovasculareDiabetes– diabetDepression– depresieHeadInjury– traumatisme cranieneHypertension– hipertensiuneSystolicBP,DiastolicBP– tensiune arterialăCholesterolTotal,CholesterolLDL,CholesterolHDL,CholesterolTriglycerides
🧠 Evaluări cognitive și funcționale
MMSE– scor Mini-Mental State ExaminationFunctionalAssessment– evaluare funcționalăADL– activități zilnice
⚠️ Simptome cognitive și comportamentale
MemoryComplaintsBehavioralProblemsConfusionDisorientationPersonalityChangesDifficultyCompletingTasksForgetfulness
🎯 Eticheta țintă
Diagnosis– doar în train.csv1= diagnostic Alzheimer0= fără Alzheimer
Scopul final: prezice Diagnosis pentru rândurile din test.csv.
📝 Task-uri
Primele două subtask-uri verifică analiza exploratorie a datelor.
Ultimul subtask evaluează performanța modelului de clasificare.
Subtask 1 (10 puncte)
Calculează pentru fiecare pacient din test.csv câți pacienți sunt în setul de antrenare (train.csv) care au aceeași vârstă cu cea a pacientului din setul de testare.
Afișează în fișierul de submisie un număr natural (conform formatului prezentat mai jos).
Subtask 2 (15 puncte)
Pentru fiecare pacient din test.csv, determină procentul de pacienți fumători
(Smoking = 1) din setul de antrenare (train.csv) care au aceeași vârstă
cu pacientul respectiv.
Formula de calcul pentru un pacient cu vârsta v:
(număr pacienți fumători din train cu Age = v) /
(număr total pacienți din train cu Age = v) * 100
Afișează în fișierul de submisie un număr real între 0 și 100,
cu maxim 2 zecimale, pentru fiecare pacient.
Dacă în setul de antrenare nu există niciun pacient cu vârsta respectivă,
valoarea afișată va fi 0.
Subtask 3 (75 puncte)
Construiește un model de clasificare care prezice probabilitatea de diagnostic Alzheimer
(p ∈ [0,1]) pentru fiecare pacient din test.csv.
Evaluarea se face folosind ROC Curve și AUC (Area Under the ROC Curve).
🧮 Evaluare
- AUC ≥ 0.90 → 75 puncte
- AUC ≤ 0.70 → 0 puncte
- Intervalul dintre ele: punctaj proporțional
Subtask-urile 1–2 se evaluează exact (prin comparare).
📄 Formatul fișierului de submisie
Fișierul submission.csv trebuie să conțină 3 linii pentru fiecare pacient din test,
corespunzătoare celor 3 subtask-uri.
Structură:
subtaskID, datapointID, answer
unde:
- subtaskID – 1, 2 sau 3
- datapointID – valoarea
PatientID - answer – depinde de subtask:
- Subtask 1: numărul de pacienți cu aceeași vârstă din setul de antrenare (număr natural)
- Subtask 2: procentul de fumători care au aceeași vârstă cu pacientul (număr real)
- Subtask 3: probabilitatea de Alzheimer (număr real între 0 și 1)
Exemplu pentru PatientID = 4751:
subtaskID,datapointID,answer
1,4751,23
2,4751,31.8
3,4751,0.873
📊 Metrica de evaluare: ROC AUC 📈
Pentru Subtask 3, evaluarea se face folosind ROC AUC (Area Under the ROC Curve),
o metrică standard pentru probleme de clasificare binară.
Interpretarea scorului:
- ROC AUC = 1.0 🏆 → model perfect
- ROC AUC = 0.5 🎲 → clasificare aleatorie
- ROC AUC > 0.5 📈 → cu cât scorul este mai mare, cu atât modelul separă mai bine clasele