Ensemble Learning in Python por exemplo

Ensemble Learning in Python por exemplo

Não há segredo de que o aprendizado de máquina está melhorando com o tempo e os modelos preditivos. Modelos preditivos formam o núcleo do aprendizado de máquina. É bom melhorar a precisão do modelo para obter melhores resultados no modelo de aprendizado de máquina. Uma técnica chamada “Aprendizado de Máquina de Ensemble” é usada para aumentar o desempenho e a precisão de um modelo.

A aprendizagem de conjunto usa diferentes modelos de aprendizado de máquina para tentar fazer melhores previsões no conjunto de dados. As previsões de um modelo são combinadas em um modelo de conjunto para tornar a previsão final bem -sucedida. No entanto, muitas pessoas não estão familiarizadas com o aprendizado de máquina do conjunto. Leia abaixo; Explicamos tudo sobre esta técnica de aprendizado de máquina usando python com exemplos apropriados.

Suponha que você esteja participando de um jogo de trivia e tenha um bom conhecimento de alguns tópicos, mas você não sabe nada de outros poucos tópicos. Um membro da equipe seria obrigado a cobrir todos os tópicos do jogo, se você desejar obter uma pontuação máxima no jogo. É a idéia básica por trás do aprendizado do conjunto, no qual combinamos as previsões de diferentes modelos para obter uma saída precisa.

A imagem mostra um exemplo de esquemas de um conjunto. Na imagem acima, a matriz de entrada é preenchida por três oleodutos de pré -processamento, e existem alunos da base. Todos os conjuntos combinam as previsões dos alunos da base na matriz final de previsão "P".

Suponha que você esteja pensando em combinar todas as previsões. Se considerarmos o exemplo acima, é fácil responder quando você tem uma equipe; O aprendizado de máquina é o mesmo que os problemas de classificação. No aprendizado de máquina, o sistema exige uma previsão de rótulo de classe mais comum equivalente à regra da maioria. No entanto, existem diferentes maneiras de combinar várias previsões e você pode usar um modelo para aprender a combinar as previsões adequadamente.

O que é aprendizado de conjunto?

O aprendizado de máquina e as estatísticas estão se espalhando em todo o mundo, por isso precisamos de técnicas diferentes para aumentar o desempenho de um modelo preditivo para melhor precisão. A aprendizagem de conjunto é um procedimento para usar diferentes modelos de aprendizado de máquina e construir estratégias para resolver um problema específico.

O conjunto combina diferentes conjuntos de modelos para improvisar o poder e a estabilidade preditivos. De acordo com os modelos baseados em conjunto, existem dois cenários diferentes, eu.e., uma quantidade maior ou menor de dados.

Vamos entender o aprendizado do conjunto usando um exemplo; Suponha que queremos investir na empresa "ABC", mas não temos certeza sobre seu desempenho. Por isso, seguimos conselhos de pessoas diferentes sobre o desempenho da empresa "ABC". Podemos seguir o conselho de:

Funcionários da empresa "ABC": Os funcionários da empresa sabem tudo sobre a funcionalidade interna da empresa e todas as informações internas. No entanto, os funcionários não têm uma perspectiva mais ampla sobre a concorrência, como a tecnologia está evoluindo e os efeitos no produto da empresa "ABC". De acordo com a informação e as experiências passadas, ter conselhos de funcionários é 65% vezes certo.

Consultores financeiros da empresa “ABC”: Os consultores financeiros têm uma perspectiva mais ampla sobre o ambiente competitivo. No entanto, o conselho do consultor financeiro da empresa foi 75% vezes correto no passado.

Traders de mercado de ações: Esses comerciantes sempre observam o preço das ações da empresa e conhecem as tendências sazonais e o desempenho geral do mercado. Eles também desenvolvem uma instituição aguçada sobre a variação de ações ao longo do tempo. Ainda assim, o conselho dos comerciantes de mercado de ações foi 70% vezes útil no passado.

Funcionários da empresa do concorrente: Esses funcionários conhecem as funcionalidades internas da empresa de um concorrente e estão cientes das mudanças específicas. No entanto, eles não têm toda a visão de sua empresa e fatores externos relacionados ao crescimento do concorrente. Ainda assim, os funcionários da empresa do concorrente estavam 60% vezes no passado.

Equipe de pesquisa de mercado: Esta equipe trabalha para analisar as preferências do cliente do produto da empresa "ABC" sobre os concorrentes. Esta equipe lida com o lado do cliente para desconhecer a variação "ABC" que a empresa trará devido ao alinhamento aos seus objetivos. No entanto, a equipe de pesquisa de mercado foi 75% vezes útil no passado.

