Dimensionalitätsreduzierung mit PLS-Algorithmen

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

Das cross_decomposition-Modul in scikit-learn enthält überwachte Schätzer zur Dimensionsreduzierung und Regression, insbesondere für Partial Least Squares (PLS)-Algorithmen. Diese Algorithmen finden die grundlegende Beziehung zwischen zwei Matrizen, indem sie diese in einen Unterraum niedriger Dimension projizieren, sodass die Kovarianz zwischen den transformierten Matrizen maximal ist.

In diesem Lab werden wir die verschiedenen Cross-Decomposition-Algorithmen von scikit-learn erkunden und lernen, wie wir sie für Dimensionsreduzierung und Regressionsaufgaben verwenden.

Tipps für die VM

Nachdem der VM-Start 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 von 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"]) sklearn(("Sklearn")) -.-> sklearn/ModelSelectionandEvaluationGroup(["Model Selection and Evaluation"]) sklearn/ModelSelectionandEvaluationGroup -.-> sklearn/cross_decomposition("Cross decomposition") ml/FrameworkandSoftwareGroup -.-> ml/sklearn("scikit-learn") subgraph Lab Skills sklearn/cross_decomposition -.-> lab-71105{{"Dimensionalitätsreduzierung mit PLS-Algorithmen"}} ml/sklearn -.-> lab-71105{{"Dimensionalitätsreduzierung mit PLS-Algorithmen"}} end

Importieren der erforderlichen Bibliotheken

Lassen Sie uns beginnen, indem wir die erforderlichen Bibliotheken für dieses Lab importieren.

import numpy as np
from sklearn.cross_decomposition import PLSRegression, PLSCanonical, CCA, PLSSVD

Laden des Datensatzes

Als nächstes laden wir einen Beispiel-Datensatz, um die Cross-Decomposition-Algorithmen zu demonstrieren. Aus Gründen der Einfachheit erstellen wir zwei Matrizen X und Y mit zufälligen Werten.

np.random.seed(0)
X = np.random.random((100, 5))
Y = np.random.random((100, 3))

PLSRegression

Anpassen des PLSRegression-Modells

Wir beginnen mit dem PLSRegression-Algorithmus, der eine Form der regularisierten linearen Regression ist. Wir werden das Modell an unsere Daten anpassen.

pls = PLSRegression(n_components=2)
pls.fit(X, Y)
Transformation der Daten

Wir können die ursprünglichen Daten mit dem angepassten Modell transformieren. Die transformierten Daten werden eine reduzierte Dimension haben.

X_transformed = pls.transform(X)
Y_transformed = pls.transform(Y)

PLSCanonical

Anpassen des PLSCanonical-Modells

Als nächstes verwenden wir den PLSCanonical-Algorithmus, der die kanonische Korrelation zwischen zwei Matrizen findet. Dieser Algorithmus ist nützlich, wenn es Multikollinearität zwischen den Merkmalen gibt.

plsc = PLSCanonical(n_components=2)
plsc.fit(X, Y)
Transformation der Daten

Wir können die ursprünglichen Daten mit dem angepassten Modell transformieren. Die transformierten Daten werden eine reduzierte Dimension haben.

X_transformed = plsc.transform(X)
Y_transformed = plsc.transform(Y)

CCA

Anpassen des CCA-Modells

Der CCA-Algorithmus ist ein spezieller Fall von PLS und steht für Canonical Correlation Analysis. Er findet die Korrelation zwischen zwei Mengen von Variablen.

cca = CCA(n_components=2)
cca.fit(X, Y)
Transformation der Daten

Wir können die ursprünglichen Daten mit dem angepassten Modell transformieren. Die transformierten Daten werden eine reduzierte Dimension haben.

X_transformed = cca.transform(X)
Y_transformed = cca.transform(Y)

PLSSVD

Anpassen des PLSSVD-Modells

Der PLSSVD-Algorithmus ist eine vereinfachte Version von PLSCanonical, der die Singulärwertzerlegung (SVD) der Kreuzkovarianzmatrix nur einmal berechnet. Dieser Algorithmus ist nützlich, wenn die Anzahl der Komponenten auf eins begrenzt ist.

plssvd = PLSSVD(n_components=1)
plssvd.fit(X, Y)
Transformation der Daten

Wir können die ursprünglichen Daten mit dem angepassten Modell transformieren. Die transformierten Daten werden eine reduzierte Dimension haben.

X_transformed = plssvd.transform(X)
Y_transformed = plssvd.transform(Y)

Zusammenfassung

In diesem Lab haben wir die von scikit-learn bereitgestellten Kreuzzerlegungsmethoden untersucht. Wir haben uns mit PLSRegression, PLSCanonical, CCA und PLSSVD vertraut gemacht. Wir haben auch gesehen, wie man diese Modelle an die Daten anpasst und die Daten in eine Darstellung mit geringerer Dimension transformiert. Diese Algorithmen sind nützlich für die Dimensionsreduzierung und Regressionsaufgaben, insbesondere wenn es Multikollinearität zwischen den Merkmalen gibt oder wenn die Anzahl der Variablen größer ist als die Anzahl der Stichproben.