Árvores fazem perguntas
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 27 de 58.
Este capítulo termina com uma árvore que explica um empréstimo agrícola. Uma árvore de decisão brinca de vinte perguntas: uma pergunta de sim ou não sobre uma característica de cada vez, até chegar a uma resposta:
O treinamento escolhe cada pergunta de modo que suas respostas separem as classes da forma mais clara possível:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # comprimento e largura da pétala, cm
print(tree.predict([[4.5, 1.4]]))Isso imprime [1], versicolor. max_depth=2 permite duas perguntas por caminho. Não é necessário fazer o escalonamento: cada pergunta lê uma característica.
Desafio
MédioUma loja de aluguel de câmeras envia uma mensagem de lembrete quando há a possibilidade de o equipamento ser devolvido com atraso. O código inicial divide os aluguéis anteriores e lê um novo aluguel na tabela de uma linha new_rental.
- Treine uma árvore de decisão com no máximo 2 perguntas por caminho (
random_state=0). - Imprima a precisão nos dados de teste (3 casas decimais) e a resposta para o novo aluguel:
likely latepara 1,likely on timepara 0.
Para outra loja:
Test accuracy: 0.792
This rental: likely on timeExperimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Locações anteriores: 1 em late significa que o equipamento foi devolvido com atraso
rentals = pd.read_csv("rentals.csv")
features = ["rental_weeks", "gear_value_usd", "customer_age", "late_before"]
X_train, X_test, y_train, y_test = train_test_split(rentals[features], rentals["late"], test_size=0.25, random_state=0)
# Uma nova locação: semanas reservadas, valor do equipamento, idade do cliente e devoluções com atraso até agora
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# 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éstimoPratique por conta própria: Compilador de Python online