8 votos

inferir las características más importantes

Dado un conjunto de $n$ de los casos. Para cada caso, tengo una función vectorial consta de $m$ (numérica) características ($x_1$, $x_2$,...,$x_m$), n>>m. Por otra parte, para cada instancia, tengo un puntaje numérico $y$ (observable). Me gustaría:

  1. encontrar el subconjunto de características o combinación lineal de los mismos, explica las puntuaciones de los mejores.
  2. crear una buena visualización para esto.

Me han apuntado a un Análisis de Componentes Principales (PCA). El problema con la PCA es que sólo se necesita la función de los vectores en cuenta; PCA no se relacionan las características de la puntuación numérica $y$.

Aplicación práctica: Dado un número grande de problema instancias (por ejemplo, problemas del viajante) y algún algoritmo para resolver el problema. Cada vez que se resuelve el ejemplo, podemos medir el tiempo total (puntuación=) se llevó a resolver el ejemplo. Por otra parte, para cada instancia, podemos obtener una serie de características, por ejemplo, el tamaño de la te, por ejemplo, el gráfico de diámetro, etc. Cuáles de estas características explican el tiempo de cómputo de la mejor manera?

1voto

Keith Puntos 31

Hay un montón de opciones, depende de qué es exactamente lo que quiere.

Función de la importancia o de la permutación importancia

Ambos métodos nos indica qué características son las más importantes para el modelo. Es un número para cada característica. Se calcula después de que el modelo está equipado. No nos dice nada acerca de que los valores de una característica implica lo puntuaciones.

En sklearn la mayoría de los modelz ha model.feature_importances_. Suma de todas las característica de las importancias es 1.

Permutación importancia se calcula para un modelo ajustado. Le dice lo mucho que la métrica se agrava si se mezcla la columna de función.

Pseudo-código:

    model.fit()
    base_score = model.score(x_dev, y_dev)
    for i in range(nr_features):
        x_dev_copy = copy(x_dev)
        x_dev_copy[:, i] = shuffle(x_dev_copy[:, i])
        perm_score = model.score(x_dev_copy, y_dev)
        perm_imp[i] = (perm_score - base_score) / base_score

Usted puede leer más acerca de permutación importancia aquí.

Parcial De La Dependencia De Las Parcelas

le dice lo que los valores de una característica aumenta/disminuye los valores de predicción. Se parece a esto:

enter image description here

Más info en Kaggle: Parcial Dependencia de las Parcelas o ir directamente a la biblioteca PDPbox GitHub.

SHAP valor

explica por qué el modelo da una predicción específica para la instancia dada. Se traza el siguiente gráfico que indica que los valores de la característica se trasladó a la predicción de un valor medio a valor actual de la instancia actual.

enter image description here

Compruebe SHAP biblioteca para obtener más detalles.

0voto

Creo que necesitas un algoritmo de selección de características:

https://en.wikipedia.org/wiki/Feature_selection

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