🏥 Analisi Dati Medici con Intelligenza Artificiale

Dall’analisi base dei dati alla diagnosi automatica con Python

Introduzione

Benvenuto in questa esercitazione avanzata di Python applicato all’Intelligenza Artificiale in ambito medico! Simuleremo un sistema di triage automatico che analizza i parametri vitali dei pazienti e fornisce una diagnosi preliminare.

Scenario Reale:
Lavorerai come sviluppatore IA in un ospedale che ha bisogno di automatizzare l’analisi preliminare dei parametri vitali dei pazienti per identificare rapidamente i casi che richiedono attenzione immediata.

⚠️ ATTENZIONE: COPIA BLOCCATA

Il codice è protetto da sistema anti-copia. Dovrai SCRIVERE manualmente tutto il codice per imparare veramente! 🚫📋

Parte 1: Preparazione dei Dati Medici

▶ Creazione del Dataset Medico

1
Crea una nuova cella su Google Colab e definisci i dati dei pazienti:
PYTHON
# DATI DI SALUTE DA ANALIZZARE CON IA
dati_pazienti = [
    "Pressione: 120/80, Battito: 72, Glicemia: 95",
    "Pressione: 140/90, Battito: 85, Glicemia: 110", 
    "Pressione: 110/70, Battito: 68, Glicemia: 88",
    "Pressione: 160/95, Battito: 92, Glicemia: 130",
    "Pressione: 125/82, Battito: 75, Glicemia: 98",
    "Pressione: 135/88, Battito: 80, Glicemia: 105",
    "Pressione: 118/76, Battito: 70, Glicemia: 92",
    "Pressione: 150/92, Battito: 88, Glicemia: 120",
    "Pressione: 130/85, Battito: 78, Glicemia: 100",
    "Pressione: 128/84, Battito: 74, Glicemia: 96"
]

print("📊 DATI MEDICI DEI PAZIENTI\n")
for i, dati in enumerate(dati_pazienti, 1):
    print(f"{i}. {dati}")

▶ Analisi Esplorativa dei Dati

2
Aggiungi l'analisi base per visualizzare i dati in modo organizzato:
PYTHON
# 2. CICLO FOR BASE - Analisi semplice
print("\n🔍 ANALISI BASE DEI DATI" + "="*30)
for dati in dati_pazienti:
    print(f"🏥 {dati[:25]}" + "."*20)

# 3. CICLO FOR CON INDICE - Per tracciare progresso
print("\n📋 PAZIENTI NUMERATI" + "="*35)
for i, dati in enumerate(dati_pazienti, 1):
    print(f"Paziente #{i}: {dati}")

Parte 2: Sistema IA di Diagnosi Automatica

▶ Definizione dei Parametri Medici

3
Crea il sistema di intelligenza artificiale per l'analisi automatica:
PYTHON
# 4. CICLO FOR CON CONDIZIONI - Diagnosi intelligente con IA!
print("\n🩺 DIAGNOSI AUTOMATICA CON IA" + "="*50)

diagnosi = []

for dati in dati_pazienti:
    dati_lower = dati.lower()
    parametri_ok = 0
    parametri_anomali = 0
    
    # Analisi pressione (IA Rule-based)
    if "pressione: 12" in dati_lower or "pressione: 11" in dati_lower:
        parametri_ok += 1
    elif "pressione: 14" in dati_lower or "pressione: 15" in dati_lower or "pressione: 16" in dati_lower:
        parametri_anomali += 1
    
    # Analisi battito cardiaco (IA Rule-based)
    if "battito: 7" in dati_lower or "battito: 6" in dati_lower:
        parametri_ok += 1
    elif "battito: 8" in dati_lower or "battito: 9" in dati_lower:
        parametri_anomali += 1
    
    # Analisi glicemia (IA Rule-based)
    if "glicemia: 9" in dati_lower or "glicemia: 8" in dati_lower:
        parametri_ok += 1
    elif "glicemia: 11" in dati_lower or "glicemia: 12" in dati_lower or "glicemia: 13" in dati_lower:
        parametri_anomali += 1
    
    # Decisione IA
    if parametri_ok > parametri_anomali:
        stato_salute = "✅ NORMALE"
    elif parametri_anomali > parametri_ok:
        stato_salute = "⚠️  ATTENZIONE"
    else:
        stato_salute = "🔶 CONTROLLO"
    
    risultato_diagnosi = f"{dati} -> {stato_salute} (OK:{parametri_ok}/Anomali:{parametri_anomali})"
    diagnosi.append(risultato_diagnosi)

# Visualizza tutte le diagnosi
for risultato in diagnosi:
    print(risultato)

print(f"\n📈 TOTALE ANALISI: {len(diagnosi)} pazienti")

Spiegazione del Sistema IA:
Rule-based AI: Il sistema usa regole predefinite basate su conoscenza medica
Pattern Recognition: Riconosce pattern nei dati dei pazienti
Decision Making: Prende decisioni automatiche basate sui parametri
Scalabilità: Può essere migliorato con machine learning avanzato

Parte 3: Organizzazione dei Risultati Medici

▶ Classificazione Automatica dei Pazienti

4
Crea una nuova cella per organizzare i risultati dell'IA:
PYTHON
# 5. CLASSIFICAZIONE DEI RISULTATI - Organizzazione dati IA
pazienti_normali = []
pazienti_attenzione = []
pazienti_controllo = []

for risultato in diagnosi:
    if "✅ NORMALE" in risultato:
        pazienti_normali.append(risultato)
    elif "⚠️  ATTENZIONE" in risultato:
        pazienti_attenzione.append(risultato)
    else:
        pazienti_controllo.append(risultato)

print("🎯 CLASSIFICAZIONE AUTOMATICA DEI PAZIENTI")
print("="*50)
print(f"✅ Pazienti normali: {len(pazienti_normali)}")
print(f"⚠️  Pazienti da monitorare: {len(pazienti_attenzione)}")  
print(f"🔶 Pazienti a rischio: {len(pazienti_controllo)}")
print(f"📊 Totale analizzati: {len(diagnosi)}")

▶ Interfaccia per il Personale Medico

5
Crea un sistema di consultazione per il personale medico:
PYTHON
# 6. INTERFACCIA PER CONSULTAZIONE MEDICA
print("\n" + "="*60)
print("🧪 SISTEMA DI ANALISI MEDICA CON IA")
print("="*60)

scelta = input("\nQuali dati vuoi visualizzare? (NORMALI/ATTENZIONE/CONTROLLO/TUTTI): ").upper()

if scelta == "NORMALI":
    print(f"\n📋 PAZIENTI CON PARAMETRI NORMALI ({len(pazienti_normali)}):")
    for paziente in pazienti_normali:
        print(f"  • {paziente}")
        
elif scelta == "ATTENZIONE":
    print(f"\n🚨 PAZIENTI CHE RICHIEDONO ATTENZIONE ({len(pazienti_attenzione)}):")
    for paziente in pazienti_attenzione:
        print(f"  • {paziente}")
        
elif scelta == "CONTROLLO":
    print(f"\n🔶 PAZIENTI DA MONITORARE ({len(pazienti_controllo)}):")
    for paziente in pazienti_controllo:
        print(f"  • {paziente}")
        
elif scelta == "TUTTI":
    print(f"\n📊 PANORAMICA COMPLETA:")
    print(f"  ✅ Normali: {len(pazienti_normali)} pazienti")
    print(f"  ⚠️  Attenzione: {len(pazienti_attenzione)} pazienti") 
    print(f"  🔶 Controllo: {len(pazienti_controllo)} pazienti")
    
else:
    print("❌ Scelta non valida. Usa: NORMALI, ATTENZIONE, CONTROLLO o TUTTI")

Parte 4: Estensioni e Analisi Avanzata

▶ Statistiche Mediche Avanzate

6
Aggiungi analisi statistiche per report completi:
PYTHON
# EXTRA: STATISTICHE AVANZATE PER REPORT MEDICO
print("\n" + "📊 STATISTICHE AVANZATE" + "="*40)
print(f"Percentuale pazienti normali: {(len(pazienti_normali)/len(diagnosi))*100:.1f}%")
print(f"Percentuale pazienti a rischio: {(len(pazienti_attenzione)/len(diagnosi))*100:.1f}%")
print(f"Percentuale da monitorare: {(len(pazienti_controllo)/len(diagnosi))*100:.1f}%")

# Creazione lista unica per backup
tutti_pazienti = []
tutti_pazienti.extend(pazienti_normali)
tutti_pazienti.extend(pazienti_attenzione) 
tutti_pazienti.extend(pazienti_controllo)

print(f"\n💾 Backup dati creato: {len(tutti_pazienti)} record salvati")

Concetti di Intelligenza Artificiale Appresi

Congratulazioni! Ora conosci:

  • AI Rule-based Systems: Sistemi a regole per decisioni automatiche
  • Pattern Recognition: Riconoscimento pattern in dati medici
  • Data Preprocessing: Preparazione dati per l'analisi IA
  • Classification Algorithms: Algoritmi di classificazione automatica
  • Medical Data Analysis: Analisi di parametri vitali
  • Decision Support Systems: Sistemi di supporto alle decisioni mediche
  • Python for Healthcare: Applicazioni Python in ambito sanitario

Prossimi Passi nell'IA Medica

Nella prossima esercitazione imparerai:

  • 🤖 Machine Learning per diagnosi predittive
  • 📈 Analisi di serie temporali mediche
  • 🩺 Sistemi di raccomandazione per trattamenti
  • 📱 Dashboard interattive per medici
  • 🔬 Analisi di immagini mediche con CNN

Hai costruito le basi per diventare uno sviluppatore IA in ambito healthcare!

Torna in alto