Technologieaustausch

Einführung in den Entscheidungsbaumalgorithmus, Prinzipien und Fallimplementierung

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Der Entscheidungsbaumalgorithmus ist ein sehr beliebter Algorithmus für maschinelles Lernen, der für Klassifizierungs- und Regressionsaufgaben verwendet werden kann. Im Folgenden finden Sie eine detaillierte Einführung in den Entscheidungsbaumalgorithmus, einschließlich Prinzipien und Fallimplementierungen sowie des entsprechenden Python-Codes.

Einführung in den Entscheidungsbaumalgorithmus

Basiskonzept

Ein Entscheidungsbaum ist eine Baumstruktur, die zur Klassifizierung oder Regression von Daten verwendet wird. Es besteht aus Knoten und Kanten, wobei jeder interne Knoten einen Test eines Merkmals darstellt, jeder Zweig das Ergebnis des Tests darstellt und jeder Blattknoten eine Kategorie oder einen Regressionswert darstellt.

Build-Prozess

Der Entscheidungsbaumkonstruktionsprozess umfasst normalerweise die folgenden Schritte:

  1. Wählen Sie die besten Funktionen: Wählen Sie die besten Funktionen aus, um den Datensatz nach einem bestimmten Kriterium (z. B. Informationsgewinn, Gini-Index usw.) aufzuteilen.
  2. Knoten erstellen: Teilen Sie den Datensatz mit den besten Funktionen auf und erstellen Sie neue Knoten für jeden Zweig.
  3. Teilbäume rekursiv erstellen: Der Prozess der Auswahl der besten Features und der Aufteilung des Datensatzes wird für jeden untergeordneten Knoten wiederholt, bis eine Stoppbedingung erfüllt ist (z. B. wenn die Knotenreinheit ein bestimmtes Niveau erreicht oder die Tiefe des Baums einen voreingestellten Wert erreicht).
  4. Erstellen Sie Blattknoten: Blattknoten werden erstellt, wenn eine Aufteilung nicht mehr erforderlich ist, normalerweise die Bezeichnung der Mehrheitsklasse für Klassifizierungsbäume oder der Mittelwert aller Datenpunkte in der Teilmenge für Regressionsbäume.
Split-Kriterium
  • Informationsgewinn: Misst die Verringerung der Unsicherheit bei der Klassifizierung eines Datensatzes nach einem Merkmal.
  • Gini-Index: Misst die Reinheit des Datensatzes. Je kleiner der Gini-Index, desto höher ist die Reinheit des Datensatzes.
  • Minimaler mittlerer quadratischer Fehler (MSE): Split-Kriterium für Regressionsbäume.

Fallumsetzung

Das Folgende ist ein Entscheidungsbaumklassifizierungsfall, der mit Python und der Scikit-Learn-Bibliothek implementiert wurde. Wir werden den berühmten Iris-Datensatz verwenden, der Merkmale und Kategorien von drei Irisblüten (Setosa, Versicolour, Virginica) enthält.

1. Datenaufbereitung
  1. from sklearn.datasets import load_iris
  2. from sklearn.model_selection import train_test_split
  3. # 加载数据集
  4. iris = load_iris()
  5. X, y = iris.data, iris.target
  6. # 拆分数据集为训练集和测试集
  7. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
Trainieren Sie ein Entscheidungsbaummodell
  1. from sklearn.tree import DecisionTreeClassifier
  2. # 初始化决策树分类器
  3. clf = DecisionTreeClassifier()
  4. # 训练模型
  5. clf.fit(X_train, y_train)
Bewertungsmodell
  1. from sklearn.metrics import accuracy_score
  2. # 预测测试集
  3. y_pred = clf.predict(X_test)
  4. # 计算准确率
  5. accuracy = accuracy_score(y_test, y_pred)
  6. print(f"Accuracy: {accuracy:.2f}")
Visueller Entscheidungsbaum
  1. import matplotlib.pyplot as plt
  2. from sklearn.tree import plot_tree
  3. # 可视化决策树
  4. plt.figure(figsize=(12, 12))
  5. plot_tree(clf, filled=True, feature_names=iris.feature_names, class_names=iris.target_names)
  6. plt.show()

Zusammenfassen:

Der obige Code zeigt, wie Sie mit der scikit-learn-Bibliothek den Iris-Datensatz laden, einen Entscheidungsbaumklassifikator trainieren, die Modellleistung bewerten und den Entscheidungsbaum visualisieren. Anhand dieses Falles können Sie sehen, wie ein Entscheidungsbaum funktioniert und wie er in praktischen Anwendungen eingesetzt werden kann.

Ich hoffe, es gefällt euch allen. Wenn es euch gefällt, gebt ihm bitte ein „Gefällt mir“ und speichert es.