[PYTHON] Lernen ohne Lehrer 3 Hauptkomponentenanalyse

Aidemy 2020/10/29

Einführung

Hallo, es ist ja! Ich bin eine knusprige Literaturschule, aber ich war an den Möglichkeiten der KI interessiert, also ging ich zur KI-Fachschule "Aidemy", um zu studieren. Ich möchte das hier gewonnene Wissen mit Ihnen teilen und habe es in Qiita zusammengefasst. Ich freue mich sehr, dass viele Menschen den vorherigen zusammenfassenden Artikel gelesen haben. Vielen Dank! Dies ist der dritte Beitrag zum unbeaufsichtigten Lernen. Freut mich, dich kennenzulernen.

Was diesmal zu lernen ・ Informationen zur Hauptkomponentenanalyse ・ Informationen zur Kernel-Hauptkomponentenanalyse

Hauptkomponentenanalyse

Informationen zur Hauptkomponentenanalyse

-__ Hauptkomponentenanalyse __ ist eine der Methoden zur Darstellung der Originaldaten aus den kleinsten Daten , dh zur Zusammenfassung (Komprimierung) der Daten. ・ Wenn die Hauptkomponentenanalyse durchgeführt wird, __ "Achse, die alle Daten effizient erklären kann (erste Hauptkomponentenachse)" __ und __ "Achse, die Daten effizient erklären kann, die nicht von selbst erklärt werden können (zweite Hauptachse) Komponentenachse) ” wird erstellt.

Ablauf der Hauptkomponentenanalyse (Übersicht)

① Daten X ist standardisiert. (2) Berechnen Sie die __Korrelationsmatrix __ zwischen Merkmalen. (3) Finden Sie den __ eindeutigen Wert und den Eigenvektor __ der Korrelationsmatrix. (4) Wählen Sie k (k = Anzahl der zu komprimierenden Dimensionen) aus der mit dem größten Eigenwert aus und wählen Sie den entsprechenden Eigenvektor aus. ⑤ Erstellen Sie aus den ausgewählten k Eigenvektoren eine Feature Conversion Matrix W. (6) Berechnen Sie das Produkt aus Daten X und Matrix W und erhalten Sie Daten X, die in k-dimensionale konvertiert sind. (Ende)

Hauptkomponentenanalyse ① Standardisierung

-Standardisierung besteht darin, jedes Merkmal von __ Daten so zu konvertieren, dass der Mittelwert 0 und die Varianz 1 ist.

-Standardisierung wird wie folgt durchgeführt. (Unterschied zwischen Daten und Durchschnitt) ÷ Standardabweichung X = (X - X.mean(axis=0))/X.std(axis=0)

Hauptkomponentenanalyse ② Korrelationsmatrix

-__ Korrelationsmatrix__ ist eine Matrix, in der k × k Korrelationskoeffizienten zwischen den einzelnen Merkmalsdaten gesammelt werden. __Korrelationskoeffizient __ repräsentiert die Stärke der linearen Beziehung zwischen ___2 Daten __ und je näher sie an 1 liegt, desto stärker ist die Tendenz von a, eine positive lineare Funktion zu sein, dh _positive Korrelation Man kann sagen, dass _ stark ist und je näher es an -1 liegt, desto stärker ist die Tendenz einer Funktion erster Ordnung, negativ zu sein, dh desto stärker ist die __negative Korrelation __. ・ Wenn der Korrelationskoeffizient nahe bei 0 liegt, zeigt dies an, dass nicht viel lineare Tendenz vorliegt.

-Die Berechnung der Korrelationsmatrix R wird wie folgt durchgeführt. R = np.corrcoef(X.T)

-Die translozierten Daten X.T werden an np.corrcoef () übergeben, das die Korrelationsmatrix ausführt. Wenn sie als X übergeben werden, wird die Korrelationsmatrix der Daten selbst (Zeilen) berechnet. Ist. Dieses Mal möchte ich die Korrelationsmatrix von __ "Feature-Daten (Spalten)" berechnen, daher sollte sie in einem solchen Fall transponiert werden.

Hauptkomponentenanalyse ③ Eindeutiger Wert und eindeutiger Vektor

-Die Eigenwertzerlegung kann wie folgt erhalten werden. Die Eigenwerte werden in der Variablen eigvals gespeichert, und die Eigenvektoren werden in aufsteigender Reihenfolge in eigvecs gespeichert. eigvals, eigvecs = np.linalg.eigh(R)

Hauptkomponentenanalyse ④ ⑤ ⑥ Feature-Konvertierung

-Hier sehen wir uns das Verfahren zum Konvertieren der Dimension von Daten in eine beliebige k-Dimension an. -Konvertieren Sie mit k der größten in ③ (④) zerlegten Eigenwerte. Insbesondere wird die Feature Conversion Matrix W durch Verketten der Eigenvektoren erzeugt, die jedem dieser k Eigenwerte (⑤) entsprechen. Schließlich können durch Multiplizieren dieses W mit den Daten X die in die k-Dimension konvertierten Daten X'erhalten werden (⑥).

-Das Verfahren zum Erstellen der Konvertierungsmatrix W ist wie folgt. (Wenn Sie in 2D konvertieren möchten) W = np.c[eigvecs[:,-1],eigvecs[:,-2]]_

