Intervalos de previsão para algoritmos de aprendizado de máquina

14

Quero saber se o processo descrito abaixo é válido / aceitável e se existe alguma justificativa disponível.

A idéia: algoritmos de aprendizado supervisionado não assumem estruturas / distribuições subjacentes sobre os dados. No final do dia, eles produzem estimativas de pontos. Espero quantificar a incerteza das estimativas de alguma forma. Agora, o processo de construção do modelo de ML é inerentemente aleatório (por exemplo, na amostragem para validação cruzada para ajuste de hiperparâmetro e na subamostragem no GBM estocástico), portanto, um pipeline de modelagem me dará uma saída diferente para os mesmos preditores com cada semente diferente. Minha idéia (ingênua) é executar esse processo repetidamente para obter uma distribuição da previsão, e espero fazer declarações sobre a incerteza das previsões.

Se isso importa, os conjuntos de dados com os quais trabalho são geralmente muito pequenos (~ 200 linhas).

Isso faz sentido?

Para esclarecer, na verdade não estou inicializando os dados no sentido tradicional (ou seja, não estou re-amostrando os dados). O mesmo conjunto de dados é usado em todas as iterações, estou apenas explorando a aleatoriedade no xval e no GBM estocástico.

kevinykuo
fonte
2
Se você realmente quer um intervalo de previsão (em vez de um intervalo de confiança), é necessário ter em conta a variação nas observações sobre o modelo, não apenas a variação predicitions modelo
Glen_b -Reinstate Monica
@Glen_b a abordagem descrita no OP ou uma versão inicializada me proporcionaria os intervalos de confiança? Estou começando a pensar que um intervalo de previsão não é possível sem especificar uma distribuição subjacente para os dados, por isso talvez seja necessário reformular a pergunta da próxima vez.
Kevinykuo 23/05
Você pode inicializar intervalos de previsão ... apenas não fazendo o que descreve no Q.
Glen_b -Reinstate Monica
@Glen_b você poderia descrever como fazer isso em uma resposta?
Kevinykuo
1
Eu não poderia dar uma resposta suficiente aqui. Mas veja Davison & Hinkley (1997) nos capítulos sobre regressão múltipla e GLMs, que dão uma sensação do tipo de coisa que pode ser necessária. No caso de regressão múltipla, por exemplo, os resíduos são reamostrados para obter uma estimativa de bootstrap da incerteza preditiva (variação nas previsões devido à incerteza do parâmetro) e reamostrados novamente para lidar com a variação do processo. Com um programa adequado que você pode talvez também ser capaz de lidar com a incerteza especificação do modelo em que o primeiro passo, mas você não pode omitir o segundo passo para a variabilidade do processo
Glen_b -Reinstate Monica

Respostas:

5

Para mim, parece uma abordagem tão boa quanto qualquer outra para quantificar as incertezas nas previsões. Apenas certifique-se de repetir todas as etapas de modelagem (para um GBM que seria o ajuste de parâmetro) do zero em cada nova amostra de inicialização. Também poderia valer a pena inicializar os rankings de importância para quantificar a incerteza nos rankings.

Descobri que, às vezes, os intervalos não contêm a previsão real, especialmente ao estimar uma probabilidade. Aumentar o número mínimo de observações em cada nó terminal geralmente resolve isso, pelo menos nos dados com os quais trabalhei.

A previsão conforme parece ser uma abordagem útil para quantificar a confiança nas previsões em novos dados. Até agora, arranhei a superfície e outros provavelmente são mais adequados para dar uma opinião sobre isso.

Há algum código R bruto na minha resposta a este post sobre como encontrar um intervalo de previsão do GBM.

Espero que isto ajude!

ErikL
fonte
2

Você pode dividir sua incerteza sobre a previsão para termos de 'viés' e 'variação'. O termo de viés refere-se à especificação incorreta do modelo: se você ajustar o modelo linear para a função não linear, sempre obterá algum erro. O termo 'variância' refere-se a erro na estimativa de parâmetros do modelo. Você aborda a conta como parte da variação da incerteza, enquanto não pode estimar o viés.

Conforme sugerido pelo @ErikL, a previsão conforme é uma abordagem teoricamente justificada, que adota uma idéia bastante semelhante ao bootstrap. A previsão conforme usando a reconstrução do modelo usando um novo ponto leva em consideração o viés e a variância, enquanto que para a regressão eles precisam de recursos computacionais significativos. Você pode experimentá-lo com Python usando uma biblioteca não-conformista .

Alexey Zaytsev
fonte
1

Não, parece uma má ideia. Primeiro, como Alexey apontou, há viés e variação. Mesmo para a melhor escolha de parâmetros, você não pode evitar a variação. Seu método nem tenta abordá-lo. Há outra questão muito importante, que parte, e provavelmente a maioria, do erro do seu modelo está nos dados, e não na aleatoriedade inerente ao modelo. (Sem mencionar que alguns modelos, como a regressão linear simples, não são aleatórios e, para modelos aleatórios, o grau de aleatoriedade varia de modelo para modelo)

Sugiro que você teste sua abordagem em alguns dados simulados simples e em algum modelo que você conhece. Estou certo de que, pelas razões descritas, seu erro estimado será muito menor que o erro real (ou sua distribuição será muito mais estreita).

Para estimar a distribuição de erros, você pode usar uma boa e antiga validação cruzada.

user31264
fonte
0

Estou pensando neste problema agora. Aqui estão minhas descobertas:

(1) Método Delta
(2) Reamostragem de Bootstrap
(3) Método Bayesiano
(4) Estimativa de Variância Média (MVE)

A idéia é tentar estimar as duas fontes de variabilidade da previsão, a incerteza da estimativa do parâmetro do modelo e o erro irredutível.

Aqui estão várias referências:

Abordagens de aprendizado de máquina para estimativa do intervalo de previsão para a saída do modelo, Durga L. Shrestha, Dimitri P. Solomatine, 2006
Uma comparação de algumas estimativas de erro para modelos de redes neurais, Robert Tibshirani, 1995
Revisão abrangente de intervalos de previsão baseados em redes neurais e novos Advances, Abbas khosravi, Doug Creighton, 2011

Espero que isso ajude e me corrija qualquer uma das opções acima é inadequada. Eu gostaria de ouvir mais dos outros.

Demo
fonte
1
Você poderia explicar como esta postagem aborda a pergunta original?
whuber
O título é 'PI for ML algoritmos', @kevinykuo está perguntando se o modo 'bootstraping' funciona. Estou apontando várias referências sobre alguns métodos usados ​​no PI para a Rede Neural.
Demo