Introducción

El análisis predictivo utiliza datos históricos y técnicas estadísticas para predecir futuros eventos. Este módulo se centra en los modelos y algoritmos más comunes utilizados en el análisis predictivo, proporcionando una base sólida para su aplicación en el ámbito de los negocios.

Conceptos Clave

  1. Análisis Predictivo: Proceso de utilizar datos históricos para hacer predicciones sobre eventos futuros.
  2. Modelos Predictivos: Estructuras matemáticas que representan relaciones entre variables para hacer predicciones.
  3. Algoritmos: Conjuntos de reglas y procedimientos utilizados para realizar cálculos y resolver problemas.

Tipos de Modelos Predictivos

  1. Regresión Lineal

  • Descripción: Modelo que asume una relación lineal entre la variable dependiente y una o más variables independientes.
  • Aplicación: Predicción de ventas, precios de viviendas, etc.
  • Ejemplo:
    from sklearn.linear_model import LinearRegression
    import numpy as np
    
    # Datos de ejemplo
    X = np.array([[1], [2], [3], [4], [5]])
    y = np.array([1.5, 3.5, 3.0, 4.5, 6.0])
    
    # Crear el modelo
    model = LinearRegression()
    model.fit(X, y)
    
    # Predicción
    y_pred = model.predict(np.array([[6]]))
    print(y_pred)  # Salida: [7.2]
    

  1. Regresión Logística

  • Descripción: Modelo utilizado para predecir la probabilidad de un evento binario (sí/no).
  • Aplicación: Predicción de abandono de clientes, aprobación de créditos, etc.
  • Ejemplo:
    from sklearn.linear_model import LogisticRegression
    import numpy as np
    
    # Datos de ejemplo
    X = np.array([[1], [2], [3], [4], [5]])
    y = np.array([0, 0, 1, 1, 1])
    
    # Crear el modelo
    model = LogisticRegression()
    model.fit(X, y)
    
    # Predicción
    y_pred = model.predict(np.array([[6]]))
    print(y_pred)  # Salida: [1]
    

  1. Árboles de Decisión

  • Descripción: Modelo que utiliza una estructura de árbol para tomar decisiones basadas en las características de los datos.
  • Aplicación: Clasificación de clientes, segmentación de mercado, etc.
  • Ejemplo:
    from sklearn.tree import DecisionTreeClassifier
    import numpy as np
    
    # Datos de ejemplo
    X = np.array([[1], [2], [3], [4], [5]])
    y = np.array([0, 0, 1, 1, 1])
    
    # Crear el modelo
    model = DecisionTreeClassifier()
    model.fit(X, y)
    
    # Predicción
    y_pred = model.predict(np.array([[6]]))
    print(y_pred)  # Salida: [1]
    

  1. Bosques Aleatorios (Random Forest)

  • Descripción: Conjunto de árboles de decisión que trabajan juntos para mejorar la precisión de las predicciones.
  • Aplicación: Predicción de ventas, análisis de riesgo, etc.
  • Ejemplo:
    from sklearn.ensemble import RandomForestClassifier
    import numpy as np
    
    # Datos de ejemplo
    X = np.array([[1], [2], [3], [4], [5]])
    y = np.array([0, 0, 1, 1, 1])
    
    # Crear el modelo
    model = RandomForestClassifier(n_estimators=10)
    model.fit(X, y)
    
    # Predicción
    y_pred = model.predict(np.array([[6]]))
    print(y_pred)  # Salida: [1]
    

  1. Redes Neuronales

  • Descripción: Modelos inspirados en el cerebro humano que son capaces de aprender patrones complejos en los datos.
  • Aplicación: Reconocimiento de imágenes, procesamiento de lenguaje natural, etc.
  • Ejemplo:
    from keras.models import Sequential
    from keras.layers import Dense
    import numpy as np
    
    # Datos de ejemplo
    X = np.array([[1], [2], [3], [4], [5]])
    y = np.array([0, 0, 1, 1, 1])
    
    # Crear el modelo
    model = Sequential()
    model.add(Dense(10, input_dim=1, activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    
    # Compilar el modelo
    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
    
    # Entrenar el modelo
    model.fit(X, y, epochs=10, batch_size=1)
    
    # Predicción
    y_pred = model.predict(np.array([[6]]))
    print(y_pred)  # Salida: [[0.8]]
    

Ejercicio Práctico

Ejercicio: Predicción de Ventas con Regresión Lineal

Objetivo: Utilizar un modelo de regresión lineal para predecir las ventas de un producto basado en datos históricos.

Datos:

import numpy as np

# Datos de ejemplo (Mes, Ventas)
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]])
y = np.array([100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650])

Instrucciones:

  1. Dividir los datos en conjuntos de entrenamiento y prueba.
  2. Crear y entrenar un modelo de regresión lineal.
  3. Evaluar el modelo utilizando el conjunto de prueba.
  4. Realizar predicciones para los próximos 3 meses.

Solución:

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
import numpy as np

# Datos de ejemplo
X = np.array([[1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]])
y = np.array([100, 150, 200, 250, 300, 350, 400, 450, 500, 550, 600, 650])

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

# Crear el modelo
model = LinearRegression()
model.fit(X_train, y_train)

# Evaluar el modelo
score = model.score(X_test, y_test)
print(f'Precisión del modelo: {score * 100:.2f}%')

# Predicciones para los próximos 3 meses
X_future = np.array([[13], [14], [15]])
y_future_pred = model.predict(X_future)
print(f'Predicciones para los próximos 3 meses: {y_future_pred}')

Conclusión

En esta sección, hemos explorado varios modelos y algoritmos utilizados en el análisis predictivo, incluyendo la regresión lineal, la regresión logística, los árboles de decisión, los bosques aleatorios y las redes neuronales. Cada uno de estos modelos tiene sus propias aplicaciones y ventajas, y la elección del modelo adecuado depende del problema específico que se esté abordando.

Resumen de Conceptos Clave

  • Regresión Lineal: Ideal para predecir valores continuos.
  • Regresión Logística: Útil para problemas de clasificación binaria.
  • Árboles de Decisión: Eficaces para problemas de clasificación y regresión.
  • Bosques Aleatorios: Mejoran la precisión mediante la combinación de múltiples árboles de decisión.
  • Redes Neuronales: Capaces de aprender patrones complejos en los datos.

Preparación para el Siguiente Tema

En el próximo módulo, profundizaremos en el análisis prescriptivo, que se centra en la optimización y simulación para tomar decisiones informadas.

© Copyright 2024. Todos los derechos reservados