HomeIA e Machine LearningVerificatore di Sintomi — Inferenza con Rete Bayesiana dal Vivo

🩺 Verificatore di Sintomi — Inferenza con Rete Bayesiana dal Vivo

Osserva una vera rete bayesiana eseguire dal vivo un'inferenza probabilistica su nodi simulati di sintomi e malattie, propagando realmente le evidenze attraverso tabelle di probabilità condizionata per aggiornare le probabilità diagnostiche.

IA e Machine Learning3DAdvanced60 FPS
⚠️ Solo simulazione educativa — non è un consiglio medico. Le probabilità di malattie e sintomi qui presenti sono numeri semplificati e illustrativi usati per insegnare l'inferenza bayesiana, non uno strumento diagnostico validato. Non usare mai questa pagina per prendere decisioni reali sulla salute — consulta un professionista sanitario qualificato per qualsiasi dubbio medico.
ai-medical-symptom-bayesian-network ↗ Open standalone

Informazioni su questa simulazione

Questo simulatore costruisce una vera rete bayesiana: un unico nodo malattia con quattro stati mutuamente esclusivi (Influenza, Raffreddore Comune, Rinite Allergica, Sinusite Batterica) e otto nodi sintomo binari, ciascuno con una vera tabella di probabilità condizionata (CPT) di P(sintomo presente | malattia). Ogni volta che imposti un sintomo su Presente o Assente, il motore riesegue l'inferenza esatta per enumerazione — moltiplicando le probabilità a priori per le verosimiglianze e rinormalizzando secondo la regola di Bayes — per ricalcolare da zero tutte e quattro le probabilità a posteriori delle malattie. Qui non c'è nessun punteggio pesato fittizio: ogni numero è una probabilità calibrata derivata dalla struttura reale della rete.

🔬 Cosa mostra

Un grafo 3D della rete: quattro sfere di malattia e otto sfere di sintomo collegate da archi la cui luminosità codifica ogni voce della CPT P(sintomo | malattia). Il bagliore e la dimensione del nodo malattia seguono la probabilità a posteriori dal vivo; i nodi sintomo si illuminano quando li segni come Presenti. Un pannello HUD a grafico a barre mostra le quattro probabilità a posteriori aggiornarsi in tempo reale al variare delle evidenze.

🎮 Come si usa

Clicca su Presente / Assente / Sconosciuto sotto ogni sintomo per aggiungere o rimuovere evidenze. Osserva le probabilità a posteriori delle malattie ricalcolarsi istantaneamente tramite enumerazione esatta. Usa «Simula paziente casuale» per campionare una malattia vera nascosta e le sue evidenze sintomatiche dalle stesse CPT, poi verifica se il motore di inferenza recupera la diagnosi corretta man mano che riveli più sintomi. Reimposta riporta tutte le evidenze alle probabilità a priori.

💡 Lo sapevi?

Poiché i sintomi di questa rete sono condizionatamente indipendenti data la malattia (una struttura «naive Bayes»), l'inferenza esatta non richiede mai approssimazioni — la distribuzione congiunta completa si fattorizza in modo pulito, e calcolare qualsiasi probabilità a posteriori è solo un passaggio di moltiplicazione e normalizzazione, indipendentemente da quanti sintomi vengono osservati contemporaneamente.

Domande frequenti

Cos'è una rete bayesiana?

Una rete bayesiana è un grafo aciclico diretto (DAG) in cui i nodi rappresentano variabili casuali e gli archi rappresentano una dipendenza probabilistica diretta. Ogni nodo memorizza una tabella di probabilità condizionata (CPT) che dà la probabilità degli stati di quel nodo dati gli stati dei suoi genitori. La probabilità congiunta di tutte le variabili nella rete si fattorizza come il prodotto della voce CPT di ogni nodo, il che permette di rappresentare in modo compatto l'intera distribuzione congiunta invece che come un'unica tabella enorme. Questa simulazione usa un nodo malattia con quattro stati mutuamente esclusivi (Influenza, Raffreddore Comune, Rinite Allergica, Sinusite Batterica) come genitore di otto nodi sintomo binari, ciascuno con una propria CPT reale di P(sintomo presente | malattia).

Come funziona qui l'inferenza esatta per enumerazione?

Poiché l'unico genitore di ogni nodo sintomo è il nodo malattia, la probabilità congiunta di uno stato di malattia d insieme a un insieme di valori di sintomo osservati e1..ek è P(d) moltiplicato per il prodotto di P(ei | d) per ogni sintomo osservato i, direttamente dalla regola di Bayes e dalla regola della catena per questa struttura a grafo. Il simulatore calcola quel prodotto non normalizzato per tutti e quattro gli stati di malattia, poi divide ciascuno per la somma su tutti e quattro affinché i risultati sommino a 1 — questa è inferenza esatta per enumerazione, non un'approssimazione né una somma pesata euristica. Ogni volta che attivi un sintomo, l'intera enumerazione viene ricalcolata dalle probabilità a priori e dalle CPT originali.

Perché attivare un sintomo cambia la probabilità di più malattie contemporaneamente?

Perché tutte le malattie competono per la stessa massa di probabilità normalizzata. Osservare occhi pruriginosi e lacrimosi moltiplica il punteggio dell'allergia per una verosimiglianza alta (0.75) e il punteggio dell'influenza per una verosimiglianza bassa (0.05); dopo la rinormalizzazione, la quota dell'allergia sale e quella di ogni altra malattia scende, anche se le loro singole voci CPT per quel sintomo non sono cambiate. Questo è l'aggiornamento bayesiano: l'evidenza a favore di un'ipotesi è automaticamente evidenza contro le sue concorrenti, esattamente ciò che dovrebbe fare un vero ragionamento diagnostico.

