5 votos

¿Cómo dar sentido a este gráfico de PCA con límite de decisión de regresión logística (datos de cáncer de mama)?

Tengo unos datos de cáncer de mama con 13 características. Instalo el PCA y paso los datos de entrenamiento y los transformo en 2 dimensiones.

Obtengo un dato que es linealmente separable, lo cual me resulta interesante ya que estoy haciendo una regresión logística binaria.

Estoy escribiendo un artículo y mostrar los datos con un límite de decisión es una buena imagen para mostrar que el modelo funcionó.

Entreno el modelo de regresión logística en los datos 2-d del PCA. Trazo el límite de decisión utilizando el intercepto y el coeficiente y separa linealmente los datos.

enter image description here

Mi pregunta es: ¿Qué significa el trazado de los datos 2-d del PCA y el límite de decisión? ¿Qué se puede deducir de eso?

Jupyter notebook a mi trabajo (Es la última parcela)


Editar: Trazado con la clase de destino

enter image description here

Parcela con predict en x_pca

enter image description here

2 votos

¿Por qué su límite de decisión no está en el hueco obvio?

0 votos

Me he dado cuenta y no tengo ni idea.

0 votos

Es porque el límite de decisión es un límite de decisión que utiliza dimensiones PCA para separar/predecir target clases (basadas en las dimensiones del PCA como características), no para separar los clusters del PCA. Las dimensiones/clústeres del PCA se crean sin conocer la target directamente, aunque esperamos que correspondan a diferencias en target . Para más explicaciones, véase mi respuesta más abajo.

4voto

transmetro Puntos 41

De su pregunta:

Entreno el modelo de regresión logística en los datos 2-d del PCA. I trazo el límite de decisión utilizando el intercepto y el coeficiente y separa linealmente los datos.

La regresión logística no es un clasificador. Sus coeficientes ciertamente no representan un "límite de decisión". Tienes un modelo que es $$ \log \frac{p}{1-p} = \beta_0 + \beta_1x_1 + \beta_2x_2 $$ Dónde $p$ es la probabilidad de su resultado, y el $x$ -s son sus componentes principales. En el siguiente código, de su cuaderno, está utilizando $\beta_0$ y $\beta_1$ como los coeficientes a una línea en el espacio predictor original, y es sólo una suerte tonta que esté cerca de la brecha en sus puntos de datos.

new_model.fit(x_pca, target)
y_intercept = new_model.intercept_    # <- this is beta_0
slope = new_model.coef_[0][0]         # <- this is beta_1
x_axis = np.linspace(-65, 113, 178)

La decisión se basaría en dónde $\log p = \log (1-p)$ o algún otro umbral como ese. Esto es lo que no tiene sentido con su parcela, y cuánta varianza capturan los PC es una preocupación secundaria.

Suponiendo que quiera que su decisión sea en $\log p = \log (1-p)$ Esto se traduce en $$\beta_0 + \beta_1x_1 + \beta_2x_2 = 0.$$

Digamos que $x_1$ es el primer componente principal, y $x_2$ es el segundo. Entonces $x_2$ es el $y$ -en su gráfico original. Reescribiendo lo anterior, el límite debería ser

$$x_2 = -\frac{\beta_0}{\beta_2} - \frac{\beta_1}{\beta_2}x_1.$$

Es decir, que la intercepción que quieres es $-\frac{\beta_0}{\beta_2}$ y la pendiente es $-\frac{\beta_1}{\beta_2}$ .

Hay que tener en cuenta que una decisión de este tipo es subjetiva, y mientras se utiliza $\log p = \log (1-p)$ puede encajar con su visión particular del riesgo, mientras que a otros les puede gustar la estimación bruta de la probabilidad para tomar su propia decisión.

0 votos

Gracias por destacar "La regresión logística no es un clasificador. Sus coeficientes ciertamente no representan un "límite de decisión". ". Esto parece ser una omisión significativa de mi respuesta

0 votos

@MaxPower No sé si me estoy perdiendo algún detalle, pero la regresión logística se puede utilizar para la clasificación, así que no veo realmente de dónde viene esa afirmación.

0 votos

Basándose en su texto al final, ¿está diciendo que la línea de reg. logarítmica implicaría un límite de decisión si su umbral de decisión fuera +/- 50% basado en el resultado de la probabilidad de la regresión logística? ¿Pero que la línea se desplazaría para otros umbrales de probabilidad plausibles?

4voto

Hatoru Hansou Puntos 101

¿Qué significan los datos/trazados del PCA 2-d?

Los datos/trazados del PCA 2-d representan dos "características compuestas" que el PCA creó para capturar la mayor parte posible de la varianza de sus 13 características originales.

Suponiendo que sus 13 características sean linealmente independientes (por ejemplo, una característica no es sólo otra característica multiplicada por 2, para cada fila de sus datos), se necesitarían 13 dimensiones para capturar el 100% de la variación en sus 13 características brutas. Sin embargo, a menudo el PCA puede capturar, por ejemplo, el 98% de la variación de sus datos en sólo unas pocas dimensiones del PCA. Para ver qué parte de la varianza es explicada por cada dimensión PCA para su problema, imprima x_pca.explained_variance_ratio_ después de que fit() su x_pca objeto.

Cuando el PCA puede capturar una gran cantidad de la varianza de sus características en sólo 2 dimensiones, eso es especialmente conveniente porque entonces usted puede trazar esas 2 dimensiones del PCA como lo ha hecho, y saber que cualquier agrupación que aparezca en el gráfico de 2 dimensiones corresponde a agrupaciones naturales en sus datos de 13 dimensiones.

