Menu
Coddy logo textTech

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).


 

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Średni

Utwó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ź do rule2 na podstawie tej reguły: "rule1": {True: "rule2", False: "rule3"},
  • 10 is smaller than 7 (False) → przejdź do rule4 na 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 kod

Wszystkie lekcje w sekcji Wprowadzenie do uczenia maszynowego

Poćwicz samodzielnie: Kompilator Python online