Impulsionando o aprendizado de máquina: o que é, funções, tipos e recursos
Publicados: 2020-05-29Impulsionar em Machine Learning é um tópico importante. Muitos analistas ficam confusos sobre o significado desse termo. É por isso que, neste artigo, descobriremos o que significa impulsionar o Machine Learning e como ele funciona. A otimização ajuda os modelos de ML a melhorar sua precisão de previsão. Vamos discutir esse algoritmo em detalhes:
Índice
O que é impulsionar no aprendizado de máquina?
Antes de discutirmos 'Aprimoramento de aprendizado de máquina ', devemos primeiro considerar a definição desse termo. Impulsionar significa 'encorajar ou ajudar algo a melhorar'. O aprimoramento do aprendizado de máquina faz exatamente a mesma coisa, pois capacita os modelos de aprendizado de máquina e aumenta sua precisão. Por esse motivo, é um algoritmo popular em ciência de dados.
Boosting em ML refere-se aos algoritmos que convertem modelos de aprendizagem fracos em fortes. Suponha que tenhamos que classificar e-mails nas categorias 'Spam' e 'Não Spam'. Podemos adotar a seguinte abordagem para fazer essas distinções:
- Se o e-mail tiver apenas um arquivo de imagem, é spam (porque a imagem geralmente é promocional)
- Se o e-mail contiver uma frase semelhante a 'Você ganhou na loteria', é spam.
- Se o e-mail contiver apenas um monte de links, é spam.
- Se o e-mail for de uma fonte presente em nossa lista de contatos, não é spam.
Agora, apesar de termos regras de classificação, você acha que elas são fortes o suficiente individualmente para identificar se um email é spam ou não? Eles não são. Individualmente, essas regras são fracas e não são suficientes para classificar um e-mail como 'Não é Spam' ou 'Spam'. Precisamos torná-los mais fortes, e podemos fazer isso usando uma média ponderada ou considerando a previsão do voto mais alto.
Portanto, neste caso, temos cinco classificadores, dos quais três classificadores marcam o e-mail como 'Spam', portanto, consideraremos um e-mail 'Spam' por padrão, pois essa classe tem um voto mais alto que 'Não é spam' categoria.
Este exemplo foi para dar uma ideia do que são algoritmos de aumento. Eles são mais complexos do que isso.

Dê uma olhada em: 25 perguntas e respostas da entrevista de aprendizado de máquina
Como eles funcionam?
O exemplo acima nos mostrou que o reforço combina alunos fracos para formar regras rígidas. Então, como você identificaria essas regras fracas? Para encontrar uma regra incerta, você terá que usar algoritmos de aprendizado baseados em instância. Sempre que você aplica um algoritmo de aprendizado básico, ele produz uma regra de previsão fraca. Você repetirá esse processo para várias iterações e, a cada iteração, o algoritmo de reforço combinaria as regras fracas para formar uma regra forte.
O algoritmo de reforço escolhe a distribuição correta para cada iteração por meio de várias etapas. Primeiro, ele pegará todas as várias alocações e atribuirá peso igual a elas. Se o primeiro algoritmo de aprendizado básico cometer um erro, ele adicionará mais peso a essas observações. Depois de atribuir o peso, passamos para a próxima etapa.
Nesta etapa, continuaremos repetindo o processo até aumentarmos a precisão do nosso algoritmo. Em seguida, combinaremos a saída dos alunos fracos e criaremos uma saída forte que fortaleceria nosso modelo e o ajudaria a fazer melhores previsões. Um algoritmo de boosting se concentra mais nas suposições que causam altos erros devido às suas regras fracas.
Saiba mais: 5 aplicativos inovadores de aprendizado de máquina
Diferentes tipos de algoritmos de impulso
Os algoritmos de reforço podem usar muitos tipos de mecanismos subjacentes, incluindo maximizadores de margem, carimbos de decisão e outros. Principalmente, existem três tipos de algoritmos de aprimoramento de Machine Learning:
- Adaptive Boosting (também conhecido como AdaBoosta)
- Aumento de gradiente
- XGBoostName
Discutiremos os dois primeiros, AdaBoost e Gradient Boosting, brevemente neste artigo. XGBoost é um tópico muito mais complicado, que discutiremos em outro artigo.
1. Reforço Adaptativo
Suponha que você tenha uma caixa com cinco pontos positivos e cinco negativos. Sua tarefa é classificá-los e colocá-los em tabelas diferentes.
Na primeira iteração, você atribui pesos iguais a cada ponto de dados e aplica um toco de decisão na caixa. No entanto, a linha segrega apenas dois pontos positivos do grupo, e todos os outros permanecem juntos. Seu toco de decisão (que é uma linha que passa pela nossa suposta caixa) não consegue prever todos os pontos de dados corretamente e colocou três pontos positivos com os negativos.

