Drzewo decyzyjne
Lekcja 17 z 19 w kursie Wprowadzenie do uczenia maszynowego w Coddy.
Drzewo decyzyjne to nieliniowy model używany zarówno do klasyfikacji, jak i do zadań regresji. Odwzorowuje ludzkie podejmowanie decyzji dokładniej niż inne algorytmy, dzięki czemu jest intuicyjne i skuteczne w obsłudze złożonych zbiorów danych. W swojej istocie drzewo decyzyjne dzieli dane na podzbiory za pomocą serii prostych reguł, co przypomina zadawanie serii pytań typu „tak/nie” dotyczących cech punktów danych.

Źródło: wikipedia
Wyobraź sobie drzewo decyzyjne jako graf przypominający drzewo, w którym:
- Każdy węzeł wewnętrzny reprezentuje „test” atrybutu (np. tego, czy rzut monetą wypadł orłem czy reszką),
- Każda gałąź reprezentuje wynik testu, a
- Każdy węzeł liściowy reprezentuje etykietę klasy (decyzję podjętą po obliczeniu wszystkich atrybutów).
Typy drzew decyzyjnych:
- Drzewa klasyfikacyjne: używane, gdy przewidywanym wynikiem jest klasa, do której należą dane.
- Drzewa regresyjne: używane, gdy przewidywany wynik można uznać za liczbę rzeczywistą (np. cenę domu).
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŚredniUtwórz funkcję o nazwie decide_outcome, która przyjmuje listę reguł w następującym formacie:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}Przyjmuje też informację, do której reguły przejść, jeśli warunek zostanie spełniony lub nie:
outcome = {
"rule1": {True: "rule2", False: "rule3"},
"rule2": {True: "rule3", False: "rule4"},
"rule3": {True: None, False: None}
"rule4": {True: None, False: None}
}data_point = {
"rule1": 8,
"rule2": 10,
}Wynikiem powinno być rule4
8 is bigger than 5 (True)→ przejdź dorule2na podstawie tej reguły:"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ przejdź dorule4na podstawie tej reguły:"rule2": {True: "rule3", False: "rule4"},- Nie ma innych możliwości kontynuowania, więc wynikiem jest
rule4
Zawsze zaczynaj od <strong>rule1</strong>
Spróbuj swoich sił
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# Napisz tutaj swój kodWszystkie lekcje w sekcji Wprowadzenie do uczenia maszynowego
6Inne modele
Regresja logistycznaRegresja liniowaDrzewo decyzyjneMaszyna wektorów nośnych (SVM)Quiz o modelachPoćwicz samodzielnie: Kompilator Python online