Erklärung der Diskriminanzanalyse-Klassifikatoren

Machine LearningMachine LearningIntermediate
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

Lineare und quadratische Diskriminanzanalyse (Linear and Quadratic Discriminant Analysis, LDA und QDA) sind zwei klassische Klassifikatoren, die im maschinellen Lernen verwendet werden. LDA verwendet eine lineare Entscheidungsfläche, während QDA eine quadratische Entscheidungsfläche nutzt. Diese Klassifikatoren sind beliebt, weil sie geschlossene Lösungen haben, in der Praxis gut funktionieren und keine Hyperparameter zur Optimierung erfordern.

In diesem Lab werden wir untersuchen, wie man LDA und QDA mit scikit-learn, einer beliebten Bibliothek für maschinelles Lernen in Python, durchführt.

Tipps für die virtuelle Maschine (VM)

Nachdem die VM gestartet wurde, klicken Sie in der oberen linken Ecke auf die Registerkarte Notebook, um auf Jupyter Notebook für die Übung zuzugreifen.

Manchmal müssen Sie möglicherweise einige Sekunden warten, bis Jupyter Notebook vollständig geladen ist. Aufgrund von Einschränkungen in Jupyter Notebook kann die Überprüfung von Vorgängen nicht automatisiert werden.

Wenn Sie während des Lernens Probleme haben, können Sie sich gerne an Labby wenden. Geben Sie uns nach der Sitzung Feedback, und wir werden das Problem umgehend für Sie lösen.

Dies ist ein Guided Lab, das schrittweise Anweisungen bietet, um Ihnen beim Lernen und Üben zu helfen. Befolgen Sie die Anweisungen sorgfältig, um jeden Schritt abzuschließen und praktische Erfahrungen zu sammeln. Historische Daten zeigen, dass dies ein Labor der Stufe Fortgeschrittener mit einer Abschlussquote von 80% ist. Es hat eine positive Bewertungsrate von 95% von den Lernenden erhalten.

Importieren der erforderlichen Bibliotheken

Zunächst müssen wir die erforderlichen Bibliotheken importieren, darunter scikit-learn (sklearn) und matplotlib, die für die Datenvisualisierung verwendet werden.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis

Generieren von synthetischen Daten

Als Nächstes werden wir synthetische Daten generieren, um den Unterschied zwischen LDA und QDA zu demonstrieren. Wir verwenden die Funktion make_classification aus scikit-learn, um zwei Klassen mit unterschiedlichen Mustern zu erstellen.

from sklearn.datasets import make_classification

## Generate synthetic data
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, n_classes=2, random_state=1)

Trainieren und Visualisieren der Klassifikatoren

Jetzt werden wir die LDA- und QDA-Klassifikatoren anhand der synthetischen Daten trainieren und die Entscheidungsgrenzen visualisieren.

## Train the LDA classifier
lda = LinearDiscriminantAnalysis()
lda.fit(X, y)

## Train the QDA classifier
qda = QuadraticDiscriminantAnalysis()
qda.fit(X, y)

## Plot the decision boundaries
def plot_decision_boundary(classifier, title):
    h = 0.02  ## step size in the mesh
    x_min, x_max = X[:, 0].min() - 1, X[:, 0].max() + 1
    y_min, y_max = X[:, 1].min() - 1, X[:, 1].max() + 1
    xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))
    Z = classifier.predict(np.c_[xx.ravel(), yy.ravel()])
    Z = Z.reshape(xx.shape)
    plt.contourf(xx, yy, Z, alpha=0.8)
    plt.scatter(X[:, 0], X[:, 1], c=y, edgecolors='k', cmap=plt.cm.Paired)
    plt.xlabel('Feature 1')
    plt.ylabel('Feature 2')
    plt.title(title)

plt.figure(figsize=(10, 4))

plt.subplot(1, 2, 1)
plot_decision_boundary(lda, 'Linear Discriminant Analysis')

plt.subplot(1, 2, 2)
plot_decision_boundary(qda, 'Quadratic Discriminant Analysis')

plt.tight_layout()
plt.show()

Durchführen einer Dimensionsreduktion mit LDA

LDA kann auch für eine überwachte Dimensionsreduktion (supervised dimensionality reduction) verwendet werden. Wir werden dies demonstrieren, indem wir die Dimension des Iris-Datensatzes reduzieren.

from sklearn.datasets import load_iris

## Load the Iris dataset
iris = load_iris()
X, y = iris.data, iris.target

## Perform dimensionality reduction using LDA
lda = LinearDiscriminantAnalysis(n_components=2)
X_lda = lda.fit_transform(X, y)

Zusammenfassung

Lineare und quadratische Diskriminanzanalyse (Linear and Quadratic Discriminant Analysis, LDA und QDA) sind zwei klassische Klassifikatoren, die im maschinellen Lernen (machine learning) verwendet werden. LDA verwendet eine lineare Entscheidungsfläche, während QDA eine quadratische Entscheidungsfläche nutzt. Diese Klassifikatoren haben geschlossene Lösungen und funktionieren in der Praxis gut. LDA kann auch für eine überwachte Dimensionsreduktion (supervised dimensionality reduction) eingesetzt werden.