¿Qué significa el límite de decisión?

El límite de decisión en su código es una predicción de su target utilizando como características (variables independientes) las dos primeras dimensiones PCA de su conjunto de características original de 13 dimensiones.

¿Por qué su límite de decisión no está en el hueco obvio?

Recuerde que las dimensiones del PCA se formaron sólo en base a sus 13 variables independientes, sin mirar su target . El límite de decisión no es un límite de decisión entre clusters PCA, es un límite de decisión que utiliza las dimensiones PCA para predecir target .

Por lo tanto, el hecho de que el límite de la decisión no esté totalmente entre los clusters significa que las dos primeras dimensiones de PCA de sus 13 características hacen un buen trabajo de separación de su target clases, pero no es un trabajo perfecto.

Cómo mejorar su parcela

Lo que realmente te importa es target ¿no? Por lo tanto, en su gráfico, no trazar todos los puntos como rojo. Colóquelos por target clase. Entonces tendrá un gráfico que le mostrará lo bien que el PCA y la información de sus características originales (representadas por la distancia/espacio entre clusters en su gráfico) distingue entre target (que serían los colores en la nueva parcela).

0 votos

Realmente una respuesta maravillosa. He intentado colorear los puntos del gráfico utilizando la clase de destino. Por desgracia, no me parece que lo haga bien cuando lo hago. ¿Y si utilizo "predict" en los datos de x_pca? ¿Significaría eso algo?

1 votos

Editaré la pregunta e incluiré una imagen que muestre los colores utilizando la clase objetivo y la predicción de "new_model" sobre los datos de "x_pca".

0 votos

Y mi leyenda se ha estropeado ahora. Trazar es difícil :)

2voto

Charlie Puntos 1

@MaxPower tiene una buena respuesta, y quiero profundizar en su punto A) en su comentario:

Esto significa una de dos cosas: o bien A) sus 2 dimensiones PCA no capturan suficiente información contenida en sus 13 o B) su problema es muy difícil de predecir, incluso con toda la la información de sus 13 características.

En tu pregunta, no muestras qué parte de las 13 variables iniciales está representada por los dos primeros componentes principales. Una cosa que es fácil de olvidar cuando se hace PCA es el hecho de que hay más componentes que sólo los dos primeros.

Si, por ejemplo, las 13 variables originales están relativamente descorrelacionadas, los dos primeros componentes principales sólo capturarán una parte de los datos. El resto se almacenará en los componentes 3 a 13.

¿Por qué es esto relevante?

Esto es relevante, porque su variable objetivo podría ser explicada por el tercer componente principal. En ese caso, no podría verlo con los gráficos que ha utilizado ahora.

¿Cuál es el resultado?

Antes de interpretar el gráfico PCA de PC1 y PC2, observe primero la varianza explicada por estos dos componentes. Si juntos explican mucho ( >90% ) de la varianza de los datos, se puede ignorar el resto con bastante seguridad, pero si sólo explica una parte de la varianza, se deben examinar también los demás componentes.

Otras observaciones

El enlace a tu cuaderno jupyter está muerto, así que no puedo ver exactamente qué modelo has utilizado para predecir. Si usted utilizó los datos completos de PCA, es decir, los 13 componentes principales, para su predicción, es probable que su problema caiga bajo B). Eso significa que lo más probable es que no haya un PC3-PC13 que prediga bien su objetivo. Porque si hubiera un buen predictor, los valores predichos en su último gráfico probablemente habrían sido menos erróneos de lo que son ahora.

Así que, o bien:

  • Usted predijo el objetivo sólo en PC1 y PC2, lo que no puede hacer realmente sin comprobar primero la varianza acumulada explicada.

  • Sus datos no predicen lo suficientemente bien el objetivo.

Otra observación:

Obtengo un dato que es linealmente separable, lo cual me resulta interesante ya que estoy haciendo una regresión logística binaria.

Estoy escribiendo un artículo y mostrar los datos con un límite de decisión es una buena imagen para mostrar que el modelo funcionó.

Estos datos no son linealmente separables. Al menos no en los gráficos que muestras. Sí, hay dos grupos claros, pero no están relacionados con tu variable objetivo. La separación lineal se daría si pudieras dividir los puntos amarillos de los puntos morados con una línea lineal. Este no es el caso aquí, ya que puede ver que los grupos púrpura y amarillo se superponen. Además, el límite de decisión, tal y como está, hace poco o nada para predecir realmente los objetivos correctos, como puede ver en su último gráfico.

0 votos

He arreglado el enlace del cuaderno jupyter. Creo que los dos primeros componentes explican relativamente bien los datos. Aunque el tercer componente no está tan lejos. Sin embargo, no sé cómo interpretar la variable "explained_variance_".

0 votos

Aquí está la varianza explicada para los primeros 4 componentes. ¿Cómo puedo interpretar esto? [ 940.43154588, 231.08268744, 119.42056463, 18.97322897]

0 votos

La varianza total de los datos es la suma de las varianzas de todos los componentes. Si se ejecuta PCA(n_components=None) obtendrá todos los componentes como salida. La suma de sus varianzas es la varianza total. Lo que usted quiere mirar, es $\sum_{i=1}^k(Var(PC_i)/totalVar)$ . Por el aspecto de los primeros 4 valores, esto sería $76\%$ para el PC1, $89\%$ para PC1 y 2, y $98\%$ para PC 1-3. Esto significa que si se reducen los datos a los primeros componentes principales, se mantiene $89\%$ de sus datos. Esto es bastante razonable. ...

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X