Przejdź do głównej zawartości

decision_trees

czym są drzewa decyzyjne? ⭐

  • Drzewa decyzyjne to model uczenia maszynowego, który tworzy strukturę podobną do drzewa z węzłami decyzyjnymi i liśćmi.
  • Każdy węzeł wewnętrzny reprezentuje test na jednej z cech (np. "czy wiek > 30?").
  • Każda gałąź reprezentuje wynik testu (np. "tak" lub "nie").
  • Każdy liść reprezentuje przewidywaną klasę lub wartość.
  • Działa poprzez rekurencyjne dzielenie danych na podstawie najlepszych cech.

jak działają drzewa decyzyjne? ⭐

  1. Wybór najlepszej cechy: Algorytm znajduje cechę, która najlepiej dzieli dane (np. Information Gain, Gini Index).
  2. Podział danych: Dane są dzielone na podstawie wartości tej cechy.
  3. Rekurencja: Proces powtarza się dla każdego podzbioru danych.
  4. Kryterium stopu: Zatrzymuje się, gdy wszystkie próbki należą do tej samej klasy lub osiągnięto maksymalną głębokość.

przykładowy kod (scikit-learn)

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_classification
from sklearn.metrics import accuracy_score
import matplotlib.pyplot as plt
from sklearn.tree import plot_tree

# Generowanie danych
X, y = make_classification(n_samples=100, n_features=2, n_classes=2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Tworzenie i trenowanie modelu
model = DecisionTreeClassifier(max_depth=3, random_state=42)
model.fit(X_train, y_train)

# Przewidywanie
y_pred = model.predict(X_test)
print(f"Dokładność: {accuracy_score(y_test, y_pred):.3f}")

# Wizualizacja drzewa
plt.figure(figsize=(10, 8))
plot_tree(model, filled=True, rounded=True, feature_names=['Feature 1', 'Feature 2'])
plt.show()

praktyczne ćwiczenia

  • Zastosuj drzewo decyzyjne do klasyfikacji danych iris.
  • Eksperymentuj z różnymi parametrami: max_depth, min_samples_split, min_samples_leaf.
  • Porównaj wyniki z różnymi kryteriami podziału (gini, entropy).
  • Wizualizuj drzewo i interpretuj jego strukturę.
  • Zaimplementuj prosty algorytm drzewa decyzyjnego od podstaw.

dobre praktyki

  • Kontrola głębokości: Używaj max_depth aby uniknąć overfitting.
  • Minimalna liczba próbek: Ustaw min_samples_split i min_samples_leaf.
  • Feature importance: Analizuj znaczenie cech po trenowaniu.
  • Walidacja: Używaj cross-validation do oceny modelu.

wady i zalety

Zalety:

  • Łatwy do zrozumienia i interpretacji
  • Może obsługiwać dane kategoryczne i numeryczne
  • Nie wymaga skalowania danych
  • Może wykrywać nieliniowe zależności

Wady:

  • Podatne na overfitting
  • Mało stabilne (małe zmiany w danych mogą znacząco zmienić drzewo)
  • Może być złożone dla dużych zbiorów danych
  • Nie radzi sobie dobrze z zależnościami między cechami

polecane źródła