Usando Ensemble Machine Learning Algorithms em Weka

Algoritmos de Ensemble são uma classe poderosa de algoritmo de aprendizado de máquina que combina as previsões de vários modelos. Um benefício de usar o Weka para aprendizado de máquina é a disponibilidade de muitos algoritmos de aprendizado de máquina de ensemble diferentes.

Visão geral dos algoritmos de ensemble

Faremos um tour pelos 5 principais agrupar algoritmos de aprendizado de máquina em Weka. Cada algoritmo que será coberto será brevemente descrito em termos de como funciona e os principais parâmetros do algoritmo serão destacados, bem como o próprio algoritmo seria demonstrado na interface do Weka Explorer.

Os 5 algoritmos que que veremos são:

  1. Ensacamento
  2. Floresta aleatória
  3. AdaBoost
  4. Votação
  5. Empilhamento

Um problema de classificação de aprendizado de máquina padrão será usado para demonstrar cada algoritmo. Especificamente, o problema de classificação binária da Ionosfera. Este é um bom conjunto de dados para demonstrar algoritmos de classificação porque as variáveis ​​de entrada são numéricas e todas têm a mesma escala, o problema só tem duas classes para discriminar.

Cada instância descreve as propriedades dos retornos de radar da atmosfera e do tarefa é prever se há ou não estrutura na ionosfera. Existem 34 variáveis ​​de entrada numéricas geralmente da mesma escala. Você pode aprender mais sobre este conjunto de dados no UCI Machine Learning Repository . Os principais resultados são da ordem de 98% de precisão.

Inicie o Weka Explorer:

  1. Abra o Weka GUI Chooser.
  2. Clique em “Explorer ”Para abrir o Weka Explorer.
  3. Carregue o conjunto de dados Ionosphere do arquivo data / ionosphere.arff
  4. Clique em“ Classificar ”para abrir a guia Classificar .

1. Bagging

Bootstrap Aggregation ou Bagging é um algoritmo de conjunto que pode ser usado para classificação ou regressão. Bootstrap é uma técnica de estimativa estatística em que uma quantidade estatística, como uma média, é estimada a partir de várias amostras aleatórias de seus dados (com substituição). É uma técnica útil quando você tem uma quantidade limitada de dados e está interessado em uma estimativa mais robusta de uma quantidade estatística.

Este princípio de amostra pode ser usado com modelos de aprendizado de máquina. Várias amostras aleatórias de seus dados de treinamento são desenhadas com substituição e usadas para treinar vários modelos de aprendizado de máquina diferentes. Cada modelo é então usado para fazer uma previsão e os resultados são calculados para fornecer uma previsão mais robusta.

É melhor usado com modelos que têm um baixo viés e uma alta variância, o que significa que as previsões que eles fazem são altamente dependentes dos dados específicos dos quais foram treinados. O algoritmo de ensacamento mais usado para atender a esse requisito de alta variação são as árvores de decisão.

Escolha o algoritmo de ensacamento:

  1. Clique no botão “Escolher” e selecione “Saco” no grupo “meta”.
  2. Clique no nome do algoritmo para revisar a configuração do algoritmo.
Configuração Weka para o algoritmo de bagging

Um parâmetro de configuração chave no bagging é o tipo de modelo que está sendo bagging . O padrão é o REPTree, que é a implementação Weka de uma árvore de decisão padrão, também chamada de Árvore de Classificação e Regressão ou CART. Isso é especificado no parâmetro do classificador.

O tamanho de cada amostra aleatória é especificado em “bagSizePercent”, que é um tamanho como uma porcentagem do conjunto de dados de treinamento bruto. O padrão é 100%, o que criará uma nova amostra aleatória do mesmo tamanho do conjunto de dados de treinamento, mas terá uma composição diferente.

Isso ocorre porque a amostra aleatória é desenhada com substituição, o que significa que a cada vez uma instância é retirada aleatoriamente do conjunto de dados de treinamento e adicionada à amostra, ela também é adicionada de volta ao conjunto de dados de treinamento, o que significa que pode ser escolhida novamente e adicionada duas ou mais vezes à amostra.

