Aidemy 2020/10/29
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 __ 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.
① 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)
-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)
-__ 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.
-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)
-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]]_
-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)
Bevor Sie eine Regressionsanalyse mit LogisticRegression () durchführen, können Sie ein vielseitigeres Modell erstellen, indem Sie eine Hauptkomponentenanalyse durchführen und die Daten komprimieren.
Im Folgenden werden Standardisierung und Hauptkomponentenanalyse für X_train und X_test durchgeführt, bei denen es sich um geteilte Daten handelt. Verwenden Sie die "StandardScaler" -Klasse zur Standardisierung und die PCA-Klasse zur Hauptkomponentenanalyse. Zusätzlich werden Trainingsdaten und Testdaten nach einem gemeinsamen Standard verarbeitet.
Da Zugdaten trainiert werden müssen, verwenden Sie "fit_transform ()" und "transform ()" wie für Testdaten.
・ 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)
・ 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. ..
#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)
・ 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)
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)
Diese Zeit ist vorbei. Vielen Dank für das Lesen bis zum Ende.
Recommended Posts