Entscheidungsbaum
Lektion 17 von 19 im Kurs Einführung in maschinelles Lernen von Coddy.
Ein Entscheidungsbaum (Decision Tree) ist ein nicht-lineares Modell, das sowohl für Klassifizierungs- als auch für Regressionsaufgaben verwendet wird. Er spiegelt die menschliche Entscheidungsfindung enger wider als andere Algorithmen, was ihn sowohl intuitiv als auch leistungsstark für den Umgang mit komplexen Datensätzen macht. Im Kern unterteilt ein Entscheidungsbaum die Daten mithilfe einer Reihe einfacher Regeln in Teilmengen, was dem Stellen einer Reihe von Ja/Nein-Fragen zu den Merkmalen der Datenpunkte ähnelt.

Quelle: Wikipedia
Stellen Sie sich einen Entscheidungsbaum als einen baumartigen Graphen vor, bei dem:
- Jeder interne Knoten einen „Test“ eines Attributs darstellt (z. B. ob ein Münzwurf Kopf oder Zahl ergibt),
- Jeder Zweig das Ergebnis des Tests darstellt und
- Jeder Blattknoten eine Klassenbezeichnung darstellt (Entscheidung, die nach der Berechnung aller Attribute getroffen wurde).
Arten von Entscheidungsbäumen:
- Klassifizierungsbäume: Werden verwendet, wenn das vorhergesagte Ergebnis die Klasse ist, zu der die Daten gehören.
- Regressionsbäume: Werden verwendet, wenn das vorhergesagte Ergebnis als reelle Zahl betrachtet werden kann (z. B. der Preis eines Hauses).
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Aufgabe
MittelErstellen Sie eine Funktion namens decide_outcome, die eine Liste von Regeln im folgenden Format erhält:
rules = {
rule1: {"type": "bigger", "value": 5},
rule2: {"type": "smaller", "value": 7},
}Und sie erhält Informationen darüber, zu welcher Regel fortgefahren werden soll, wenn das Ergebnis erfüllt ist oder nicht:
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,
}Die Ausgabe sollte rule4 sein
8 is bigger than 5 (True)→ gehe zurule2aus diesem"rule1": {True: "rule2", False: "rule3"},10 is smaller than 7 (False)→ gehe zurule4aus diesem"rule2": {True: "rule3", False: "rule4"},- Es gibt keine weiteren Möglichkeiten fortzufahren, daher ist die Ausgabe
rule4
Beginnen Sie immer bei <strong>rule1</strong>
Probier es selbst
def decide_outcome(rules, outcome, point):
current_rule = "rule1"
# Schreibe hier deinen CodeAlle Lektionen in Einführung in maschinelles Lernen
6Weitere Modelle
Logistische RegressionLineare RegressionEntscheidungsbaumSupport Vector Machine (SVM)Quiz zu ModellenÜbe selbstständig: Online-Python-Compiler