Czytanie drzewa
Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 28 z 58.
Pytania drzewa są czytelne, więc możesz sprawdzić, czego się nauczyło. Prześledź drogę kwiatu o długości 5.1 cm i szerokości 1.6 cm w dół drzewa irysów:
export_text wypisuje te same pytania jako tekst, z jednym wcięciem na poziom:
from sklearn.tree import export_text
print(export_text(tree, feature_names=["petal_length", "petal_width"]))To wyświetla:
|--- petal_width <= 0.80
| |--- class: 0
|--- petal_width > 0.80
| |--- petal_length <= 4.95
| | |--- class: 1
| |--- petal_length > 4.95
| | |--- class: 2Każdy wiersz odpowiada tylko na pytania ze swojej ścieżki. Klasa 2 to virginica, co jest rozsądną odpowiedzią w przypadku długich, szerokich płatków.
Wyzwanie
ŚredniDrzewo sklepu z serami określa rodzaj sera — świeży, miękki lub twardy — na podstawie zawartości wody i liczby tygodni dojrzewania. Kod początkowy trenuje je i wczytuje dane nowego sera.
- Wyświetl pytania drzewa wraz z nazwami cech.
- Uruchom je, odczytaj pytania i uzupełnij
by_hand, aby zadawała te same pytania za pomocą if/else i zwracała tę samą odpowiedź.
Po wyświetleniu drzewa, dla sera, który drzewo określa jako miękki:
By hand: soft
The tree: softSpróbuj swoich sił
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier, export_text
# Jeden wiersz na każdy ser: zawartość wody (%), liczba tygodni dojrzewania i rodzaj sera
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)
# Nowy ser, którego rodzaj trzeba określić
moisture = int(input())
aged = int(input())
new_cheese = pd.DataFrame([[moisture, aged]], columns=features)
# Napisz poniżej swój kod: wypisz drzewo, a następnie w by_hand zwróć taką samą odpowiedź jak ono
def by_hand(moisture, aged):
return "fresh"
# Nie zmieniaj poniższych wierszy
print("By hand:", by_hand(moisture, aged))
print("The tree:", tree.predict(new_cheese)[0])
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Uczenie nadzorowane
1Twój pierwszy model
Uczenie się na przykładachZbiory treningowe i testoweDopasowywanie i przewidywanieOcena modeluPodsumowanie: Sortownik nasion4Regresja logistyczna
Przewidywanie „tak” lub „nie”Próg decyzyjnyWagi jako dowodyWiele klasPodsumowanie: filtr spamu2Najbliżsi sąsiedzi
Jak działa k-NNWybór kGranice decyzyjneSkalowanie dla sąsiadówPodsumowanie: sąsiedzi w zbiorze Wine5Ocena klasyfikatorów
Macierz pomyłekPrecyzja i czułośćWynik F1Niezrównoważone klasyKrzywe ROCPodsumowanie: test przesiewowy8Walidacja krzyżowa
Walidacja k-krotnaUczciwe porównywanie modeliPrzeszukiwanie siatkiPodsumowanie: naprawa deskorolki11Projekt: Gatunki pingwinów
Poznaj pingwinyPrzygotuj daneWybierz modelDopracuj zwycięski modelWdróż model3Regresja liniowa
Przewidywanie wartości liczbowychWiele cechPomiar błędówWykresy resztPodsumowanie: wypożyczanie rowerów6Drzewa decyzyjne
Drzewa zadają pytaniaCzytanie drzewaGłębokość drzewaWażność cechPodsumowanie: decyzje kredytowePoćwicz samodzielnie: Kompilator Python online