Predicția statusului pacientului - Simulare OJIA 2
Author: Mihai Nan
🏥 Problema: Analiza și predicția stării pacientului
Pentru această problemă trebuie să implementați un model de învățare automată pentru a prezice valoarea câmpului Status utilizând un set de date disponibil, care conține informații despre pacienți. Setul de date este organizat într-un fișier CSV care include diverse trăsături (features), iar evaluarea modelului se va face pe baza preciziei pentru clasa Dead.
📊 Setul de date
Setul de date conține următoarele câmpuri:
- Age: Vârsta pacientului.
- Race: Rasa pacientului (ex: White, Other).
- Marital Status: Starea civilă a pacientului.
- T Stage: Stadiul tumorii (T1, T2, T3, T4).
- N Stage: Gradul de afectare a ganglionilor limfatici.
- 6th Stage: Stadiul cancerului conform clasificării TNM a celei de-a 6-a ediții.
- differentiate: Gradul de diferențiere tumorală.
- Grade: Gradul histologic al tumorii (1, 2, 3 etc.).
- A Stage: Clasificarea stadiului bolii.
- Tumor Size: Dimensiunea tumorii.
- BMI: Indicele de masă corporală.
- Heart Rate: Ritmul cardiac.
- Serum Creatinine: Nivelul seric de creatinină.
- Uric Acid: Nivelul acidului uric.
- Hemoglobin: Concentrația hemoglobinei.
- GFR (Glomerular Filtration Rate): Rata de filtrare glomerulară.
- Serum Sodium: Concentrația de sodiu seric.
- Serum Potassium: Concentrația de potasiu seric.
- Serum Albumin: Nivelul albuminei serice.
- Lactate: Concentrația lactatului.
- Status: Starea pacientului („Dead” sau „Alive”) – câmpul țintă.
📝 Task-uri
Pentru primele subtasks, va trebui să încărcați setul de date și să efectuați analize statistice pe train.csv.
Subtask 1 (10 puncte)
Clasificați funcția renală pentru fiecare pacient pe baza valorii GFR:
Normaldacă GFR >= 90Mildly Decreaseddacă 60 <= GFR < 90
Subtask 2 (10 puncte)
Calculați cuartilele valorilor din coloana Serum Creatinine (Q1, Q2, Q3) și clasificați pacienții în test:
Very Lowdacă Serum Creatinine <= Q1Lowdacă Q1 < Serum Creatinine <= Q2Highdacă Q2 < Serum Creatinine <= Q3Very Highdacă Serum Creatinine > Q3
Subtask 3 (10 puncte)
Determinarea valorii BMI:
- 1 dacă BMI > mediana din train
- 0 dacă BMI <= mediana
Subtask 4 (10 puncte)
Numărul de pacienți din train care se află în același T Stage ca pacientul din test.
Subtask 5 (60 puncte)
Construiți un model de ML pentru a prezice Status (Dead sau Alive) în funcție de trăsături. Evaluarea se face pe baza preciziei pentru clasa Dead.
🧮 Evaluare
Metrica de evaluare este precizia pentru clasa Dead:
unde:
- TP = numărul de pacienți corect prezis
Dead - FP = numărul de pacienți prezis
Deadincorect
Formatul fișierului de submisie
Fișierul de submisie trebuie să fie în format CSV (Comma-Separated Values), cu următoarele coloane:
- subtaskID - indicele task-ului pentru care furnizăm răspunsul
- datapointID - identificatorul unic al pacientului din setul de date
- answer - răspunsul asociat pacientului din setul de date pentru task-ul indicat
Exemplu:
subtaskID,datapointID,answer
1,3220,Normal
2,3220,Very High
3,3220,0
4,3220,1281
5,3220,1
📌 Note
- Câmpul țintă este
Status. - Unele câmpuri pot conține valori lipsă (NaN) și trebuie tratate.
- Se recomandă analiza corelației dintre variabile și variabila țintă.
- Detectați și eliminați valori extreme dacă afectează performanța modelului.
- Trimiterea unui
sample_outputpentru testare locală oferă 5 puncte.
🗂️ Resurse utile
- Starter Kit complet – conține un schelet de la care puteți porni rezolvarea problemei