Algoritmos de regresión: descripción general
Introducción a la regresión
La regresión es otra herramienta estadística y de aprendizaje automático importante y ampliamente utilizada. El objetivo clave de las tareas basadas en regresión es predecir etiquetas de salida o respuestas que son valores numéricos continuos para los datos de entrada dados. El resultado se basará en lo que el modelo haya aprendido en la fase de formación. Básicamente, los modelos de regresión utilizan las características de los datos de entrada (variables independientes) y sus correspondientes valores numéricos continuos de salida (variables dependientes o de resultado) para aprender la asociación específica entre las entradas y las salidas correspondientes.
Tipos de modelos de regresión
Los modelos de regresión son de los siguientes dos tipos:
Simple regression model - Este es el modelo de regresión más básico en el que las predicciones se forman a partir de una característica única y univariante de los datos.
Multiple regression model - Como su nombre lo indica, en este modelo de regresión, las predicciones se forman a partir de múltiples características de los datos.
Construyendo un regresor en Python
El modelo regresor en Python se puede construir como construimos el clasificador. Scikit-learn, una biblioteca de Python para el aprendizaje automático, también se puede usar para construir un regresor en Python.
En el siguiente ejemplo, construiremos un modelo de regresión básico que ajustará una línea a los datos, es decir, un regresor lineal. Los pasos necesarios para construir un regresor en Python son los siguientes:
Paso 1: Importar el paquete de Python necesario
Para construir un regresor usando scikit-learn, necesitamos importarlo junto con otros paquetes necesarios. Podemos importar el usando el siguiente script:
import numpy as np
from sklearn import linear_model
import sklearn.metrics as sm
import matplotlib.pyplot as plt
Paso 2: Importar conjunto de datos
Después de importar el paquete necesario, necesitamos un conjunto de datos para construir un modelo de predicción de regresión. Podemos importarlo desde el conjunto de datos de sklearn o podemos usar otro según nuestro requisito. Vamos a utilizar nuestros datos de entrada guardados. Podemos importarlo con la ayuda del siguiente script:
input = r'C:\linear.txt'
A continuación, necesitamos cargar estos datos. Estamos usando la función np.loadtxt para cargarlo.
input_data = np.loadtxt(input, delimiter=',')
X, y = input_data[:, :-1], input_data[:, -1]
Paso 3: organizar los datos en conjuntos de entrenamiento y prueba
Como necesitamos probar nuestro modelo en datos no vistos, dividiremos nuestro conjunto de datos en dos partes: un conjunto de entrenamiento y un conjunto de prueba. El siguiente comando lo ejecutará:
training_samples = int(0.6 * len(X))
testing_samples = len(X) - num_training
X_train, y_train = X[:training_samples], y[:training_samples]
X_test, y_test = X[training_samples:], y[training_samples:]
Paso 4: Evaluación y predicción del modelo
Después de dividir los datos en entrenamiento y prueba, necesitamos construir el modelo. Usaremos la función LineaRegression () de Scikit-learn para este propósito. El siguiente comando creará un objeto regresor lineal.
reg_linear= linear_model.LinearRegression()
A continuación, entrene este modelo con las muestras de entrenamiento de la siguiente manera:
reg_linear.fit(X_train, y_train)
Ahora, por fin necesitamos hacer la predicción con los datos de prueba.
y_test_pred = reg_linear.predict(X_test)
Paso 5: Trazado y visualización
Después de la predicción, podemos trazarla y visualizarla con la ayuda del siguiente guión:
Example
plt.scatter(X_test, y_test, color='red')
plt.plot(X_test, y_test_pred, color='black', linewidth=2)
plt.xticks(())
plt.yticks(())
plt.show()
Output
En el resultado anterior, podemos ver la línea de regresión entre los puntos de datos.
Paso 6: cálculo del rendimiento
También podemos calcular el rendimiento de nuestro modelo de regresión con la ayuda de varias métricas de rendimiento de la siguiente manera:
Example
print("Regressor model performance:")
print("Mean absolute error(MAE) =", round(sm.mean_absolute_error(y_test, y_test_pred), 2))
print("Mean squared error(MSE) =", round(sm.mean_squared_error(y_test, y_test_pred), 2))
print("Median absolute error =", round(sm.median_absolute_error(y_test, y_test_pred), 2))
print("Explain variance score =", round(sm.explained_variance_score(y_test, y_test_pred), 2))
print("R2 score =", round(sm.r2_score(y_test, y_test_pred), 2))
Output
Regressor model performance:
Mean absolute error(MAE) = 1.78
Mean squared error(MSE) = 3.89
Median absolute error = 2.01
Explain variance score = -0.09
R2 score = -0.09
Tipos de algoritmos de regresión ML
El algoritmo de regresión ML más útil y popular es el algoritmo de regresión lineal que se divide en dos tipos, a saber:
Algoritmo de regresión lineal simple
Algoritmo de regresión lineal múltiple.
Lo discutiremos y lo implementaremos en Python en el próximo capítulo.
Aplicaciones
Las aplicaciones de los algoritmos de regresión ML son las siguientes:
Forecasting or Predictive analysis- Uno de los usos importantes de la regresión es la previsión o el análisis predictivo. Por ejemplo, podemos pronosticar el PIB, los precios del petróleo o en palabras simples los datos cuantitativos que cambian con el paso del tiempo.
Optimization- Podemos optimizar los procesos comerciales con la ayuda de la regresión. Por ejemplo, un gerente de tienda puede crear un modelo estadístico para comprender el tiempo de espera de los clientes.
Error correction- En los negocios, tomar la decisión correcta es tan importante como optimizar el proceso comercial. La regresión puede ayudarnos a tomar la decisión correcta, así como a corregir la decisión ya implementada.
Economics- Es la herramienta más utilizada en economía. Podemos usar la regresión para predecir la oferta, la demanda, el consumo, la inversión en inventario, etc.
Finance- Una empresa financiera siempre está interesada en minimizar la cartera de riesgos y quiere conocer los factores que afectan a los clientes. Todos estos se pueden predecir con la ayuda del modelo de regresión.