Drzewa zadają pytania
Część sekcji Uczenie nadzorowane ścieżki Machine Learning w Coddy. Lekcja 27 z 58.
Ten rozdział kończy się drzewem, które wyjaśnia, czy przyznać pożyczkę rolniczą. Drzewo decyzyjne zadaje pytania jak w grze w dwadzieścia pytań: za każdym razem jedno pytanie o cechę, na które można odpowiedzieć tak lub nie, aż do uzyskania odpowiedzi:
Podczas trenowania każde pytanie jest wybierane tak, aby jego odpowiedzi dzieliły klasy możliwie najczyściej:
from sklearn.tree import DecisionTreeClassifier
tree = DecisionTreeClassifier(max_depth=2, random_state=0)
tree.fit(X_train, y_train) # długość i szerokość płatka, cm
print(tree.predict([[4.5, 1.4]]))To wypisuje [1], versicolor. max_depth=2 pozwala na dwa pytania na ścieżkę. Skalowanie nie jest potrzebne: każde pytanie odczytuje jedną cechę.
Wyzwanie
ŚredniWypożyczalnia sprzętu fotograficznego wysyła przypomnienie, gdy sprzęt może wrócić z opóźnieniem. Kod początkowy dzieli dane o wcześniejszych wypożyczeniach i wczytuje nowe wypożyczenie do tabeli z jednym wierszem new_rental.
- Wytrenuj drzewo decyzyjne z maksymalnie 2 pytaniami na ścieżkę (
random_state=0). - Wypisz jego dokładność testową (3 miejsca po przecinku) oraz odpowiedź dla nowego wypożyczenia:
likely latedla 1,likely on timedla 0.
Dla innej wypożyczalni:
Test accuracy: 0.792
This rental: likely on timeSpróbuj swoich sił
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
# Poprzednie wypożyczenia: 1 w late oznacza, że sprzęt zwrócono po terminie
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)
# Nowe wypożyczenie: liczba zarezerwowanych tygodni, wartość sprzętu, wiek klienta i liczba jego dotychczasowych zwrotów po terminie
weeks = int(input())
value = int(input())
age = int(input())
late_before = int(input())
new_rental = pd.DataFrame([[weeks, value, age, late_before]], columns=features)
# Napisz swój kod poniżej
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