Na próxima iteração, atribuímos mais peso às três vantagens que perdemos anteriormente; mas desta vez, o toco de decisão separa apenas dois minutos do grupo. Atribuiremos mais peso aos pontos negativos que perdemos nesta iteração e repetiremos o processo. Após uma ou duas repetições, podemos combinar alguns desses resultados para produzir uma regra de previsão estrita.
O AdaBoost funciona exatamente assim. Primeiro, ele prevê usando os dados originais e atribui peso igual a cada ponto. Em seguida, atribui maior importância às observações que o primeiro aluno não consegue prever corretamente. Ele repete o processo até atingir um limite na precisão do modelo.
Você pode usar carimbos de decisão, bem como outros algoritmos de aprendizado de máquina com o Adaboost.
Aqui está um exemplo de AdaBoost em Python:
de sklearn.ensemble importar AdaBoostClassifier
de sklearn.datasets importar make_classification
X,Y = make_classification(n_samples=100, n_features=2, n_informative=2,
n_redundant=0, n_repeated=0, random_state=102)
clf = AdaBoostClassifier(n_estimators=4, random_state=0, algoritmo='SAMME')
clf.fit(X, Y)
2. Aumento de gradiente
O Gradient Boosting usa o método de descida de gradiente para reduzir a função de perda de toda a operação. A descida do gradiente é um algoritmo de otimização de primeira ordem que encontra o mínimo local de uma função (função diferenciável). O aumento de gradiente treina sequencialmente vários modelos e pode ajustar novos modelos para obter uma estimativa melhor da resposta.
Ele constrói novos aprendizes de base que podem se correlacionar com o gradiente negativo da função de perda e que estão conectados a todo o sistema. Em Python, você terá que usar o Gradient Tree Boosting (também conhecido como GBRT). Você pode usá-lo para classificação, bem como problemas de regressão.
Aqui está um exemplo de Gradient Tree Boosting em Python:
de sklearn.ensemble importar GradientBoostingRegressor
model = GradientBoostingRegressor(n_estimators=3,learning_rate=1)
model.fit(X,Y)
# para classificação
de sklearn.ensemble importar GradientBoostingClassifier
model = GradientBoostingClassifier()

model.fit(X,Y)
Recursos do Boost no Machine Learning
Boosting oferece muitas vantagens e, como qualquer outro algoritmo, também tem suas limitações:
- Interpretar as previsões de aumento é bastante natural porque é um modelo de conjunto.
- Ele seleciona recursos implicitamente, o que é outra vantagem desse algoritmo.
- O poder de previsão de algoritmos de reforço é mais confiável do que árvores de decisão e ensacamento.
- Ampliá-lo é um pouco complicado porque todo estimador no aumento é baseado nos estimadores anteriores.
Leia também: Ideias de projetos de aprendizado de máquina para iniciantes
Para onde ir a partir daqui?
Esperamos que você tenha achado útil este artigo sobre como impulsionar. Primeiro, discutimos o que é esse algoritmo e como ele resolve problemas de Machine Learning. Em seguida, demos uma olhada em seu funcionamento e como ele funciona.
Também discutimos seus vários tipos. Descobrimos sobre o AdaBoost e o Gradient Boosting ao compartilhar seus exemplos também. Se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o PG Diploma in Machine Learning & AI do IIIT-B e upGrad, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, IIIT- B Status de ex-aluno, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.
Como posso definir o aumento no aprendizado de máquina em termos simples?
Boosting em máquinas consiste em referir-se a algoritmos que ajudam a converter modelos fracos de aprendizagem em modelos fortes. Se tomarmos o exemplo de classificar e-mails como spam e não spam, existem algumas distinções que podem ser usadas para facilitar o entendimento. Essas distinções podem ser abordadas quando um e-mail tem um único arquivo, contém uma frase semelhante como Você ganhou na loteria, contém vários links e é proveniente de uma lista de contatos.
Como funciona um algoritmo de boosting?
As regras fracas são identificadas usando algoritmos de aprendizado baseados em instância. Uma vez que um algoritmo de aprendizado básico é aplicado em várias iterações, ele finalmente combina as regras fracas em uma regra forte. O algoritmo de reforço faz as escolhas certas para distribuir cada iteração por meio de várias etapas. Depois de fazer as alocações, ele atribui peso igual até que um erro seja cometido, após o qual mais peso é atribuído. Este processo é repetido até que uma melhor precisão seja alcançada. Depois disso, todas as saídas fracas são combinadas para formar uma forte.
Quais são os diferentes tipos de algoritmos de reforço e seus recursos?
Os diferentes tipos são aumento adaptativo, aumento de gradiente e XGBoost. Boosting tem características como ele seleciona recursos implicitamente. As árvores de decisão são menos confiáveis que os poderes de previsão. Além disso, o dimensionamento é mais difícil porque os estimadores são baseados nos anteriores. E interpretar as previsões de aumento é natural, pois é um modelo de conjunto.