Equipe de especialista em mídia social: Essa equipe é benéfica para entender como os produtos da empresa "ABC" estão posicionados no mercado. Eles também analisam os sentimentos do cliente mudando com a empresa ao longo do tempo. Equipe de especialista em mídia social sem conhecimento de qualquer informação além do marketing digital. Então, eles são 65% vezes no passado.

No cenário acima, temos aspectos diferentes de tomar uma boa decisão, pois a taxa de precisão pode ser 99%. No entanto, as suposições que usamos acima são independentes e ligeiramente extremas, porque espera -se que sejam correlacionadas.

Métodos de conjunto

Agora, vamos discutir as informações completas das diferentes técnicas de aprendizado de conjunto em Python:

Método básico do conjunto

Existem três tipos de técnicas no método básico do conjunto, e são:

Votação máxima

O principal trabalho de votação máxima é usado para resolver problemas de classificação. Este método possui vários modelos independentes, e a produção individual é conhecida como "voto". Vários modelos são usados ​​para prever todos os pontos de dados. A classe com um voto máximo retornará como uma saída. A previsão que os usuários recebem pela maioria do modelo será usada como uma previsão final.

Por exemplo, temos cinco especialistas para classificar um produto, eles forneceram as classificações como esta:

Especialista 1 Especialista 2 Especialista 3 Especialista 4 Especialista 5 Classificação final
4 5 4 5 4 4

Aqui está o código de amostra para o exemplo acima:

Model1 = árvore.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Modelo1.ajuste (x_train, y_train)
Modelo2.ajuste (x_train, y_train)
Model3.ajuste (x_train, y_train)
Pred1 = Model1.prever (x_test)
Pred2 = Model2.prever (x_test)
Pred3 = Model3.prever (x_test)
final_pred = np.variedade([])
para i no intervalo (0, len (x_test)):
final_pred = np.Anexar (Final_pred, Mode ([Pred1 [i], Pred2 [i], Pred3 [i]]))

No código de amostra acima, X_Train é uma variável independente dos dados de treinamento, e Y_Train é uma variável de destino dos dados de treinamento. Aqui x_train, x_test e y_test são conjuntos de validação.

Média

Existem várias previsões feitas para todos os dados da média; é usado para o problema de regressão. Nesta técnica, encontramos uma média de múltiplas previsões dos modelos especificados e então usa essa média para obter uma previsão final.

O método de média possui modelos independentes que são usados ​​para encontrar a média das previsões. Geralmente, a saída combinada é mais precisa que a saída individual, à medida que a variação diminui. Este método é usado para fazer previsões apropriadas no problema de regressão ou encontrar a possibilidade do problema de classificação.

Se considerarmos o exemplo acima, a média das classificações será

Especialista 1 Especialista 2 Especialista 3 Especialista 4 Especialista 5 Classificação final
4 5 4 5 4 4

média das classificações = (4+5+4+5+4+4)/5 = 4.4

O código de exemplo para o problema acima será:

Model1 = árvore.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Modelo1.ajuste (x_train, y_train)
Modelo2.ajuste (x_train, y_train)
Model3.ajuste (x_train, y_train)
Pred1 = Model1.Predict_Proba (x_test)
Pred2 = Model2.Predict_Proba (x_test)
Pred3 = Model3.Predict_Proba (x_test)
finalPred = (Pred1+Pred2+Pred3)/3

Média ponderada

Este método é um tipo estendido do método médio, pois os modelos recebem vários pesos que definem a importância de cada modelo para previsão adequada. Por exemplo, se uma equipe tiver dois especialistas e dois iniciantes, a importância será dada aos especialistas em vez dos iniciantes.

O resultado da média ponderada pode ser calculada como [(5 × 0.24) + (4 × 0.24) + (5 × 0.19) + (4 × 0.19) + (4 × 0.19)] = 4.68.

Fatores Especialista 1 Especialista 2 Especialista 3 Especialista 4 Especialista 5 Classificação final
peso 0.24 0.24 0.19 0.19 0.19
avaliação 5 4 5 4 4 4.68

Código de exemplo para o exemplo acima da média ponderada:

Model1 = árvore.DecisionTreeClassifier ()
Model2 = KneighborsClassifier ()
Model3 = LogisticRegression ()
Modelo1.ajuste (x_train, y_train)
Modelo2.ajuste (x_train, y_train)
Model3.ajuste (x_train, y_train)
Pred1 = Model1.Predict_Proba (x_test)
Pred2 = Model2.Predict_Proba (x_test)
Pred3 = Model3.Predict_Proba (x_test)
finalPred = (pred1*0.3+pred2*0.3+pred3*0.4)

Métodos avançados de conjunto

Empilhamento