Finalmente, o número de malas (e número de classificadores) pode ser especificado no parâmetro “numIterações”. O padrão é 10, embora seja comum usar valores na casa das centenas ou milhares. Continue a aumentar o valor de “numIterações” até que você não veja mais nenhuma melhoria no modelo ou fique sem memória.

  1. Clique em “OK” para fechar a configuração do algoritmo.
  2. Clique no botão “Iniciar” para executar o algoritmo no conjunto de dados Ionosphere.

Você pode ver que, com a configuração padrão, o ensacamento atinge uma precisão de 91%:

Resultados da classificação Weka para o algoritmo de bagging

2.Floresta aleatória

A floresta aleatória é uma extensão de ensacamento para árvores de decisão que pode ser usada para classificação ou regressão. Uma desvantagem das árvores de decisão agrupadas é que as árvores de decisão são construídas usando um algoritmo ganancioso que seleciona o melhor ponto de divisão em cada etapa do processo de construção da árvore. Como tal, as árvores resultantes acabam parecendo muito semelhantes, o que reduz a variância das previsões de todos os sacos, o que por sua vez prejudica a robustez das previsões feitas.

A floresta aleatória é uma melhoria nas árvores de decisão ensacadas que interrompe o algoritmo de divisão gananciosa durante a criação da árvore, de modo que os pontos de divisão só podem ser selecionados de um subconjunto aleatório dos atributos de entrada. Esta simples mudança pode ter um grande efeito na redução da similaridade entre as árvores ensacadas e, por sua vez, nas previsões resultantes.

Escolha o algoritmo de floresta aleatório:

  1. Clique no botão “Escolher” e selecione “RandomForest” no grupo “árvores”.
  2. Clique no nome do algoritmo para revisar a configuração do algoritmo.
Configuração Weka para o algoritmo de floresta aleatório

Além dos parâmetros listados acima, para ensacamento, um parâmetro chave para floresta aleatória é o número de atributos a serem considerados em cada ponto de divisão. No Weka, isso pode ser controlado pelo atributo “numFeatures”, que por padrão é definido como 0, que seleciona o valor automaticamente com base em uma regra prática.

  1. Clique em “OK” para fechar o configuração do algoritmo.
  2. Clique no botão “Iniciar” para executar o algoritmo no conjunto de dados Ionosphere.

Você pode ver que com a configuração padrão que as florestas aleatórias alcançam uma precisão de 92%:

Resultados da classificação Weka para o algoritmo de floresta aleatório

3. AdaBoost

AdaBoost é um algoritmo de aprendizado de máquina de conjunto para problemas de classificação. Ele faz parte de um grupo de métodos de ensemble chamado boosting, que adiciona novos modelos de aprendizado de máquina em uma série em que os modelos subsequentes tentam corrigir os erros de predição feitos por modelos anteriores. AdaBoost foi a primeira implementação bem-sucedida desse tipo de modelo.

O Adaboost foi projetado para usar modelos de árvore de decisão curtos, cada um com um único ponto de decisão. Essas árvores curtas costumam ser chamadas de tocos de decisão.

O primeiro modelo é construído normalmente. Cada instância no conjunto de dados de treinamento é ponderada e os pesos são atualizados com base na precisão geral do modelo e se uma instância foi classificada corretamente ou não. Os modelos subsequentes são treinados e adicionados até que uma precisão mínima seja alcançada ou nenhuma outra melhoria seja possível. Cada modelo é ponderado com base em sua habilidade e esses pesos são usados ​​ao combinar as previsões de todos os modelos em novos dados.

Escolha o algoritmo AdaBoost:

  1. Clique no botão Botão “Escolher” e selecione “AdaBoostM1” no grupo “meta”.
  2. Clique no nome do algoritmo para revisar a configuração do algoritmo.
Configuração Weka para o algoritmo AdaBoost

