Lendo uma árvore
Parte da seção Aprendizado supervisionado do Journey de Machine Learning da Coddy. Lição 28 de 58.
As perguntas de uma árvore são legíveis, então você pode verificar o que ela aprendeu. Siga uma flor com 5.1 cm de comprimento e 1.6 cm de largura pela árvore de íris:
export_text imprime as mesmas perguntas como texto, com um recuo por nível:
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))Isso imprime:
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2Cada linha responde apenas às perguntas em seu próprio caminho. A classe 2 é virginica, uma resposta sensata para pétalas longas e largas.
Desafio
MédioA árvore de uma queijaria classifica um queijo como fresh, soft ou hard com base no teor de água e nas semanas de maturação. O programa inicial a treina e lê um novo queijo.
- Imprima as perguntas da árvore com os nomes das features.
- Execute-a, leia as perguntas e complete
by_handpara que faça as mesmas perguntas com if/else e retorne a mesma resposta.
Após a impressão, para um queijo que a árvore classifica como soft:
By hand: soft
The tree: softExperimente você mesmo
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# Uma linha por queijo: teor de água (%), semanas de maturação e tipo
cheeses = pd.read_csv("cheeses.csv")
features = ["moisture_pct", "aged_weeks"]
X_train, X_test, y_train, y_test = train_test_split(cheeses[features], cheeses["cheese"], test_size=0.25, random_state=0)
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train)
# Um novo queijo para identificar
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# Escreva seu código abaixo: imprima a árvore e, em seguida, faça by_hand responder da mesma forma que ela
def by_hand(moisture, aged):
return "fresh"
# Não altere as linhas abaixo
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
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