[PYTHON] <Kurs> Maschinelles Lernen Kapitel 4: Hauptkomponentenanalyse

Maschinelles Lernen

Inhaltsverzeichnis Kapitel 1: Lineares Regressionsmodell [Kapitel 2: Nichtlineares Regressionsmodell] (https://qiita.com/matsukura04583/items/baa3f2269537036abc57) [Kapitel 3: Logistisches Regressionsmodell] (https://qiita.com/matsukura04583/items/0fb73183e4a7a6f06aa5) [Kapitel 4: Hauptkomponentenanalyse] (https://qiita.com/matsukura04583/items/b3b5d2d22189afc9c81c) [Kapitel 5: Algorithmus 1 (k-Nachbarschaftsmethode (kNN))] (https://qiita.com/matsukura04583/items/543719b44159322221ed) [Kapitel 6: Algorithmus 2 (k-Mittel)] (https://qiita.com/matsukura04583/items/050c98c7bb1c9e91be71) [Kapitel 7: Support Vector Machine] (https://qiita.com/matsukura04583/items/6b718642bcbf97ae2ca8)

Kapitel 4: Hauptkomponentenanalyse

Was ist Hauptkomponentenanalyse?

PCA1.jpg

PCA2.jpg

PCA3.jpg

(Übung 4) Dimensionskomprimierung von Brustkrebstestdaten unter Verwendung von Scicit Learn

Beginnen Sie mit Google Drive Map

from google.colab import drive
drive.mount('/content/drive')

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegressionCV
from sklearn.metrics import confusion_matrix
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
%matplotlib inline

sys.path Einstellungen

Im Folgenden erstellen wir einen Ordner "study_ai_ml" direkt unter "Mein Laufwerk" in Google Drive.

cancer_df = pd.read_csv('/content/drive/My Drive/study_ai_ml/data/cancer.csv')
print('cancer df shape: {}'.format(cancer_df.shape))

Ergebnis


cancer df shape: (569, 33)
cancer_df
スクリーンショット 2019-12-13 16.53.21.png
cancer_df.drop('Unnamed: 32', axis=1, inplace=True)
cancer_df
スクリーンショット 2019-12-13 16.56.55.png

** ・ Diagnose: Diagnoseergebnis (B gutartig / M bösartig) ・ Erklärende Variablen werden durch logistische Regression mit der Zielvariablen in der zweiten Spalte nach der dritten Spalte klassifiziert **

#Extraktion der Zielvariablen
y = cancer_df.diagnosis.apply(lambda d: 1 if d == 'M' else 0)
#Extraktion erklärender Variablen
X = cancer_df.loc[:, 'radius_mean':]
#Separate Daten für Training und Test
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

#Standardisierung
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

#Lernen mit logistischer Regression
logistic = LogisticRegressionCV(cv=10, random_state=0)
logistic.fit(X_train_scaled, y_train)

#Überprüfung
print('Train score: {:.3f}'.format(logistic.score(X_train_scaled, y_train)))
print('Test score: {:.3f}'.format(logistic.score(X_test_scaled, y_test)))
print('Confustion matrix:\n{}'.format(confusion_matrix(y_true=y_test, y_pred=logistic.predict(X_test_scaled))))

Ergebnis


Train score: 0.988
Test score: 0.972
Confustion matrix:
[[89  1]
 [ 3 50]]

** ・ Bestätigt, dass es mit einem Verifizierungswert von 97% klassifiziert werden kann **

pca = PCA(n_components=30)
pca.fit(X_train_scaled)
plt.bar([n for n in range(1, len(pca.explained_variance_ratio_)+1)], pca.explained_variance_ratio_)
スクリーンショット 2019-12-13 17.02.01.png
# PCA
#Auf 2 Dimensionen komprimiert
pca = PCA(n_components=2)
X_train_pca = pca.fit_transform(X_train_scaled)
print('X_train_pca shape: {}'.format(X_train_pca.shape))
# X_train_pca shape: (426, 2)

#Beitragssatz
print('explained variance ratio: {}'.format(pca.explained_variance_ratio_))
# explained variance ratio: [ 0.43315126  0.19586506]

#Plot auf Streudiagramm
temp = pd.DataFrame(X_train_pca)
temp['Outcome'] = y_train.values
b = temp[temp['Outcome'] == 0]
m = temp[temp['Outcome'] == 1]
plt.scatter(x=b[0], y=b[1], marker='o') #Benness ist mit ○ markiert
plt.scatter(x=m[0], y=m[1], marker='^') #Bösartig ist mit △ markiert
plt.xlabel('PC 1') #X-Achse der ersten Hauptkomponente
plt.ylabel('PC 2') #Y-Achse für die zweite Hauptkomponente
スクリーンショット 2019-12-13 17.03.18.png
#Standardisierung
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

#Lernen mit logistischer Regression
logistic = LogisticRegressionCV(cv=10, random_state=0)
logistic.fit(X_train_scaled, y_train)

#Überprüfung
print('Train score: {:.3f}'.format(logistic.score(X_train_scaled, y_train)))
print('Test score: {:.3f}'.format(logistic.score(X_test_scaled, y_test)))
print('Confustion matrix:\n{}'.format(confusion_matrix(y_true=y_test, y_pred=logistic.predict(X_test_scaled))))

Ergebnis


Train score: 0.927
Test score: 0.944
Confustion matrix:
[[87  3]
 [ 5 48]]

** ・ Bestätigt, dass es mit einem Verifizierungswert von 94% klassifiziert werden kann ** Selbst wenn die Anzahl der Dimensionen auf 2 reduziert wurde, sank die Verifizierungsbewertung nicht wesentlich von 97% auf 94%, und das Ergebnis war, dass die Anzahl der Dimensionen unter Beibehaltung der Genauigkeit reduziert wurde.

Verwandte Seiten

Kapitel 1: Lineares Regressionsmodell [Kapitel 2: Nichtlineares Regressionsmodell] (https://qiita.com/matsukura04583/items/baa3f2269537036abc57) [Kapitel 3: Logistisches Regressionsmodell] (https://qiita.com/matsukura04583/items/0fb73183e4a7a6f06aa5) [Kapitel 4: Hauptkomponentenanalyse] (https://qiita.com/matsukura04583/items/b3b5d2d22189afc9c81c) [Kapitel 5: Algorithmus 1 (k-Nachbarschaftsmethode (kNN))] (https://qiita.com/matsukura04583/items/543719b44159322221ed) [Kapitel 6: Algorithmus 2 (k-Mittel)] (https://qiita.com/matsukura04583/items/050c98c7bb1c9e91be71) [Kapitel 7: Support Vector Machine] (https://qiita.com/matsukura04583/items/6b718642bcbf97ae2ca8)

Recommended Posts

<Kurs> Maschinelles Lernen Kapitel 4: Hauptkomponentenanalyse
Lernen ohne Lehrer 3 Hauptkomponentenanalyse
<Kurs> Maschinelles Lernen Kapitel 6: Algorithmus 2 (k-Mittel)
<Kurs> Maschinelles Lernen Kapitel 7: Support Vector Machine
Dies und das der Hauptkomponentenanalyse
Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
<Kurs> Maschinelles Lernen Kapitel 2: Nichtlineares Regressionsmodell
Memo zum Kurs für maschinelles Lernen
Hauptkomponentenanalyse (Hauptkomponentenanalyse: PCA)
PRML Kapitel 12 Bayesianische Hauptanalyse Python-Implementierung
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 7 Regressionsanalyse
[Sprachverarbeitung 100 Schläge 2020] Kapitel 6: Maschinelles Lernen
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Gesichtserkennung mit Hauptkomponentenanalyse
Hauptkomponentenanalyse mit Spark ML
100 Sprachverarbeitung Knock 2020 Kapitel 6: Maschinelles Lernen
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse
Maschinelles Lernen
Anfänger des maschinellen Lernens nehmen an Courseras Deep Learning-Kurs teil
TensorFlow Kochbuch zum maschinellen Lernen Kapitel 2 Persönlich verstopft
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
TensorFlow Kochbuch zum maschinellen Lernen Kapitel 3 Persönlich verstopft
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
TensorFlow Machine Learning Cookbook Kapitel 6 (oder besser gesagt die dritte Zeile), in dem ich persönlich feststeckte
Hauptkomponentenanalyse mit Livedoor News Corpus - Vorbereitung--
Ich habe versucht, die Hauptkomponenten mit Titanic-Daten zu analysieren!
[Python] Datenanalyse, maschinelles Lernen (Kaggle) -Datenvorverarbeitung-
Analyse der gemeinsamen Raumnutzung durch maschinelles Lernen
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Beispiel für maschinelles Lernen
2. Multivariate Analyse in Python 3-2. Hauptkomponentenanalyse (Algorithmus)
Koordinierte Filterung mit Hauptkomponentenanalyse und K-Mittel-Clustering
Python-Lernnotiz für maschinelles Lernen von Chainer aus Kapitel 2
Mathematisches Verständnis der Hauptkomponentenanalyse von Anfang an
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
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)
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Logistische Regression beim maschinellen Lernen
Maschinelles Lernen unterstützt Vektormaschine
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens
Bibliothek für maschinelles Lernen dlib
Maschinelles Lernen (TensorFlow) + Lotto 6
Lerne irgendwie maschinelles Lernen