Scikit Learn - Clasificación con Naïve Bayes
Los métodos Naïve Bayes son un conjunto de algoritmos de aprendizaje supervisados basados en la aplicación del teorema de Bayes con una fuerte suposición de que todos los predictores son independientes entre sí, es decir, la presencia de una característica en una clase es independiente de la presencia de cualquier otra característica en la misma. clase. Esta es una suposición ingenua, por lo que estos métodos se denominan métodos Naïve Bayes.
El teorema de Bayes establece la siguiente relación para encontrar la probabilidad posterior de la clase, es decir, la probabilidad de una etiqueta y algunas características observadas, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right PS
$$ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) = \ left (\ frac {P \ lgroup Y \ rgroup P \ left (\ begin {array} {c } características \ arrowvert Y \ end {matriz} \ right)} {P \ left (\ begin {matriz} {c} características \ end {matriz} \ right)} \ right) $$Aquí, $ P \ left (\ begin {array} {c} Y \ arrowvert features \ end {array} \ right) $ es la probabilidad posterior de la clase.
$ P \ left (\ begin {array} {c} Y \ end {array} \ right) $ es la probabilidad previa de clase.
$ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ es la probabilidad, que es la probabilidad de la clase dada del predictor.
$ P \ left (\ begin {array} {c} features \ end {array} \ right) $ es la probabilidad previa del predictor.
Scikit-learn proporciona diferentes modelos de clasificadores de Bayes ingenuos, a saber, Gaussiano, Multinomial, Complemento y Bernoulli. Todos ellos difieren principalmente por la suposición que hacen con respecto a la distribución de $ P \ left (\ begin {array} {c} features \ arrowvert Y \ end {array} \ right) $ es decir, la probabilidad del predictor dada una clase.
No Señor | Descripcion del modelo |
---|---|
1 | Bayes ingenuo gaussiano El clasificador Gaussiano Naïve Bayes supone que los datos de cada etiqueta se extraen de una distribución gaussiana simple. |
2 | Bayes ingenuo multinomial Supone que las características se extraen de una distribución multinomial simple. |
3 | Bernoulli Naïve Bayes El supuesto en este modelo es que las características son binarias (0 y 1) por naturaleza. Una aplicación de la clasificación de Bernoulli Naïve Bayes es la clasificación de texto con el modelo de 'bolsa de palabras' |
4 | Complemento Naïve Bayes Fue diseñado para corregir las severas suposiciones hechas por el clasificador Multinomial Bayes. Este tipo de clasificador NB es adecuado para conjuntos de datos desequilibrados |
Construyendo clasificador Naïve Bayes
También podemos aplicar el clasificador Naïve Bayes en el conjunto de datos de Scikit-learn. En el siguiente ejemplo, estamos aplicando GaussianNB y ajustando el conjunto de datos de cáncer de mama de Scikit-leran.
Ejemplo
Import Sklearn
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
data = load_breast_cancer()
label_names = data['target_names']
labels = data['target']
feature_names = data['feature_names']
features = data['data']
print(label_names)
print(labels[0])
print(feature_names[0])
print(features[0])
train, test, train_labels, test_labels = train_test_split(
features,labels,test_size = 0.40, random_state = 42
)
from sklearn.naive_bayes import GaussianNB
GNBclf = GaussianNB()
model = GNBclf.fit(train, train_labels)
preds = GNBclf.predict(test)
print(preds)
Salida
[
1 0 0 1 1 0 0 0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 0 1 1 1 1
1 1 0 1 1 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1
1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 1 1 1 1 0
1 1 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 1 0 0 1 1 1 0
1 1 0 1 1 0 0 0 1 1 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1
0 1 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1
1 1 1 1 1 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 0
1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 1 1 1 1 0 1
1 1 1 1 0 1 0 0 1 1 0 1
]
La salida anterior consta de una serie de 0 y 1 que son básicamente los valores predichos de las clases de tumores, a saber, malignos y benignos.