In cosa differisce da una semplice euristica a punteggio pesato?

Un sistema euristico di punteggio potrebbe semplicemente sommare punti per ogni sintomo corrispondente senza una giustificazione di principio per i pesi o per il totale. Questo simulatore invece moltiplica vere probabilità condizionate secondo la regola del prodotto della probabilità e normalizza secondo la vera verosimiglianza marginale dell'evidenza osservata, esattamente come richiede la regola di Bayes: P(malattia | evidenza) = P(evidenza | malattia) P(malattia) / P(evidenza). I numeri sono probabilità calibrate che sommano a 1 e possono essere verificate a mano per qualsiasi singola evidenza, non un punteggio arbitrario.

Cosa rappresentano le tabelle di probabilità condizionata (CPT)?

La CPT di ogni sintomo elenca, per ogni stato di malattia, la probabilità che un paziente con quella malattia manifesti il sintomo, ad esempio P(febbre = presente | Influenza) = 0.80 contro P(febbre = presente | Rinite Allergica) = 0.02. Questi valori illustrativi riflettono tendenze cliniche ben note (febbre e dolori muscolari sono comuni nell'influenza, occhi pruriginosi e starnuti sono comuni nelle allergie, la pressione facciale è comune nella sinusite) ma sono numeri didattici semplificati, non statistiche diagnostiche da un vero dataset clinico.

Questa simulazione è un consiglio medico?

No. Questa è una dimostrazione educativa dell'inferenza con reti bayesiane che usa numeri di probabilità illustrativi e semplificati. Non è uno strumento diagnostico, non è stata validata su dati reali di pazienti, e non deve mai essere usata per prendere decisioni sulla tua salute o su quella di altri. Se hai sintomi che ti preoccupano, contatta un professionista sanitario qualificato o i servizi di emergenza locali.

Frequently asked questions

What is a Bayesian network?

A Bayesian network is a directed acyclic graph (DAG) in which nodes represent random variables and edges represent direct probabilistic dependence. Each node stores a conditional probability table (CPT) giving the probability of that node's states given the states of its parents. The joint probability of every variable in the network factorises as the product of each node's CPT entry, which lets the full joint distribution be represented compactly instead of as one enormous table. This simulation uses a disease node with four mutually exclusive states (Flu, Common Cold, Allergic Rhinitis, Bacterial Sinusitis) as the parent of eight binary symptom nodes, each with its own real CPT of P(symptom present | disease).

How does the exact inference by enumeration work here?

Because every symptom node's only parent is the disease node, the joint probability of a disease state d together with a set of observed symptom values e₁..eₖ is P(d) times the product of P(eᵢ | d) for every observed symptom i, straight from Bayes' rule and the chain rule for this graph structure. The simulator computes that unnormalised product for all four disease states, then divides each by the sum across all four so the results sum to 1 — this is exact enumeration inference, not an approximation and not a heuristic weighted sum. Every time you toggle a symptom, the full enumeration is recomputed from the original priors and CPTs.

Why does toggling one symptom change the probability of several diseases at once?

Because all diseases compete for the same normalised probability mass. Observing itchy, watery eyes multiplies the allergy score by a high likelihood (0.75) and the flu score by a low likelihood (0.05); after renormalising, allergy's share rises and every other disease's share falls, even though their own individual CPT entries for that symptom did not change. This is Bayesian updating: evidence for one hypothesis is automatically evidence against its competitors, which is exactly what real diagnostic reasoning should do.

How is this different from a simple weighted-score heuristic?

A heuristic scoring system might just add up points for each matching symptom with no principled justification for the weights or the total. This simulator instead multiplies genuine conditional probabilities together according to the product rule of probability and normalises by the true marginal likelihood of the observed evidence, exactly as Bayes' rule requires: P(disease | evidence) = P(evidence | disease) P(disease) / P(evidence). The numbers are calibrated probabilities that sum to 1 and can be checked by hand for any single piece of evidence, not an arbitrary score.

What do the conditional probability tables (CPTs) represent?

Each symptom's CPT lists, for every disease state, the probability that a patient with that disease would exhibit the symptom, for example P(fever = present | Flu) = 0.80 versus P(fever = present | Allergic Rhinitis) = 0.02. These illustrative values reflect well-known clinical tendencies (fever and body aches are common in flu, itchy eyes and sneezing are common in allergies, facial pressure is common in sinusitis) but are simplified teaching numbers, not diagnostic statistics from a real clinical dataset.

Is this simulation medical advice?

No. This is an educational demonstration of Bayesian network inference using illustrative, simplified probability numbers. It is not a diagnostic tool, has not been validated on real patient data, and must never be used to make decisions about your health or anyone else's. If you have symptoms that concern you, contact a qualified healthcare professional or your local emergency services.

⚙ Dietro le quinte

A disease node with four states and eight binary symptom nodes, each with a real CPT, form a naive-Bayes-structured Bayesian network. Exact inference by enumeration recomputes all four disease posteriors from Bayes' rule every time evidence changes.

Bayesian NetworkBayes' RuleProbabilistic InferenceCPT

3D · renderer Three.js / WebGL · target 60 FPS · funziona interamente lato client, senza installazione

What did you find?

Add reproduction steps (optional)