Chiarimento del denominatore di Naive Bayes

Aug 21 2020

Mi sono imbattuto in un post precedente che è stato risolto e ha avuto un seguito, ma non ho potuto commentare perché la mia reputazione è inferiore a 50. Essenzialmente mi interessa calcolare il denominatore in Naive Bayes.

Ora capisco che si presume che le funzionalità di Naive Bayes siano indipendenti, quindi potremmo calcolare$p(x) = p(x_{1})p(x_{2})...p(x_{n})$o dovremmo usare questa formula$$p(\mathbf{x}) = \sum_k p(C_k) \ p(\mathbf{x} \mid C_k)$$con l'ipotesi di indipendenza condizionale che$$ p(\mathbf{x} \mid C_k) = \Pi_{i} \, p(x_i \mid C_k) $$

La mia domanda è: entrambi i modi di calcolo darebbero lo stesso p(x)?

Link alla domanda originale:https://datascience.stackexchange.com/posts/69699/edi

Modifica **: mi dispiace, credo che le funzionalità abbiano un'indipendenza condizionale, piuttosto che una completa indipendenza. Pertanto non è corretto da usare$p(x) = p(x_{1})p(x_{2})...p(x_{n})$?

Infine, capisco che in realtà non abbiamo bisogno del denominatore per trovare le nostre probabilità, ma lo chiedo per curiosità.

Risposte

1 Erwan Aug 21 2020 at 05:24

Il modo di calcolare$p(x)$è infatti:

$$p(x) = \sum_k p(C_k) \ p(x| C_k)$$

Poiché in generale è necessario calcolare$p(C_k,x)$(numeratore) per ogni$k$, è abbastanza semplice riassumere tutto questo$k$i valori. Sarebbe scorretto utilizzare il prodotto, anzi.

Infine, capisco che in realtà non abbiamo bisogno del denominatore per trovare le nostre probabilità, ma lo chiedo per curiosità.

Calcolo del marginale$p(x)$non è necessario per trovare la classe più probabile$C_k$perché:

$$argmax_k(\{ p(C_k|x) \}) = argmax_k(\{ p(C_k,x) \})$$

Tuttavia è effettivamente necessario per trovare la probabilità a posteriori$p(C_k | x)$, ecco perché è spesso utile calcolare il denominatore$p(x)$per ottenere$p(C_k | x)$, specialmente se si vogliono produrre le probabilità effettive.