Una guía práctica para la regresión de componentes principales en Python

Estás leyendo la publicación: Una guía práctica para la regresión de componentes principales en Python

La regresión de componentes principales (PCR) es una técnica para analizar datos de regresión múltiple que sufren de multicolinealidad. La PCR se deriva del análisis de componentes principales (PCA). Entonces, es PCA aplicado a un algoritmo de regresión que tiene características multicolineales. La regresión de componentes principales reduce los errores en las estimaciones de regresión al agregar un grado de sesgo y, al hacerlo, será posible proporcionar estimaciones más confiables. En este artículo, nos centraremos en implementar PCR en un problema de regresión. Los siguientes son los temas tratados.

Tabla de contenido

  1. Acerca de la arquitectura de PCA
  2. Acerca de la multicolinealidad en la regresión
  3. Acerca de la regresión de componentes principales (PCR)
  4. Implementando PCR en Python

Comencemos con el arquitecto PCA del que se deriva PCR.

Acerca de la arquitectura de PCA

El análisis de componentes principales (PCA) es el análisis de las características principales de los datos. El análisis se realiza reduciendo la dimensionalidad del espacio de características. En otras palabras, es una herramienta para reducir las características de los datos para obtener solo las características requeridas o los componentes principales para el alumno. PCA tiene tres componentes principales que ayudan a reducir la dimensionalidad:

  • El Matriz de covarianza es la medida de cuánto están asociadas las variables entre sí.
  • El vectores propios son los directores en los que se encuentran dispersos los datos.
  • El valores propios son la importancia relativa de las direcciones.

Acerca de la multicolinealidad en la regresión

Por el nombre, está claro que la colinealidad entre las variables independientes en un problema de regresión se expresa como multicolinealidad en la regresión. Las razones detrás de curar un problema de regresión multicolineal son:

  • Comprensión de la importancia de las características para el estudiante de regresión.
  • Inestabilidad en la estimación del coeficiente
  • Sobreadaptación del aprendiz
🔥 Recomendado:  Bun.js es el nuevo asesino de Node.js

La multicolinealidad en la regresión podría destruirse con la ayuda de la regresión de componentes principales (PCR). Entendamos cómo PCR controla la multicolinealidad.

Acerca de la regresión de componentes principales (PCR)

El algoritmo de regresión de componentes principales (PCR) es un enfoque para reducir la multicolinealidad de un conjunto de datos. Aunque la regresión lineal de múltiples variables puede encajar bien en el conjunto de prueba, normalmente hay un problema de alta varianza con ella. Por esta razón, PCR agrega un pequeño sesgo al modelo, de modo que pretende mantener un alto nivel de precisión, pero reduce sustancialmente la varianza. Esto se logra aplicando el PCA a las funciones antes del entrenamiento. Tratemos de aprender PCR implementándolo en los datos.

Implementando PCR en Python

El objetivo de este modelo de regresión es predecir el salario del jugador en función de diferentes características.

Importación de paquetes

importar numpy como np importar pandas como pd

Lectura del conjunto de datos

salario=pd.read_csv(“Hitters.csv”) df=salary.copy() df.dropna(inplace=True) df.shape,salary.shape ((263, 20), (322, 20))

Este conjunto de datos se toma del repositorio de Kaggle, para usar este conjunto de datos, los enlaces se proporcionan en las referencias. Copiar el conjunto de datos a otro marco de datos para un procesamiento previo adicional para que el marco de datos original permanezca sin cambios.

Luego, suelte todos los valores faltantes y, por último, verifique el número de filas y columnas de los marcos de datos originales y copiados. Hay dos columnas categóricas y el resto son características continuas, necesarias para codificar las características categóricas para su uso posterior.

🔥 Recomendado:  ¿Cómo se puede utilizar el modelo Top2Vec para el modelado de temas?

Codificación de características categóricas:

df = pd.get_dummies(df,columnas=[‘League’, ‘Division’, ‘NewLeague’]) df.cabeza()

Codificó los datos usando los pandas get_dummies función. Las funciones originales que se utilizan para crear los maniquíes se reemplazan con un total de seis columnas nuevas, como se muestra en la imagen de arriba. Dado que el problema de regresión es predecir el salario de los jugadores, la variable dependiente es “Salario”.

y=df[‘Salary’]
X=df.drop([‘Salary’],eje=1)

Hay un total de 23 columnas en este marco de datos, de las cuales solo unas pocas son importantes para el análisis y la predicción. Hay un requisito para la eliminación de características que sería realizado por PCA.

Aplicación de PCA

de sklearn.descomposición importar PCA pca=PCA() X_red = pca.fit_transform(escala(X))

PCA se importó de la biblioteca sklearn y se almacenó en una variable para facilitar las aplicaciones. El PCA está equipado con las variables independientes para la reducción de la dimensionalidad. El porcentaje de varianza en la variable dependiente se explica agregando cada componente principal al modelo.

np.cumsum(np.round(pca.explained_variance_ratio_, decimales = 4)*100)[0:5]

La salida anterior se explica como:

  • Utilizando el primer componente principal, podemos explicar el 32,62% de la variación de la variable dependiente.
  • Usando el segundo componente principal, podemos explicar el 53.02% de la variación en la variable dependiente.
  • Del mismo modo, utilizando otros podemos explicar el 68,82 %, 78,07 %, 85,39 %, 89,31 %

La conclusión de esto es que necesitamos usar un total de cinco componentes principales en el alumno de regresión. Ahora, los componentes principales se deciden para dividir el conjunto de datos en una proporción de 70:30 para entrenar y probar para entrenar y evaluar al alumno.

🔥 Recomendado:  Cómo comenzar a usar cupones para principiantes: todo lo que necesita saber

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.30, random_state=42)

Construyamos el modelo final usando cinco componentes principales en el modelo de regresión lineal.

X_red_tren = pca.fit_transform(escala(X_tren)) X_red_test = pca.transform(escala(X_prueba))[:,0:5]
lm = Regresión Lineal() pcr = lm.fit(X_red_train[:,0:5]y_tren) y_pred = pcr.predict(X_red_test)

El modelo final se construye y entrena en el conjunto de datos del tren y también predice el salario utilizando el conjunto de datos de prueba. Veamos qué tan bien ha funcionado el modelo.

np.round(np.sqrt(media_cuadrado_error(y_test, y_pred)),2) 397.52

El error cuadrático medio (RMSE) es bajo, aproximadamente 398. Esto se puede mejorar ajustando más el modelo. Se lo dejo a usted.

Cáscara de nuez

La aplicación del análisis de componentes principales antes de la regresión puede reducir la multicolinealidad y ayuda a una mejor predicción con menos características en menos tiempo. La PCR también reduce las posibilidades de sobreadaptación de los alumnos.

Referencias