Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)

Einführung

Der klassische Coursera-Kurs für maschinelles Lernen (Stanford, Dr. Andrew Ng) als erster Schritt beim Erlernen von maschinellem Lernen. Eine Reihe, die Matlab / Octave-Programmieraufgaben in Python für diesen Kurs implementiert. Dieses Mal werden wir in der zweiten Hälfte des unbeaufsichtigten Ex-7-Lernens eine Hauptkomponentenanalyse (PCA) durchführen.

Bibliothek importieren

Importieren Sie verschiedene Bibliotheken.

import numpy as np
import scipy.io as scio
import matplotlib.pyplot as plt
from sklearn import decomposition

Daten lesen / anzeigen

Laden Sie die .mat-Formatdaten von Matlab mit scipy.io.loadmat (). Die Daten sind 5000 Teile von Graustufenbildern mit 256 Abstufungen und 32 x 32 Pixel. Es kommt in einer zweidimensionalen Matrix von 5000 x 1024. Lassen Sie uns dies so anzeigen, wie es ist (nur die ersten 100 Bilder).

data = scio.loadmat('ex7faces.mat')
X = data['X'] #X ist eine zweidimensionale Matrix von 5000 x 1024

fig = plt.figure()
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
for i in range(0,100):
    ax = fig.add_subplot(10,10,i+1)
    ax.axis('off')
    ax.imshow(X[i].reshape(32,32).T, cmap = plt.get_cmap('gray'))
plt.show()

Klicken Sie hier für die Ausgabe. ex7-3.png

Implementierung der Hauptkomponentenanalyse

Durch Anwenden der Hauptkomponentenanalyse auf die ursprünglichen Bilddaten, die durch 32 x 32 Pixel = 1024 Dimensionen dargestellt werden, werden die Daten auf 100 Dimensionen reduziert. Die Hauptkomponentenanalyse ist eine Aufnahme in der Klasse "sklearn.decomposition.PCA ()". Mit dem Parameter n_components = können Sie angeben, wie viele Hauptkomponenten verwendet werden sollen.

pca = decomposition.PCA(n_components=100)
pca.fit(X)

Visualisierung der Hauptkomponenten

Die Ergebnisse der Hauptkomponentenanalyse werden in "pca.components_" gespeichert. Es ist eine zweidimensionale Matrix von 100 x 1024. Dieser Hauptkomponentenvektor kann so angezeigt werden, wie er ist. Lassen Sie uns nur die ersten 36 Hauptkomponenten anzeigen.

fig = plt.figure()
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
for i in range(0,36):
    ax = fig.add_subplot(6,6,i+1)
    ax.axis('off')
    ax.imshow(pca.components_[i].reshape(32,32).T, cmap = plt.get_cmap('gray'))
plt.show()

Klicken Sie hier für die Ergebnisse. ex7-4.png

Dimensionsreduktion und Rekonstruktion

Bei der Hauptkomponentenanalyse wird die ursprünglich durch den 1024-dimensionalen Vektor ausgedrückte Bildinformation auf 100 Dimensionen reduziert. Der dimensionsreduzierte Datensatz kann mit "pca.transform (X)" (zweidimensionaler Vektor 5000x100) erhalten werden. Multiplizieren Sie dies mit dem Hauptkomponentenvektor, um einen zweidimensionalen Vektor von 5000 x 1024 wiederherzustellen. Die wiederhergestellten Daten sind die Originaldaten, die mit 100 Hauptkomponenten komprimiert und wiederhergestellt wurden, damit sie angezeigt werden können. Lassen Sie uns die ersten 100 Bilder des rekonstruierten Ergebnisses anzeigen.

Xreduce = pca.transform(X) #Dimensionsreduzierung. Das Ergebnis ist eine 5000x100-Matrix
Xrecon = np.dot(Xreduce, pca.components_) #Wiederaufbau. Das Ergebnis ist eine 5000x1024-Matrix

fig = plt.figure()
plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=None)
for i in range(0,100):
    ax = fig.add_subplot(10,10,i+1)
    ax.axis('off')
    ax.imshow(Xrecon[i].reshape(32,32).T, cmap = plt.get_cmap('gray'))
plt.show()

Klicken Sie hier für die Ergebnisse. Im Vergleich zum obigen Originalbild können Sie sehen, dass die groben Merkmale wiederhergestellt wurden, obwohl die Details verloren gegangen sind.

ex7-5.png

abschließend

Auch diesmal ist der Code einfach.

Recommended Posts

Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex2 (Logistic Return)
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex5 (Anpassung der Regularisierungsparameter)
Coursera Machine Learning Challenge in Python: ex6 (Anpassen von SVM-Parametern)
Coursera Machine Learning Challenge in Python: ex7-1 (Bildkomprimierung mit K-bedeutet Clustering)
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex3 (Handschriftliche Zahlenerkennung mit logistischer Rekursion)
<Kurs> Maschinelles Lernen Kapitel 4: Hauptkomponentenanalyse
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
2. Multivariate Analyse in Python 3-2. Hauptkomponentenanalyse (Algorithmus)
Hauptkomponentenanalyse (PCA) und unabhängige Komponentenanalyse (ICA) mit Python
2. Multivariate Analyse in Python 3-1. Hauptkomponentenanalyse (Scikit-Learn)
Python: Vorverarbeitung beim maschinellen Lernen: Übersicht
Visualisieren Sie die Korrelationsmatrix durch Hauptkomponentenanalyse mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Python] Techniken, die häufig beim maschinellen Lernen verwendet werden
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
[Python] Speichern von Lernergebnissen (Modellen) beim maschinellen Lernen
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
Dies und das der Hauptkomponentenanalyse
[Python] Datenanalyse, maschinelles Lernen (Kaggle) -Datenvorverarbeitung-
PRML Kapitel 12 Bayesianische Hauptanalyse Python-Implementierung
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Assoziationsanalyse in Python
Hauptkomponentenanalyse (Hauptkomponentenanalyse: PCA)
Regressionsanalyse mit Python
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Tool MALSS (Anwendung), das maschinelles Lernen in Python unterstützt
Tool MALSS (Basic), das maschinelles Lernen in Python unterstützt
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Versuchen Sie, das Modell des maschinellen Lernens in das Python-Paket aufzunehmen
Cross-Entropie zur Überprüfung in Coursera Machine Learning Woche 2 Aufgaben
Hauptkomponentenanalyse mit Python von nim mit nimpy
MALSS (Einführung), ein Tool, das maschinelles Lernen in Python unterstützt
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
Maschinelles Lernen mit Python! Vorbereitung
Axialsymmetrische Spannungsanalyse mit Python
Lernnotizen zur Python-Datenanalyse
Wird in EDA für maschinelles Lernen verwendet
Einfache Regressionsanalyse mit Python
Beginnend mit maschinellem Python-Lernen
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Führen Sie eine morphologische Analyse in der von GCE gestarteten maschinellen Lernumgebung durch
Gehirnwellenanalyse mit Python: Python MNE-Tutorial
Implementieren Sie das Stacking-Lernen in Python [Kaggle]
Erste einfache Regressionsanalyse in Python
Maschinelles Lernen mit Python (1) Gesamtklassifizierung
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Automatisieren Sie Routineaufgaben beim maschinellen Lernen
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Gesichtserkennung mit Hauptkomponentenanalyse
Hauptkomponentenanalyse mit Spark ML
Klassifikation und Regression beim maschinellen Lernen
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Maschinelles Lernen in Delemas (Datenerfassung)
Implementierte Perceptron-Lernregeln in Python
Vorverarbeitung beim maschinellen Lernen 2 Datenerfassung