O aprendiz fraco dentro o modelo AdaBoost pode ser especificado pelo parâmetro classificador. O padrão é o algoritmo de coto de decisão, mas outros algoritmos podem ser usados. um parâmetro-chave além do aluno fraco é o número de modelos a serem criados e adicionados em série. Isso pode ser especificado no parâmetro “numIterações” e o padrão é 10.

  1. Clique em “OK” para fechar a configuração do algoritmo.
  2. Clique no botão “Iniciar” para executar o algoritmo no conjunto de dados Ionosphere.

Você pode ver que, com a configuração padrão, o AdaBoost atinge uma precisão de 90%:

Resultados da classificação Weka para o algoritmo AdaBoost

4. Votação

A votação é talvez o algoritmo de conjunto mais simples e geralmente muito eficaz. Pode ser usado para problemas de classificação ou regressão. A votação funciona criando dois ou mais submodelos. Cada submodelo faz previsões que são combinadas de alguma forma, como tomando a média ou o modo das previsões, permitindo que cada submodelo vote em qual deve ser o resultado.

Escolha o voto algoritmo:

  1. Clique no botão “Escolher” e selecione “Votar” no grupo “meta”.
  2. Clique no nome do algoritmo para revisar a configuração do algoritmo.
Configuração Weka para o algoritmo de conjunto de votação

O parâmetro-chave de um conjunto Vote é a seleção de submodelos. Os modelos podem ser especificados em Weka no parâmetro “classificadores”.Clicar neste parâmetro permite adicionar vários classificadores:

Seleção de algoritmo Weka para o algoritmo de conjunto de votação

Clicar no botão “Editar” com um classificador selecionado permite configurar os detalhes desse classificador. Um objetivo na seleção de submodelos é selecionar modelos que façam previsões bastante diferentes (previsões não correlacionadas). Como tal, é uma boa regra selecionar tipos de modelos muito diferentes, como árvores, métodos baseados em instâncias, funções e assim por diante.

Outro parâmetro importante a ser configurado para votação é como as previsões do submodelos são combinados. Isso é controlado pelo parâmetro “combinaçãoRule” que é definido para tirar a média das probabilidades por padrão.

  1. Clique em “OK” para fechar a configuração do algoritmo.
  2. Clique o botão “Iniciar” para executar o algoritmo no conjunto de dados Ionosphere.

Você pode ver que com a configuração padrão, o Vote atinge uma precisão de 64%. Obviamente, esta técnica obteve resultados ruins porque apenas o submodelo ZeroR foi selecionado.

5. Empilhamento

Generalização empilhada ou empilhamento é uma extensão simples para conjuntos de votação que podem ser usados ​​para problemas de classificação e regressão.

Além de selecionar vários submodelos, o empilhamento permite que você para especificar outro modelo para aprender como combinar melhor as previsões dos submodelos. Como um metamodelo é usado para combinar melhor as previsões de submodelos, essa técnica às vezes é chamada de combinação, como na combinação de previsões.

Escolha o algoritmo de empilhamento:

  1. Clique no botão “Escolher” e selecione “Empilhamento” no grupo “meta”.
  2. Clique no nome do algoritmo para revisar a configuração do algoritmo.
Configuração Weka para o algoritmo de conjunto de empilhamento

Tal como acontece com o classificador Vote, você pode especificar os submodelos no parâmetro classificadores. O modelo que será treinado para aprender como combinar melhor as previsões do submodelo pode ser especificado no parâmetro “metaClassifier”, que é definido como ZeroR por padrão. É comum usar um algoritmo linear como regressão linear ou regressão logística para problemas de regressão e tipo de classificação, respectivamente. Isso é para obter uma saída que é uma combinação linear simples das previsões dos submodelos.

  1. Clique em “OK” para fechar a configuração do algoritmo.
  2. Clique no botão Botão “Iniciar” para executar o algoritmo no conjunto de dados Ionosphere.

Você pode ver que, com a configuração padrão, o Stacking atinge uma precisão de 64%:

Resultados da classificação Weka para o algoritmo de conjunto de empilhamento

Novamente , o mesmo que votar, o Stacking obteve resultados ruins porque apenas o submodelo ZeroR foi selecionado.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *