Etapas de aprendizado de máquina


9

Qual das opções abaixo é a correta ao criar um modelo preditivo?

Opção 1:

Primeiro, elimine os preditores obviamente mais ruins e pré-processe os demais, se necessário, treine vários modelos com validação cruzada, escolha os poucos melhores, identifique os principais preditores que cada um usou, depois treine novamente esses modelos com esses preditores e avalie a precisão novamente com a validação cruzada, escolha o melhor e treine-o em todo o conjunto de treinamento usando seus principais preditores e, em seguida, use-o para prever o conjunto de testes.

Opção 2:

Primeiro elimine os preditores obviamente mais ruins, depois processe o restante, se necessário, e use uma técnica de seleção de recursos como a seleção recursiva de recursos (por exemplo, RFE com rf) com validação cruzada, por exemplo, para identificar o número ideal de preditores principais e o que esses preditores , treine diferentes tipos de modelo com validação cruzada e veja qual deles oferece a melhor precisão com os principais preditores identificados anteriormente. Treine o melhor desses modelos novamente com esses preditores no conjunto de treinamento completo e use-o para prever o conjunto de testes.


1
O que você quer dizer com pré-processar o restante, se necessário ? É limpeza de dados?
Dawny33

1
Eu pretendia pré-processar os demais recursos que você acha úteis. Por pré-processamento, quero dizer, faça dimensionamento ou transformações como log, ou outros, se e conforme necessário.
AK

Ahh, como eu esperava :) De qualquer forma, escrevi a resposta com o fluxo de trabalho que eu e minha equipe geralmente seguimos!
Dawny33

Respostas:


16

Achei as duas opções um pouco defeituosas. Portanto, é geralmente (muito amplamente) a aparência de um fluxo de trabalho de modelagem preditiva:

  • Limpeza de dados : leva mais tempo, mas cada segundo gasto aqui vale a pena. Quanto mais limpos seus dados passarem por essa etapa, menor será o tempo total gasto.
  • Dividindo o conjunto de dados : O conjunto de dados seria dividido em conjuntos de treinamento e teste, que seriam usados ​​para fins de modelagem e previsão, respectivamente. Além disso, também seria necessário fazer uma divisão adicional como um conjunto de validação cruzada.
  • Transformação e Redução: Envolve processos como transformações, escala média e mediana, etc.
  • Seleção de recursos: isso pode ser feito de várias maneiras, como seleção de limite, seleção de subconjunto etc.
  • Projetando modelo preditivo: projete o modelo preditivo nos dados de treinamento, dependendo dos recursos que você tem em mãos.
  • Validação cruzada:
  • Previsão final, validação

Acho que suas etapas correspondem à minha opção 2. Meu entendimento é que, como parte da etapa Seleção de recurso, podemos executar uma função de eliminação de recurso recursivo (RFE) usando florestas aleatórias, por exemplo, com validação cruzada para determinar o melhor número de preditores e quais eles são e depois usam esses preditores para treinar vários algoritmos com validação cruzada e comparar a precisão para obter o melhor modelo que usa esses melhores preditores. O que você acha?
AK

@AndrewKostandy Sim, o algoritmo de seleção subconjunto para seleção de características quase funciona da mesma maneira :)
Dawny33

De nada. Atualmente, estou aprendendo para um exame em que uma das perguntas padrão do professor é "qual é o primeiro pensamento que você faz após obter e limpar os dados?" :-)
Martin Thoma

@ Dawny33 Você não gostaria de realizar transformações, redimensionamentos etc. antes de dividir seu conjunto de dados em treinamento e teste?
Minu

1
Alguma razão para executar transformações variáveis ​​e dimensionar apenas os dados de treinamento? Como você ajustaria os dados de teste para que correspondessem? Apenas curioso.
Minu

3

O local em que a seleção de recursos encontra um local em seu pipeline depende do problema. Se você conhece bem seus dados, pode selecionar recursos com base nesse conhecimento manualmente. Caso contrário - a experiência com os modelos usando validação cruzada pode ser melhor. Reduzir o número de recursos em um priorado com alguma técnica adicional como chi2 ou PCA pode realmente reduzir a precisão do modelo.

Na minha experiência com a classificação de texto com o classificador SGD, por exemplo, deixar todas as centenas de milhares de palavras codificadas como recursos binários trouxe melhores resultados em comparação à redução para alguns milhares ou centenas. O tempo de treinamento é realmente mais rápido com todos os recursos, pois a seleção de recursos é bastante lenta no meu conjunto de ferramentas (sklearn), porque não é estocástico como o SGD.

A multicolinearidade é algo a se observar, mas a interpretabilidade do recurso pode ser igualmente importante.

Em seguida, as pessoas relatam obter o melhor resultado com conjuntos de modelos. Cada modelo captura melhor uma parte específica do espaço da informação que as outras. Isso também o impediria de selecionar os recursos antes de encaixar todos os modelos incluídos no seu conjunto.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.