Predecir si un cliente comprará un producto en particular

Técnicas de aprendizaje supervisado, enfocado en la clasificación en lugar de la regresión.

Problema: Predecir si un cliente comprará un producto en particular basándose en sus características demográficas y de comportamiento.

Datos:

  • Edad: Edad del cliente
  • Género: Masculino o femenino
  • Ingreso: Ingreso anual
  • Educación: Nivel educativo (básico, medio, superior)
  • Compras anteriores: Número de compras realizadas en el último año
  • Compra (variable objetivo): Sí (1) o No (0)

Código:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Crear un DataFrame
data = {
    'edad': [25, 35, 45, 28, 32],
    'genero': ['M', 'F', 'M', 'F', 'M'],
    'ingreso': [50000, 65000, 70000, 55000, 60000],
    'educacion': ['medio', 'superior', 'superior', 'básico', 'medio'],
    'compras_anteriores': [5, 8, 12, 3, 7],
    'compra': [1, 0, 1, 0, 1]
}
df = pd.DataFrame(data)

# Codificar variables categóricas
le = LabelEncoder()
df['genero'] = le.fit_transform(df['genero'])
df['educacion'] = le.fit_transform(df['educacion'])

# Separar características y variable objetivo
X = df[['edad', 'genero', 'ingreso', 'educacion', 'compras_anteriores']]
y = df['compra']

# Dividir los datos en entrenamiento y prueba
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Crear y entrenar el modelo KNN
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

# Hacer predicciones
y_pred = knn.predict(X_test)

# Evaluar el modelo
accuracy = accuracy_score(y_test, y_pred)
print("Precisión:", accuracy)

Explicación

  1. Codificación de variables categóricas: Se utilizan las técnicas de LabelEncoder para convertir las variables categóricas (género y educación) en valores numéricos que el modelo pueda entender.
  2. Selección de características y variable objetivo: Se seleccionan las características que se utilizarán para hacer las predicciones (edad, género, etc.) y la variable que se desea predecir (compra).
  3. División de los datos: Se divide el conjunto de datos en entrenamiento y prueba.
  4. Creación y entrenamiento del modelo: Se utiliza el algoritmo KNN para crear un modelo y entrenarlo con los datos de entrenamiento.
  5. Predicciones: Se utilizan los datos de prueba para hacer predicciones y evaluar el modelo.
  6. Evaluación: Se calcula la precisión del modelo para medir su desempeño.

En este ejemplo, estamos utilizando el algoritmo KNN para clasificar a los clientes en dos categorías: aquellos que comprarán el producto y aquellos que no.

¿Qué puedes hacer con este código?

  • Experimentar con diferentes algoritmos: Prueba otros algoritmos de clasificación como árboles de decisión, regresión logística o redes neuronales.
  • Ajustar los hiperparámetros: Modifica el número de vecinos en KNN para ver cómo afecta la precisión del modelo.
  • Agregar más características: Incluye otras variables que puedan ser relevantes para la predicción, como la frecuencia de visitas al sitio web o la interacción con las redes sociales.
  • Evaluar el modelo con diferentes métricas: Además de la precisión, puedes utilizar otras métricas como recall, F1-score, matriz de confusión, etc.