Qual deles primeiro: benchmarking de algoritmos, seleção de recursos, ajuste de parâmetros?


11

Ao tentar fazer, por exemplo, uma classificação, minha abordagem atualmente é

  1. experimente primeiro vários algoritmos e faça benchmarks deles
  2. executar seleção de recurso no melhor algoritmo de 1 acima
  3. ajustar os parâmetros usando os recursos e o algoritmo selecionados

No entanto, muitas vezes não consigo me convencer de que pode haver um algoritmo melhor que o selecionado, se os outros algoritmos foram otimizados com o melhor parâmetro / recursos mais adequados. Ao mesmo tempo, fazer uma pesquisa em todos os recursos de algoritmos * parâmetros * consome muito tempo.

Alguma sugestão sobre a abordagem / sequência correta?

Respostas:


8

Suponho que você queira dizer seleção de recursos como engenharia de recursos . O processo que eu costumo seguir e vejo algumas pessoas fazendo é

  1. Engenharia de recursos
  2. Tente alguns algoritmos, geralmente os de alto desempenho, como RandomForest, Gradient Boosted Trees, Neutral Networks ou SVM nos recursos.

    2.1 Faça o ajuste simples de parâmetros, como pesquisa em grade, em um pequeno intervalo de parâmetros

Se o resultado da etapa 2 não for satisfatório, volte à etapa 1 para gerar mais recursos ou remova recursos redundantes e mantenha os melhores, as pessoas geralmente chamam essa seleção de recurso . Se ficar sem ideias para novos recursos, tente mais algoritmos.

Se o resultado estiver bom ou próximo do desejado, vá para a etapa 3

  1. Amplo ajuste de parâmetros

A razão para fazer isso é que a classificação tem tudo a ver com engenharia de recursos e, a menos que você conheça um classificador poderoso e incrível, como aprendizado profundo personalizado para um problema específico, como o Computer Vision. Gerar bons recursos é a chave. A escolha de um classificador é importante, mas não crucial. Todos os classificadores mencionados acima são bastante comparáveis ​​em termos de desempenho e, na maioria das vezes, o melhor classificador acaba sendo um deles.

O ajuste de parâmetros pode aumentar bastante o desempenho, em alguns casos. Mas sem boas características, o ajuste não ajuda muito. Lembre-se de que você sempre tem tempo para ajustar os parâmetros. Além disso, não há motivo para ajustar os parâmetros extensivamente, então você descobre um novo recurso e refaz tudo.


2

Ei, acabei de ver sua pergunta. É completamente errado fazer a seleção de recursos primeiro e depois ajustar o modelo usando a validação cruzada. Nos elementos de aprendizado estatístico e neste post do blog, é claramente mencionado que: O método CV não é viável apenas se toda a construção do seu modelo for feita dentro do loop CV. O mesmo ocorre com a seleção de recursos dentro do loop CV para ajuste dos parâmetros. Isso pode ser feito facilmente usando o invólucro de filtro no pacote MLR em R.


1

Eu já respondi uma pergunta semelhante aqui . O processo seria:

  • 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 e ajuste de parâmetros:
  • Previsão final, validação

Sempre tente executar a engenharia de recursos antes da seleção do modelo. Em seguida, selecione o modelo de acordo com as melhores características (ou as características que tendem a influenciar melhor a variável problema / dependente).


0

Se você estiver preparado para gastar tempo aprendendo como uma nova ferramenta funciona, tente o autoaprendizagem. Faz tudo o que é necessário para criar um pipeline de ML para você. Pré-processamento, seleção, construção de conjunto de modelos e ajuste através de validação cruzada. Dependendo da quantidade de dados que você possui, pode ou não ser um caminho mais rápido para uma boa previsão. Mas é certamente promissor.

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.