Naive Bayes
NAIVE BAYES (Aprendizaje supervisado)
En un sentido amplio, los modelos de Naive Bayes son una clase especial de algoritmos de clasificación de Aprendizaje Automático, o Machine Learning, tal y como nos referiremos de ahora en adelante. Se basan en una técnica de clasificación estadística llamada “teorema de Bayes”.
Naïve Bayes o el Ingenuo Bayes es uno de los algoritmos más simples y poderosos para la clasificación basado en el Teorema de Bayes con una suposición de independencia entre los predictores. Naive Bayes es fácil de construir y particularmente útil para conjuntos de datos muy grandes.
EJEMPLO
# Importar las bibliotecas necesarias
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split
from sklearn.naive_bayes import GaussianNB
from sklearn.metrics import accuracy_score, confusion_matrix, classification_report
# Crear un conjunto de datos de ejemplo
data = {
'Años_Experiencia': np.random.randint(1, 20, 100),
'Nivel_Educativo': np.random.randint(10, 20, 100),
'Edad': np.random.randint(20, 60, 100),
'Abandono': np.random.choice([0, 1], size=100)
}
df = pd.DataFrame(data)
# Dividir los datos en conjuntos de entrenamiento y prueba
X = df[['Años_Experiencia', 'Nivel_Educativo', 'Edad']]
y = df['Abandono']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# Crear un modelo Naive Bayes (Gaussian)
modelo_naive_bayes = GaussianNB()
# Entrenar el modelo con los datos de entrenamiento
modelo_naive_bayes.fit(X_train, y_train)
# Realizar predicciones en el conjunto de prueba
predicciones = modelo_naive_bayes.predict(X_test)
# Evaluar el rendimiento del modelo
accuracy = accuracy_score(y_test, predicciones)
conf_matrix = confusion_matrix(y_test, predicciones)
class_report = classification_report(y_test, predicciones)
print(f'Accuracy: {accuracy}')
print(f'Confusion Matrix:\n{conf_matrix}')
print(f'Classification Report:\n{class_report}')
# Visualizar los resultados (para dos características)
plt.scatter(X_test['Años_Experiencia'], y_test, color='black', label='Actual')
plt.scatter(X_test['Años_Experiencia'], predicciones, color='red', label='Predicción')
plt.title('Predicción de Abandono con Naive Bayes')
plt.xlabel('Años de Experiencia')
plt.ylabel('Abandono (0: No, 1: Sí)')
plt.legend()
plt.show()
Este código utiliza el clasificador Naive Bayes para predecir la probabilidad de abandono (1) o no abandono (0) de empleados en función de características como años de experiencia, nivel educativo y edad. La visualización compara las etiquetas reales con las predicciones. Ten en cuenta que este es un ejemplo básico y, en la práctica, se deben considerar conjuntos de datos más grandes y funciones más relevantes.
Comentarios
Publicar un comentario