Algoritmos de condução em aprendizado de máquina

Conteúdo

Quantos algoritmos de impulso você conhece?

Você pode citar pelo menos dois algoritmos de impulso em aprendizado de máquina?

Os algoritmos de impulso existem há anos e, porém, só recentemente eles se tornaram populares na comunidade de aprendizado de máquina. Mas, Por que esses algoritmos de impulso se tornaram tão populares?

Um dos principais motivos para o aumento na adoção de algoritmos de impulso são as competências de aprendizado de máquina. Os algoritmos de impulso fornecem superpoderes aos modelos de aprendizado de máquina para melhorar sua precisão de previsão. Uma rápida olhada nas competições Kaggle e DataHack Hackatones é evidência suficiente – Os algoritmos de impulso são extremamente populares!

Em poucas palavras, algoritmos de momentum muitas vezes superam modelos mais simples, como regressão logística e Árvores de decisão. De fato, A maioria de nossos finalistas da plataforma DataHack usa um algoritmo de impulso ou uma combinação de vários algoritmos de impulso.

boosting_algorithms-6776937

Neste artigo, Apresentarei quatro algoritmos de boost populares que você pode usar em seu próximo aprendizado de máquina hackathon o proyecto.

4 Gerar algoritmos no aprendizado de máquina

  1. Máquina de aumento de gradiente (GBM)
  2. Máquina de aumento de gradiente extremo (XGBM)
  3. LightGBM
  4. CatBoost

Introdução rápida ao Boosting (O que é Boosting?)

Imagine este cenário:

Você criou um modelo de regressão linear que oferece uma precisão decente do 77% no conjunto de dados de validação. A seguir, decide expandir seu portfólio criando um modelo de k-vizinho mais próximo (KNN) e um árvore de decisão modelo no mesmo conjunto de dados. Esses modelos deram uma precisão do 62% e ele 89% no conjunto de validação, respectivamente.

É óbvio que os três modelos funcionam de maneiras completamente diferentes.. Por exemplo, o modelo de regressão linear tenta capturar relacionamentos lineares nos dados, enquanto o modelo de árvore de decisão tenta capturar a não linearidade nos dados.

screenshot-from-2020-02-07-14-27-11-7138734

Que tal se, em vez de usar qualquer um desses modelos para fazer as previsões finais, usamos uma combinação de todos esses modelos?

Estou pensando em uma média das previsões desses modelos. Fazendo isso, poderíamos capturar mais informações dos dados, verdade?

Essa é principalmente a ideia por trás do aprendizado juntos.. E de onde vem o desejo?

O impulso é uma das técnicas utilizadas pelo conceito de aprendizagem conjunta. Um algoritmo de impulso combina vários modelos simples (também conhecido como alunos fracos ou estimadores de linha de base) para gerar o resultado final.

Veremos alguns dos algoritmos de momentum importantes neste artigo..

1. Máquina de aumento de gradiente (GBM)

Uma máquina de aumento de gradiente ou GBM combina as previsões de várias árvores de decisão para gerar as previsões finais. Observe que todos os alunos fracos em uma máquina de aumento de gradiente são árvores de decisão.

Mas se usarmos o mesmo algoritmo, Como é melhor usar cem árvores de decisão do que usar uma única árvore de decisão? Como diferentes árvores de decisão capturam diferentes sinais / informação de dados?

Aqui está o truque: nós em cada árvore de decisão tomam um subconjunto diferente de características para selecionar a melhor divisão. Isso significa que as árvores individuais não são todas iguais e, portanto, pode capturar sinais diferentes dos dados.

O que mais, cada nova árvore leva em consideração os erros ou erros cometidos pelas árvores anteriores. Portanto, cada árvore de decisão sucessiva é baseada nos erros das árvores anteriores. É assim que as árvores em um algoritmo de máquina de aumento de gradiente são construídas sequencialmente.

screenshot-from-2020-02-07-14-30-03-9904920

Aqui está um artigo que explica o processo de ajuste de hiperparâmetros para o algoritmo GBM:

2. Máquina de aumento de gradiente extremo (XGBM)

