Skip to main content

Predicția statusului pacientului - Simulare OJIA 2

Author: Mihai Nan

Medium
Your best score: N/A
Problem Description

🏥 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:

  • Normal dacă GFR >= 90
  • Mildly Decreased dacă 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 Low dacă Serum Creatinine <= Q1
  • Low dacă Q1 < Serum Creatinine <= Q2
  • High dacă Q2 < Serum Creatinine <= Q3
  • Very High dacă 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:

Precision

unde:

  • TP = numărul de pacienți corect prezis Dead
  • FP = numărul de pacienți prezis Dead incorect

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_output pentru testare locală oferă 5 puncte.

🗂️ Resurse utile

Submit Solution
Upload output file and optionally source code for evaluation.

Submission File

Source Code File (optional)

Sign in to upload a submission.