¿Cómo asignar características de la salida de un VectorAssembler a los nombres de columna en Spark ML?

Estoy tratando de ejecutar una regresión lineal en PySpark y quiero crear una tabla que contenga estadísticas resumidas como coeficientes, valores P y valores t para cada columna de mi conjunto de datos. Sin embargo, para entrenar un modelo de regresión lineal, tuve que crear un vector de características usando Spark'sVectorAssembler, y ahora para cada fila tengo un único vector de características y la columna de destino. Cuando intento acceder a las estadísticas de resumen de regresión incorporadas de Spark, me dan una lista muy cruda de números para cada una de estas estadísticas, y no hay forma de saber qué atributo corresponde a qué valor, lo cual es realmente difícil de resolver manualmente. Un gran número de columnas. ¿Cómo vuelvo a asignar estos valores a los nombres de columna?

Por ejemplo, tengo mi salida actual como algo así:

Coeficientes: [-187.807832407, -187.058926726,85.1716641376,10595.3352802, -127.258892837, -39.2827730493, -1206.47228704,33.7078197705,99.9956812528]

Valor P: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18589731365614548, 0.275173571416679, 0.0]

t-estadística: [-23.348593508995318, -44.72813283953004, 19.836508234714472, 144.49248881747755, -16.547272230754242, -9.560681351483941, -19.5635474411183783891241273124, 113637, 937, 11, 11, 9, 9, 11, 9, 9, 9, 9, 8, 11, 8, 11, 8, 11, 8, 11, 8, 11, 8, 9, 9, 8, 8, 9, 9, 8, 9, 8, 8, por 9, por ejemplo, por ejemplo.

Los errores de los coeficientes estándar: [8.043646497811427, 4.182131353367049, 4.293682291754585, 73.32793120907755, 7.690626652102948, 4.108783841348964, 61.669402913526625, 25.481445101737247, 91.63478289909655, 609.7007361468519]

Estos números no significan nada a menos que sepa a qué atributo corresponden. Pero en miDataFrame Solo tengo una columna llamada "características" que contiene filas de vectores dispersos.

Este es un problema cada vez mayor cuando tengo características codificadas en caliente, porque si tengo una variable con una codificación de longitud n, obtendré n coeficientes / valores p / valores t correspondientes, etc.

Respuestas a la pregunta(3)

Su respuesta a la pregunta