ADaboost em Sklearn

ADaboost em Sklearn
“O Adaboost é uma técnica de reforço de gradiente usada para converter alunos fracos e fortes. É amplamente utilizado em várias plataformas competitivas de aprendizado de máquina. Este artigo discutirá o algoritmo ADaboost, seus usos e sua implementação no Sklearn.”

O que é aprendizado de conjunto?

Ao combinar muitos modelos, a aprendizagem de conjunto aprimora os resultados do aprendizado de máquina. Em comparação com o uso de um único modelo, essa estratégia permite a geração de maior desempenho de previsão. Para reduzir a variação (ensacamento), reduzir o viés (reforço) e melhorar as previsões, abordagens de conjunto misturam várias técnicas de aprendizado de máquina em um modelo preditivo (empilhamento).

O que é adaboost?

O Adaboost é um exemplo de "aprendizado de conjunto", que envolve o uso de muitos alunos para criar um algoritmo de aprendizado mais eficaz. O Adaboost opera selecionando um algoritmo básico (como árvores de decisão) e aumentando de forma incremental, considerando as amostras categorizadas indevidamente no conjunto de treinamento. Selecionamos um método básico e damos a cada exemplo de treinamento o mesmo peso. O conjunto de treinamento é submetido ao algoritmo base em cada iteração, e os pesos dos casos que foram categorizados por engano são aumentados. Aplicamos o aluno base ao conjunto de treinamento com pesos atualizados cada vez que repetimos "N" Times. A média ponderada dos alunos "n" compõem o modelo final.

Por que usamos adaboost?

Como os parâmetros de entrada no algoritmo de adaboost não são otimizados simultaneamente, ele é menos afetado pelo excesso de ajuste. Ao aplicar o Adaboost, a precisão dos classificadores fracos pode ser aumentada. Em vez de problemas de classificação binária, o Adaboost também é utilizado para resolver problemas de classificação de texto e imagem. O Adaboost também é frequentemente empregado em problemas desafiadores de aprendizado de máquina.

Implementando o Adaboost em Sklearn

Importação de bibliotecas
de Sklearn.Ensemble Importar Adaboostclassifier
de Sklearn.Os conjuntos de dados importam make_classification
Criando o conjunto de dados
X, y = make_classification (n_samples = 500, n_features = 4, n_informative = 2, n_redundant = 0, random_state = 0, shuffle = false)
Print ("Dados do recurso IS", X)
print ("Dados da etiqueta é", y)

Saída

Os dados do recurso são [[0.44229321 0.08089276 0.54077359 -1.81807763]
[1.34699113 1.48361993 -0.04932407 0.2390336]
[-0.54639809 -1.1629494 -1.00033035 1.67398571]
..
[0.8903941 1.08980087 -1.53292105 -1.71197016]
[0.73135482 1.25041511 0.04613506 -0.95837448]
[0.26852399 1.70213738 -0.08081161 -0.70385904]]
Os dados da etiqueta são [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]

Criando o modelo e fazendo previsões

clf = adaboostclassifier (n_estimators = 100, random_state = 0)
clf.ajuste (x, y)
Print ("Rótulo de saída é", clf.prever ([[1.5, 1, 0.5, -0.5]]))
print ("pontuação de classificação é", clf.pontuação (x, y))

Saída

A etiqueta de saída é [1]
A pontuação de classificação é 0.94

Conclusão

Discutimos o algoritmo de adaboost no aprendizado de máquina, incluindo aprendizado de conjuntos, suas vantagens e implementação em Sklearn. Este é um algoritmo útil, pois usa um conjunto de modelos para decidir a saída em vez de um e também converte os alunos fracos em alunos fortes. Sklearn fornece implementação do Adaboost na classe "Ensemble", onde fornecemos parâmetros personalizados para o modelo.