🏥 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.
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
Crea una nuova cella su Google Colab e definisci i dati dei pazienti:
# 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
Aggiungi l'analisi base per visualizzare i dati in modo organizzato:
# 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
Crea il sistema di intelligenza artificiale per l'analisi automatica:
# 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")
• 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
Crea una nuova cella per organizzare i risultati dell'IA:
# 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
Crea un sistema di consultazione per il personale medico:
# 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
Aggiungi analisi statistiche per report completi:
# 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!