Boosting de gradiente
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 43 de 58.
Uma floresta faz suas árvores crescerem lado a lado. O gradient boosting as faz crescer uma após a outra: cada nova árvore aprende o que as árvores anteriores ainda erram.
Aqui, ele se ajusta às vendas de uma loja de smoothies, árvore por árvore:
Para classificação, o modelo é GradientBoostingClassifier:
from sklearn.ensemble import GradientBoostingClassifier
boost = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1, random_state=0)
boost.fit(X_train, y_train)learning_rate define quanto de cada correção manter. Passos pequenos são cuidadosos, por isso precisam de mais árvores.
Desafio
MédioUm produtor de orquídeas quer saber quais plantas vão florescer. O código inicial divide orchids.csv, avalia uma floresta e lê um número de árvores.
- Para cada taxa em
rates, treine o boosting com essa quantidade de árvores (random_state=0) e imprima a acurácia no conjunto de teste. - Imprima a melhor taxa. Em caso de empate, mantenha a anterior.
Para outro produtor e 20:
Forest: 0.860
Boosting at rate 0.01: 0.600
Boosting at rate 0.1: 0.860
Boosting at rate 1.0: 0.900
Best rate for 20 trees: 1.0Depois, experimente algumas quantidades de árvores: quando o boosting supera a floresta?
Experimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier, GradientBoostingClassifier
# Orquídeas nas prateleiras de um produtor: floresceram este ano (1) ou não (0)
orchids = pd.read_csv("orchids.csv")
X = orchids.drop(columns="bloomed")
y = orchids["bloomed"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
trees = int(input())
rates = [0.01, 0.1, 1.0]
# Não altere as linhas abaixo: a floresta com a qual comparar
forest = RandomForestClassifier(n_estimators=100, random_state=0)
forest.fit(X_train, y_train)
print(f"Forest: {forest.score(X_test, y_test):.3f}")
# Escreva seu código abaixo
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Aprendizado supervisionado
1Seu primeiro modelo
Aprendendo com exemplosConjuntos de treino e testeAjustar e preverAvaliar um modeloRecapitulação: classificador de sementes4Regressão logística
Previsões de sim ou nãoO limiar de decisãoPesos como evidênciasVárias classesRevisão: filtro de spam2Vizinhos Mais Próximos
Como o k-NN DecideEscolhendo kLimites de DecisãoEscalonamento para VizinhosRevisão: Vizinhos do Vinho5Avaliando Classificadores
A Matriz de ConfusãoPrecisão e RevocaçãoA Pontuação F1Classes DesbalanceadasCurvas ROCRecapitulação: Teste de Triagem8Validação Cruzada
Validação K-FoldComparando Modelos de Forma JustaBusca em GradeRevisão: Consertos de Skate11Projeto: Espécies de Pinguins
Conheça os PinguinsPrepare os DadosEscolha um ModeloAjuste o VencedorColoque o Modelo em Produção3Regressão Linear
Prevendo númerosVárias característicasMedindo errosGráficos de resíduosRevisão: aluguel de bicicletas6Árvores de Decisão
Árvores fazem perguntasLendo uma árvoreProfundidade da árvoreImportância das característicasRevisão: decisões de empréstimo9Métodos ensemble
Florestas aleatóriasPor que as florestas funcionamBoosting de gradienteRevisão: Guarda-florestalPratique por conta própria: Compilador de Python online