Clasificador bayesiano explicado

Soy un novato al principio, espero registrar lo que he aprendido como tomar notas, y también espero ayudar a las personas que también están comenzando. ​​​​​​​​

Tabla de contenido

1. Base matemática

1. Teoría de la decisión bayesiana

(1) Probabilidad previa y probabilidad posterior

(2) Teorema de Bayes

2. Estimación de máxima verosimilitud

(1) Idea básica

(2) Derivación de fórmulas

(3) Supuestos comunes - distribución normal

2. Clasificador bayesiano ingenuo

1. Configuración de símbolos

2. Cálculo de probabilidad posterior

3. Método de máxima verosimilitud para encontrar los parámetros de distribución más adecuados

4. Supuestos comunes: distribución normal

5. Suavizado de Laplace

3. Ventajas y desventajas

1. Ventajas

2. Desventajas

4. Ejemplo de código


1. Base matemática

1. Teoría de la decisión bayesiana

(1) Probabilidad previa y probabilidad posterior

Probabilidad previa: la probabilidad obtenida de la experiencia y el análisis pasados;

Probabilidad posterior: algo ha sucedido, y se requiere que la razón para que esto suceda sea el tamaño de la posibilidad provocada por un determinado factor (es decir, el valor de probabilidad después de la corrección según la muestra observada).

(2) Teorema de Bayes

Propósito: para resolver el problema de "probabilidad inversa", puede predecir la probabilidad en función de datos pasados ​​y predecir la probabilidad con información limitada.

P\left(B_{i} \mid A\right)=\frac{P\left(B_{i}\right) P\left(A \mid B_{i}\right)}{P(A)} =\frac{P\izquierda(B_{i}\derecha) P\izquierda(A \mid B_{i}\derecha)}{\sum_{j=1}^{n} P\izquierda(B_{j} \right) P\left(A \mid B_{j}\right)}

P(B): Probabilidad previa, es decir, nuestro juicio subjetivo sobre la probabilidad del evento B sin conocer el evento A.

P(A|B)/P(A): La función de posibilidad, es decir, el factor de ajuste, es decir, el ajuste que aporta la nueva información A, para que la probabilidad que se obtiene al multiplicarla por la probabilidad previa se acerque más a la probabilidad real.

Por ejemplo, ahora tenemos una característica y queremos saber la probabilidad de que el objeto con esta característica sea de esta categoría, a saber:

P(\text { categoría } \mid \text { características })=\frac{P(\text { características} \mid \text{categoría }) P(\text { categoría })}{P(\text { características })}

2. Estimación de máxima verosimilitud

(1) Idea básica

Primero suponga que los datos tienen una determinada distribución de probabilidad (todas las muestras son independientes e idénticamente distribuidas), pero sus parámetros son desconocidos, y luego estime los parámetros de la distribución de probabilidad basándose en las muestras de entrenamiento para obtener los parámetros más adecuados.

(2) Derivación de fórmulas

Se establece comoCorriente continua} un conjunto compuesto por muestras de la c-ésima clase en el conjunto de entrenamiento; \theta_{c}es un vector de parámetros de una determinada distribución de probabilidad asumiendo una distribución muestral; x es Corriente continua}una muestra en , y el objetivo es:

P(D_{c}\mid\theta_{c})= \prod_{x\epsilon D_{c}}^{}P(x\mid\theta_{c})

Encuentre el apropiado \theta_{c}para que la fórmula anterior pueda obtener el valor máximo (es decir, encuentre los parámetros apropiados para que más muestras satisfagan esa distribución).

Sin embargo, la fórmula anterior es propensa a desbordarse (romper el límite mínimo), por lo que generalmente se introduce la probabilidad logarítmica

LL(\theta_{c}) = log(P(D_{c}\mid\theta_{c}))= \sum_{x\epsilon D_{c}}^{}log(P(x\mid\theta_ {C}))

Entonces la fórmula del objetivo final se convierte en:argmáx LL(\theta_{c})

(3) Supuestos comunes - distribución normal

La solución es: (donde n es Corriente continua}el número total de )

\mu^{*}=\bar{x}=\frac{1}{n} \sum_{i=1}^{n} x_{i} ; \sigma^{* 2}=\frac{1}{n} \sum_{i=1}^{n}\left(x_{i}-\bar{x}\right)^{2}


2. Clasificador bayesiano ingenuo

Los clasificadores Naive Bayes asumen que todos los atributos son independientes entre sí.

1. Configuración de símbolos

Sea el conjunto de atributos de la muestra x=\izquierda\{x_{1}, x_{2}, \ldots, x_{m}\derecha\}(n es el número de atributos), x_{yo}que es el valor de la muestra x en el i-ésimo atributo;

El conjunto de categorías de la muestra es\izquierda\{y_{1}, y_{2}, \ldots, y_{m}\derecha\}

2. Cálculo de probabilidad posterior

"Todos los atributos son independientes entre sí" es el segundo paso de la siguiente fórmula

P\left(y_{j} \mid x\right)=\frac{P\left(y_{j}\right) P\left(x \mid y_{i}\right)}{P(x)} =\frac{P\left(y_{j}\right) \prod_{i=1}^{n} P\left(x_{i} \mid y_{j}\right)}{ \operatorname{P} (x)}, j=1,2 \ldots, m

3. Método de máxima verosimilitud para encontrar los parámetros de distribución más adecuados

Dado que P(x) es el mismo para todas las clases, no es necesario considerar su influencia al encontrar el valor máximo.

Entonces la formulación objetivo se convierte en:argmax(P\left(y_{j}\right) \prod_{i=1}^{n} P\left(x_{i} \mid y_{j}\right)), j=1,2 \ldots , metro

4. Supuestos comunes: distribución normal

eso es

p\left(x_{i} \mid y_{j}\right)=\frac{1}{\sqrt{2 \pi} \sigma_{y_{j}, i}} \exp \left(-\frac {\left(x_{i}-\mu_{y_{j}, i}\right)^{2}}{2 \sigma_{y_{j}, i}^{2}}\right)

5. Suavizado de Laplace

Para evitar que la información que llevan otros atributos sea borrada por atributos que no aparecen en el conjunto de entrenamiento, se suele realizar un suavizado al estimar la probabilidad.

P(y_{j})=\frac{|D_{y_{j}}|+1}{|D|+N}


3. Ventajas y desventajas

1. Ventajas

(1) Simple, alta eficiencia de aprendizaje

(2) La sobrecarga de tiempo y espacio en el proceso de clasificación es pequeña

2. Desventajas

Afectados por el supuesto de independencia entre variables y la distribución asumida


4. Ejemplo de código

from sklearn import metrics
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split
from sklearn import datasets
import pandas as pd
from sklearn.metrics import classification_report

data = datasets.load_iris()
iris_target = data.target
iris_features = pd.DataFrame(data=data.data, columns=data.feature_names)
train_x, test_x, train_y, test_y = train_test_split(iris_features, iris_target, test_size=0.3)

clf = GaussianNB()
clf.fit(train_x, train_y)

y_predict = clf.predict(test_x)
accuracy = metrics.accuracy_score(test_y, y_predict)

print(accuracy)
print(classification_report(test_y, y_predict))

producción


Todos son bienvenidos a criticar y corregir en el área de comentarios, gracias~ 

Supongo que te gusta

Origin blog.csdn.net/weixin_55073640/article/details/125900284
Recomendado
Clasificación