Extreme Gradient Boosting ou XGBoost é outro algoritmo de aumento popular. De fato, O XGBoost é simplesmente uma versão improvisada do algoritmo GBM!! O procedimento de trabalho do XGBoost é o mesmo do GBM. Árvores no XGBoost são construídas sequencialmente, tentando consertar os erros das árvores acima.

Aqui está um artigo que explica intuitivamente a matemática por trás do XGBoost e também implementa o XGBoost em Python:

untitled-2-copy-6369937

Mas existem certos recursos que tornam o XGBoost um pouco melhor do que o GBM:

  • Um dos pontos mais importantes é que o XGBM implementa pré-processamento paralelo (a nivel de ) o que o torna mais rápido do que GBM.
  • XGBoost también incluye una variedad de técnicas de regularização que reducen el sobreajuste y mejoran el rendimiento general. Você pode selecionar a técnica de regularização definindo os hiperparâmetros do algoritmo XGBoost

Obtenga información sobre los diferentes hiperparámetros de XGBoost y cómo juegan un papel en el proceso de Treinamento del modelo aquí:

O que mais, se você estiver usando o algoritmo XGBM, você não precisa se preocupar em imputar valores ausentes em seu conjunto de dados. O modelo XGBM pode lidar com valores ausentes por conta própria. Durante o processo de treinamento, o modelo aprende se os valores ausentes devem estar no nó direito ou esquerdo.

3. LightGBM

O algoritmo de aumento de LightGBM está se tornando mais popular a cada dia devido à sua velocidade e eficiência. LightGBM pode lidar com grandes quantidades de dados com facilidade. Mas observe que este algoritmo não funciona bem com um pequeno número de pontos de dados.

Vamos parar um momento para entender por que isso acontece..

Árvores em LightGBM têm crescimento de folhas, em vez de crescimento nivelado. Depois da primeira divisão, a próxima divisão é feita apenas no nó folha que tem a maior perda delta.

Considere o exemplo que ilustrei na imagem a seguir:

profundidade-5906618

Depois da primeira divisão, o nó esquerdo teve uma perda maior e é selecionado para a próxima divisão. Agora, nós temos três nós de folha e o nó de folha do meio teve a maior perda. A divisão do algoritmo LightGBM por folhas permite que você trabalhe com grandes conjuntos de dados.

Para acelerar o processo de treinamento, LightGBM utiliza un método basado en histogramas para seleccionar la mejor división. Para cualquier variável contínuo, em vez de usar os valores individuais, estes são divididos em recipientes ou baldes. Isso acelera o processo de treinamento e reduz o uso de memória..

Aqui está um excelente artigo comparando os algoritmos LightGBM e XGBoost:

4. CatBoost

Como o nome sugere, CatBoost é um algoritmo de impulso que pode lidar com variáveis ​​categóricas em dados. A maioria dos algoritmos de aprendizado de máquina não funciona com strings ou categorias nos dados. Portanto, converter variáveis ​​categóricas em valores numéricos é uma etapa essencial de pré-processamento.

CatBoost pode lidar internamente com variáveis ​​categóricas nos dados. Essas variáveis ​​são transformadas em numéricas usando várias estatísticas em combinações de características.

Se você quiser entender a matemática por trás de como essas categorias são convertidas em números, você pode ler este artigo:

catboost-2798893

Outra razão pela qual CatBoost é amplamente utilizado é que funciona bem com o conjunto padrão de hiperparâmetros. Portanto, como usuário, não precisamos perder muito tempo ajustando os hiperparâmetros.

Aqui está um artigo que implementa CatBoost em um desafio de aprendizado de máquina:

Notas finais

Neste artigo, Cobrimos os fundamentos da aprendizagem em conjunto e discutimos o 4 tipos de algoritmos de reforço. Você está interessado em aprender sobre outros métodos de aprendizagem conjunta?? Você deve consultar o seguinte artigo:

Com quais outros algoritmos de impulso você trabalhou? Você teve sucesso com esses algoritmos de impulso? Compartilhe suas idéias e experiências comigo na seção de comentários abaixo..

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.