Führen Sie einfach die Hauptkomponentenanalyse (1) bis (6) durch.

-Die Hauptkomponentenanalyse kann durch die obigen Schritte (1) bis (6) durchgeführt werden, aber die Hauptkomponentenanalyse kann leicht unter Verwendung der Scikit-Lernklasse namens PCA durchgeführt werden.

・ Code![Screenshot 2020-10-29 12.26.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/9a9707d8-31fa-a2f8- 47b6-2ffde6aee689.png)

・ Code 2 (kombiniere 3 Arten von Weindaten in 2 Dimensionen)![Screenshot 2020-10-29 12.29.05.png](https: //qiita-image-store.s3.ap-northeast-1. amazonaws.com/0/698700/4363f1c6-abbd-6a19-dd3f-25f58873b41c.png)

・ Ergebnis![Screenshot 2020-10-29 12.30.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/8baa658a-b482-d492- 1ebe-960dcf6b42da.png)

Hauptkomponentenanalyse als Vorbehandlung für die Regressionsanalyse

・ Code![Screenshot 2020-10-29 12.36.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/041bc221-3f6e-1675- 3ab2-5ee84508ee6e.png)

Kernel-Hauptkomponentenanalyse

Was ist die Kernel-Hauptkomponentenanalyse?

・ Maschinelles Lernen wie die Regressionsanalyse basiert auf einer linearen Trennung, sodass eine lineare Trennung nicht möglich ist. Daten können nicht verarbeitet werden, aber solche Daten können mithilfe der Kernel Principal Principle Analysis (Kernel PCA) __ verarbeitet werden, die nichtlineare Trennungsdaten in linearisierbare Daten konvertiert. ..

Über Kernel-Tricks

#Berechnen Sie den quadratischen euklidischen Abstand zwischen Daten
M = np.sum((X - X[:,np.newaxis])**2, axis=2)
#Berechnen Sie die Kernelmatrix mit M.
K = np.exp(-gamma*M)

Hauptkomponentenanalyse von Kernel-ausgetricksten Daten

・ Code![Screenshot 2020-10-29 12.38.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/06e6a936-b50b-98c2- d9e0-5c5c80514f44.png)

・ Ergebnis![Screenshot 2020-10-29 12.38.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/698700/6d86ceb5-21ac-a9a8- aa8d-29176b572726.png)

Einfache Kernel-Hauptkomponentenanalyse

from sklearn.decomposition import KernelPCA
#Erstellen Sie eine KernelPCA-Instanz und analysieren Sie die Hauptkomponenten
kpca = KernelPCA(n_components=2, kernel="rbf", gamma=15)
X_kpca = kpca.fit_transform(X)

Zusammenfassung

Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.

Recommended Posts

Lernen ohne Lehrer 3 Hauptkomponentenanalyse
Dies und das der Hauptkomponentenanalyse
<Kurs> Maschinelles Lernen Kapitel 4: Hauptkomponentenanalyse
Hauptkomponentenanalyse (Hauptkomponentenanalyse: PCA)
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Gesichtserkennung mit Hauptkomponentenanalyse
Hauptkomponentenanalyse mit Spark ML
Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)
Hauptkomponentenanalyse mit Livedoor News Corpus --Practice--
Lernen ohne Lehrer 1 Grundlagen
Hauptkomponentenanalyse mit Livedoor News Corpus - Vorbereitung--
Dimensionskomprimierung durch Selbstcodierer- und Hauptkomponentenanalyse
Ich habe versucht, die Hauptkomponenten mit Titanic-Daten zu analysieren!
PRML Kapitel 12 Bayesianische Hauptanalyse Python-Implementierung
Python: Unüberwachtes Lernen: Grundlagen
Unbeaufsichtigtes Lernen 2 nicht hierarchisches Clustering
2. Multivariate Analyse in Python 3-2. Hauptkomponentenanalyse (Algorithmus)
Koordinierte Filterung mit Hauptkomponentenanalyse und K-Mittel-Clustering
Clustering und Hauptkomponentenanalyse nach der K-Means-Methode (Anfänger)
Fordern Sie die Hauptkomponentenanalyse von Textdaten mit Python heraus
Hauptkomponentenanalyse Analysieren Sie handschriftliche Zahlen mit PCA. Teil 2
Hauptkomponentenanalyse mit Python von nim mit nimpy
Hauptkomponentenanalyse (PCA) und unabhängige Komponentenanalyse (ICA) mit Python
Hauptkomponentenanalyse Analysieren Sie handschriftliche Zahlen mit PCA. Teil 1
2. Multivariate Analyse in Python 3-1. Hauptkomponentenanalyse (Scikit-Learn)
Implementierung einer unabhängigen Komponentenanalyse
Lernnotizen zur Python-Datenanalyse
Visualisieren Sie die Korrelationsmatrix durch Hauptkomponentenanalyse mit Python
Hauptkomponentenanalyse zum Anfassen mit PyCaret [Normalisierung + Visualisierung (grafisch)] Memo
Python: Unüberwachtes Lernen: Nicht hierarchisches Clustering
[GWAS] Zeichnen Sie die Ergebnisse der Hauptkomponentenanalyse (PCA) von PLINK auf
Sprachverarbeitung 100 knock-85 (abgeschnittene SVD): Dimensionskomprimierung durch Hauptkomponentenanalyse
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse