Inkrementelle Hauptkomponentenanalyse auf dem Iris-Datensatz

Beginner

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

Einführung

In diesem Lab führen wir Sie Schritt für Schritt durch den Prozess der Verwendung des Inkrementellen Hauptkomponentenanalyse (IPCA)-Algorithmus zur Dimensionalitätsreduzierung auf dem Iris-Datensatz. IPCA wird verwendet, wenn der Datensatz zu groß ist, um in den Arbeitsspeicher zu passen, und eine inkrementelle Methode erforderlich ist. Wir werden die Ergebnisse von IPCA mit dem traditionellen PCA-Algorithmus vergleichen.

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.

Bibliotheken importieren

Wir werden die erforderlichen Bibliotheken importieren, einschließlich von numpy, matplotlib sowie den PCA- und IPCA-Modulen von scikit-learn.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
from sklearn.decomposition import PCA, IncrementalPCA

Daten laden

Wir werden den Iris-Datensatz aus dem datasets-Modul von scikit-learn laden.

iris = load_iris()
X = iris.data
y = iris.target

Inkrementelle Hauptkomponentenanalyse (IPCA) durchführen

Wir werden die IPCA auf dem Iris-Datensatz durchführen, indem wir eine Instanz der IPCA-Klasse initialisieren und sie auf die Daten anpassen.

n_components = 2
ipca = IncrementalPCA(n_components=n_components, batch_size=10)
X_ipca = ipca.fit_transform(X)

Hauptkomponentenanalyse (PCA) durchführen

Wir werden die PCA auf dem Iris-Datensatz durchführen, indem wir eine Instanz der PCA-Klasse initialisieren und sie auf die Daten anpassen.

pca = PCA(n_components=n_components)
X_pca = pca.fit_transform(X)

Ergebnisse visualisieren

Wir werden die Ergebnisse der Inkrementellen Hauptkomponentenanalyse (IPCA) und der Hauptkomponentenanalyse (PCA) visualisieren, indem wir die transformierten Daten in einem Streudiagramm darstellen.

colors = ["navy", "turquoise", "darkorange"]

for X_transformed, title in [(X_ipca, "Incremental PCA"), (X_pca, "PCA")]:
    plt.figure(figsize=(8, 8))
    for color, i, target_name in zip(colors, [0, 1, 2], iris.target_names):
        plt.scatter(
            X_transformed[y == i, 0],
            X_transformed[y == i, 1],
            color=color,
            lw=2,
            label=target_name,
        )

    if "Incremental" in title:
        err = np.abs(np.abs(X_pca) - np.abs(X_ipca)).mean()
        plt.title(title + " of iris dataset\nMean absolute unsigned error %.6f" % err)
    else:
        plt.title(title + " of iris dataset")
    plt.legend(loc="best", shadow=False, scatterpoints=1)
    plt.axis([-4, 4, -1.5, 1.5])

plt.show()

Zusammenfassung

In diesem Lab haben wir gelernt, wie man den Algorithmus der Inkrementellen Hauptkomponentenanalyse (IPCA) verwendet, um die Dimensionsreduzierung auf dem Iris-Datensatz durchzuführen. Wir haben die Ergebnisse der IPCA mit der traditionellen PCA verglichen und die transformierten Daten in einem Streudiagramm visualisiert. Die IPCA ist nützlich, wenn der Datensatz zu groß ist, um in den Arbeitsspeicher zu passen, und eine inkrementelle Methode erfordert.