PCA (IRIS)

PCA (IRIS)

Als zweites Beispiel wollen wir wieder den IRIS Datensatz studieren. Dieser Datensatz gilt auch für die PCA Methode als klassisches Beispiel.

IRIS Datasatz

import matplotlib.pyplot as plt
plt.style.use('ggplot')

from sklearn import datasets
from sklearn.decomposition import PCA

Der IRIS Datensatz ist im Python Modul scikit-learn enthalten. Wir erhalten die Eigenschaftsdaten in X und die Labels in y. Mit target_names können wir den Labels Namen zuordnen.

iris = datasets.load_iris()
X = iris.data
y = iris.target
iris.target_names
array(['setosa', 'versicolor', 'virginica'], dtype='<U10')

Das Analysieren der Daten steht immer am Anfang. Mit shape erhalten wir die Dimensionen der Daten. Die Anzahl der Reihen beschreiben wieder die Anzahl der Datenbeispiele und die Spalten die Merkmale der Daten.

print(X.shape)
print(X[:5,:])
(150, 4)
[[5.1 3.5 1.4 0.2]
 [4.9 3.  1.4 0.2]
 [4.7 3.2 1.3 0.2]
 [4.6 3.1 1.5 0.2]
 [5.  3.6 1.4 0.2]]

Da wir zweidimensionale Daten immer sehr gut darstellen können, wählen wir zwei Komponenten für die Datenreduktion aus und transformieren wir die Daten auf diese.

pca = PCA(n_components=2, whiten=True)
pca.fit(X)
X_pca = pca.transform(X)
X_pca.shape
(150, 2)

Nun werden die Daten in den neuen Komponenten dargestellt.

for i, label in enumerate(iris.target_names):
    plt.scatter(X_pca[y == i, 0], X_pca[y == i, 1], label=label)

plt.xlabel('first component')
plt.ylabel('second component')
plt.legend()
<matplotlib.legend.Legend at 0x7fb3ada8d220>
../_images/pca_iris_11_1.png

Hier können wir die Klassifikation visuell durchführen.

Fazit

PCA ist eine sehr bekannte Methode aus dem maschinellen Lernen und sollte im jeden Fall ausführlich studiert werden. Im Kern nutzt PCA einen Singulärwertzerlegung (SVD). Viele andere Methoden der Modellreduktion basieren ebenfalls auf der Singulärwertzerlegung (SVD). Als Beispiele sollen hier ERA und DMD erwähnt werden.