Fortgeschrittene Grafiken mit partieller Abhängigkeit

Machine LearningMachine LearningBeginner
Jetzt üben

This tutorial is from open-source community. Access the source code

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Tutorial wird Ihnen der Prozess der Darstellung von Partial-Dependence-Kurven für mehrere Merkmale erläutert. Die Partial-Dependence-Kurven werden verwendet, um die Auswirkung eines Merkmals auf das vorhergesagte Ergebnis eines maschinellen Lernmodells zu analysieren, während alle anderen Merkmale konstant bleiben. In diesem Tutorial wird gezeigt, wie man Partial-Dependence-Kurven für einen Entscheidungsbaum und ein Multilayer-Perzeptron auf dem Diabetes-Datensatz darstellt.

Tipps für die virtuelle Maschine

Nachdem der Start der virtuellen Maschine abgeschlossen ist, klicken Sie in der oberen linken Ecke, um zur Registerkarte Notebook zu wechseln und Jupyter Notebook für die Übung zu nutzen.

Manchmal müssen Sie einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Die Validierung von Vorgängen kann aufgrund der Einschränkungen in Jupyter Notebook nicht automatisiert werden.

Wenn Sie bei der Lernphase Probleme haben, können Sie Labby gerne fragen. Geben Sie nach der Sitzung Feedback, und wir werden das Problem für Sie prompt beheben.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL ml(("Machine Learning")) -.-> ml/FrameworkandSoftwareGroup(["Framework and Software"]) ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills ml/sklearn -.-> lab-49238{{"Fortgeschrittene Grafiken mit partieller Abhängigkeit"}} end

Modelle auf dem Diabetes-Datensatz trainieren

In diesem Schritt werden wir einen Entscheidungsbaum und ein Multilayer-Perzeptron auf dem Diabetes-Datensatz trainieren.

diabetes = load_diabetes()
X = pd.DataFrame(diabetes.data, columns=diabetes.feature_names)
y = diabetes.target

tree = DecisionTreeRegressor()
mlp = make_pipeline(
    StandardScaler(),
    MLPRegressor(hidden_layer_sizes=(100, 100), tol=1e-2, max_iter=500, random_state=0),
)
tree.fit(X, y)
mlp.fit(X, y)

Darstellung der partiellen Abhängigkeit für zwei Merkmale

In diesem Schritt werden wir die partiellen Abhängigkeitskurven für die Merkmale "age" (Alter) und "bmi" (Körpermasseindex) für den Entscheidungsbaum darstellen. Bei zwei Merkmalen erwartet PartialDependenceDisplay.from_estimator, zwei Kurven zu plotten. Hier platziert die Plot-Funktion ein Gitter von zwei Plots mithilfe des durch ax definierten Raums.

fig, ax = plt.subplots(figsize=(12, 6))
ax.set_title("Decision Tree")
tree_disp = PartialDependenceDisplay.from_estimator(tree, X, ["age", "bmi"], ax=ax)

Die partiellen Abhängigkeitskurven können auch für das Multilayer-Perzeptron geplottet werden. In diesem Fall wird line_kw an PartialDependenceDisplay.from_estimator übergeben, um die Farbe der Kurve zu ändern.

fig, ax = plt.subplots(figsize=(12, 6))
ax.set_title("Multi-layer Perceptron")
mlp_disp = PartialDependenceDisplay.from_estimator(
    mlp, X, ["age", "bmi"], ax=ax, line_kw={"color": "red"}
)

Darstellung der partiellen Abhängigkeit beider Modelle zusammen

In diesem Schritt werden wir die partiellen Abhängigkeitskurven beider Modelle in einem gemeinsamen Plot darstellen.

fig, (ax1, ax2) = plt.subplots(2, 1, figsize=(10, 10))
tree_disp.plot(ax=ax1)
ax1.set_title("Decision Tree")
mlp_disp.plot(ax=ax2, line_kw={"color": "red"})
ax2.set_title("Multi-layer Perceptron")

Eine andere Möglichkeit, die Kurven zu vergleichen, ist, sie übereinander zu plotten. Hier erstellen wir eine Figur mit einer Zeile und zwei Spalten. Die Achsen werden als Liste an die PartialDependenceDisplay.plot-Funktion übergeben, die die partiellen Abhängigkeitskurven jedes Modells auf den gleichen Achsen plotten wird. Die Länge der Achsenliste muss der Anzahl der gezeichneten Plots entsprechen.

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(10, 6))
tree_disp.plot(ax=[ax1, ax2], line_kw={"label": "Decision Tree"})
mlp_disp.plot(
    ax=[ax1, ax2], line_kw={"label": "Multi-layer Perceptron", "color": "red"}
)
ax1.legend()
ax2.legend()

tree_disp.axes_ ist ein numpy-Array, das die Achsen enthält, die zur Darstellung der partiellen Abhängigkeitsplots verwendet werden. Dies kann an mlp_disp übergeben werden, um die gleiche Wirkung zu erzielen, die Plots übereinander zu zeichnen. Darüber hinaus speichert mlp_disp.figure_ die Figur, was es ermöglicht, die Größe der Figur nach dem Aufruf von plot anzupassen. In diesem Fall hat tree_disp.axes_ zwei Dimensionen, daher wird plot nur die y-Beschriftung und die y-Ticks auf dem linken Plot anzeigen.

tree_disp.plot(line_kw={"label": "Decision Tree"})
mlp_disp.plot(
    line_kw={"label": "Multi-layer Perceptron", "color": "red"}, ax=tree_disp.axes_
)
tree_disp.figure_.set_size_inches(10, 6)
tree_disp.axes_[0, 0].legend()
tree_disp.axes_[0, 1].legend()
plt.show()

Darstellung der partiellen Abhängigkeit für ein Merkmal

In diesem Schritt werden wir die partiellen Abhängigkeitskurven für ein einzelnes Merkmal, "age" (Alter), auf den gleichen Achsen darstellen. In diesem Fall wird tree_disp.axes_ an die zweite Plot-Funktion übergeben.

tree_disp = PartialDependenceDisplay.from_estimator(tree, X, ["age"])
mlp_disp = PartialDependenceDisplay.from_estimator(
    mlp, X, ["age"], ax=tree_disp.axes_, line_kw={"color": "red"}
)

Zusammenfassung

In diesem Tutorial wurde gezeigt, wie man partielle Abhängigkeitskurven für mehrere Merkmale mit dem PartialDependenceDisplay-Objekt darstellt. Zunächst haben wir einen Entscheidungsbaum und ein Multilayer-Perzeptron auf dem Diabetes-Datensatz trainiert. Anschließend haben wir partielle Abhängigkeitskurven für den Entscheidungsbaum und das Multilayer-Perzeptron für zwei Merkmale geplottet. Danach haben wir die partiellen Abhängigkeitskurven beider Modelle in einem gemeinsamen Plot dargestellt. Schließlich haben wir die partiellen Abhängigkeitskurven für ein einzelnes Merkmal auf den gleichen Achsen geplottet.