inferindo características mais importantes

7

Dado um conjunto de instâncias. Para cada instância, eu tenho um vetor de recurso que consiste em (numéricos) recursos ( , , ..., ), n >> m. Além disso, para cada instância, tenho uma pontuação numérica (observável). Eu gostaria de:nmx1 1x2xmy

  1. descubra qual subconjunto de recursos, ou sua combinação linear, explica melhor as pontuações.
  2. crie uma boa visualização para isso.

Fui apontado para a Análise de Componentes Principais (PCA). O problema com o PCA é que ele leva em consideração apenas os vetores de recursos; O PCA não relaciona os recursos à pontuação numérica .y

Aplicação prática: Dado um grande número de instâncias de problemas (por exemplo, problemas com vendedores ambulantes) e algum algoritmo para resolver o problema. Cada vez que resolvemos a instância, podemos medir o tempo total (= pontuação) necessário para resolver a instância. Além disso, para cada instância, podemos obter vários recursos, por exemplo, tamanho da instância, diâmetro do gráfico, etc. Quais desses recursos explicam melhor o tempo de computação?

Joris Kinable
fonte
Por "instâncias" você quer dizer observações (ou seja, geralmente "linhas" de dados)?
StatsStudent
Você não pode usar uma configuração de modelagem de regressão e executar alguma forma de seleção de modelo? Eu acho que o tipo de modelagem que você usa dependerá se você pode assumir a linearidade ou a não linearidade do relacionamento entre cada recurso e o controle dos demais recursos. Para linearidade, a modelagem de regressão linear serviria. Para a não linearidade, a modelagem aditiva generalizada pode ser uma opção.
Isabella Ghement
Presumindo que você tenha menos preditores do que instâncias (ou seja, m <n), é possível executar a seleção do modelo com base no critério BIC, adequado para configurações explicativas. No que diz respeito à visualização do modelo final, os gráficos de efeitos podem funcionar - eles permitiriam exibir o efeito de cada recurso em y após controlar os recursos restantes incluídos no modelo final. Consulte socialsciences.mcmaster.ca/jfox/Papers/… .
Isabella Ghement
Você poderia esclarecer o tipo de relacionamento entre as pontuações e os recursos de entrada (por exemplo, é linear)? É difícil distinguir do fraseado em (1) (por exemplo, você pode considerar as pontuações como uma função não-linear de uma combinação linear de recursos). Além disso, você tem uma métrica específica em mente para "melhor explicar as pontuações '?"
user20160
Eu acho que você precisa de um algoritmo de seleção de recurso: en.wikipedia.org/wiki/Feature_selection
Steve Prestwich

Respostas:

0

Há muitas opções, depende exatamente do que você deseja.

Importância do recurso ou importância da permutação

Ambos os métodos informam quais recursos são mais importantes para o modelo. É um número para cada recurso. É calculado após a montagem do modelo. Ele não diz nada sobre quais valores de um recurso implicam quais pontuações.

No sklearn, a maioria dos modelz possui model.feature_importances_. A soma de todas as importâncias de recursos é 1.

A importância da permutação é calculada para um modelo ajustado. Indica o quanto a métrica piora se você embaralhar a coluna do recurso.

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

Você pode ler mais sobre a importância da permutação aqui .

Parcelas de Dependência Parcial

informa quais valores de um recurso aumentam / diminuem os valores de previsão. Se parece com isso:

insira a descrição da imagem aqui

Mais informações sobre Kaggle: Parcial Dependence Plots ou vá direto para a biblioteca PDPbox GitHub .

Valor SHAP

explica por que o modelo fornece uma previsão específica para uma determinada instância. Ele plota o gráfico a seguir, que informa quais valores de recurso moveram a previsão de um valor médio para o valor atual da instância atual.

insira a descrição da imagem aqui

Verifique a biblioteca SHAP para obter mais detalhes.

Tomáš Přinda
fonte