Método de empilhamento, vários modelos como regressão ou classificação são combinados por meio de um meta-modelo. Em outras palavras, esse método usa previsões diferentes de vários modelos para construir um novo modelo. Todos os modelos básicos são treinados adequadamente no conjunto de dados e, em seguida, um meta-modelo é treinado corretamente nos recursos retornados dos modelos básicos. Portanto, um modelo básico de empilhamento é especificamente diferente, e o meta-modelo é benéfico para encontrar os recursos do modelo básico para obter grande precisão. O empilhamento tem uma etapa específica do algoritmo como abaixo:

  • Primeiro, treine um conjunto de dados em n partes.
  • O modelo base será montado nas partes N-1 e as previsões são divididas na enésima parte. Requer ser realizado para cada ná parte de um conjunto de trem.
  • O modelo será instalado em um conjunto de dados de trem completo, e este modelo será usado para prever um conjunto de dados de teste.
  • Depois disso, a previsão em um conjunto de dados de trem será usada como um recurso para criar um novo modelo.
  • Por fim, o modelo final será usado para prever em um conjunto de dados de teste.

Misturando

A mistura é a mesma que o método de empilhamento, mas usa um conjunto de espera de um conjunto de trem para fazer as previsões. Em palavras simples, a mistura usa um conjunto de dados de validação e o mantém separado para fazer as previsões em vez de usar um conjunto de dados completo para treinar um modelo básico. Então, aqui estão as etapas algorítmicas que podemos usar na mistura:

  • Primeiro, precisamos dividir os conjuntos de dados de treinamento em diferentes conjuntos de dados, como teste, validação e treinamento de treinamento.
  • Agora, ajuste o modelo base por um conjunto de dados de treinamento.
  • Depois disso, preveja o conjunto de dados de teste e validação.
  • As previsões acima são usadas como um recurso para a construção do modelo de segundo nível.
  • Finalmente, o modelo de segundo nível é usado para fazer as previsões no teste e meta-fume.

Ensacamento

O ensacamento também é chamado de método de inicialização; Combina resultados de diferentes modelos para obter resultados generalizados. Neste método, um modelo básico é executado nas malas ou subconjuntos para obter uma distribuição justa de um conjunto de dados completo. Essas sacolas são subconjuntos de um conjunto de dados com o substituto para tornar o tamanho de uma bolsa semelhante a um conjunto de dados completo. A saída do ensacamento é formada quando todos os modelos básicos são combinados para a saída. Há um algoritmo específico para implorar como abaixo:

  • Primeiro, crie conjuntos de dados diferentes a partir de um conjunto de dados de treinamento, escolhendo observações com um substituto.
  • Agora, execute modelos básicos em todos os conjuntos de dados criados de forma independente.
  • Por fim, combine todas as previsões do modelo básico a cada resultado final.

Impulsionando

A reforma funciona para impedir que o modelo de base errado impacte uma saída final, em vez de combinar um modelo básico, aumentando o foco em criar um novo modelo dependente de um anterior. Este novo modelo remove todos os erros de todos os modelos e todo modelo é conhecido como um aprendiz fraco. O modelo final é chamado de aluno forte, criado ao obter uma média ponderada dos alunos fracos. É um procedimento seqüencial no qual todo modelo subsequente funciona para corrigir erros de modelos anteriores. A seguir, estão as etapas seqüenciais do algoritmo para aumentar:

  • Primeiro, pegue o subconjunto de um conjunto de dados de treinamento e depois treine o modelo básico no conjunto de dados.
  • Agora, use o terceiro modelo para fazer previsões em um conjunto de dados completo.
  • Depois disso, calcule o erro pelo valor previsto e real.
  • Depois de calcular o erro, inicialize o ponto de dados com o mesmo peso.
  • Agora, atribua um peso maior ao ponto de dados previsto incorretamente.
  • Depois disso, faça um novo modelo removendo os erros anteriores e faça previsões apropriadas pelo novo modelo.
  • Precisamos criar modelos diferentes-cada modelo sucessivo corrigindo os erros dos últimos modelos.
  • Finalmente, o aluno forte ou o modelo final é uma média ponderada do aluno anterior ou fraco.

Conclusão

Isso conclui nossa explicação detalhada do aprendizado de conjunto com os exemplos apropriados no Python. Como mencionamos anteriormente, a aprendizagem do conjunto tem várias previsões; portanto, em outras palavras, usamos vários modelos para encontrar a saída mais precisa possível. Mencionamos tipos de aprendizado de conjunto com exemplos e algoritmos deles. Existem vários métodos para descobrir os resultados usando várias previsões. De acordo com muitos cientistas de dados, o Ensemble Learning oferece a saída mais precisa possível, pois usa várias previsões ou modelos.