Python: Unüberwachtes Lernen: Grundlagen

Was ist unbeaufsichtigtes Lernen?

Beim überwachten Lernen (Rückkehr, Klassifizierung) ist die Antwort bekannt Es dient dazu, AI anhand von Daten zu trainieren (eine Reihe von Eingabewerten und entsprechenden Ausgabewerten).

Für unbeantwortete Datensätze im Gegensatz zu überwachtem Lernen Es gibt unbeaufsichtigtes Lernen, bei dem die KI die Antwort selbst entscheidet.

Sie lernen "Clustering" und "Hauptkomponentenanalyse" kennen, die unbeaufsichtigtes Lernen sind.

Arten des unbeaufsichtigten Lernens

Clustering

Es gibt eine Technik namens "Clustering" als Vertreter des unbeaufsichtigten Lernens. Eine Operation, die Daten in "Cluster" unterteilt. Im Japanischen wird die Datenteilung manchmal als "Clustering" bezeichnet.

Das Folgende zeigt, wie Daten mithilfe der "k-means-Methode" als Beispiel für Clustering bearbeitet werden.

image.png

image.png

Die schwarzen Punkte sind der Status vor dem Clustering. Der violette Punkt ist ein Parameter, der als "Schwerpunkt" der Daten bezeichnet wird. Die k-means-Methode lernt aus den Daten die optimale Position dieses Schwerpunkts. Gruppieren Sie die Daten anhand des erlernten Schwerpunkts.

Es gibt zwei Arten von Clustering: eine automatische Schätzung der Anzahl von Clustern und eine vom Menschen bestimmte Methode.

k-Die Mittelwertmethode ist eine der Methoden, mit denen Menschen die Anzahl der Cluster bestimmen.

Anzahl der Cluster

Der Zweck des unbeaufsichtigten Lernens besteht darin, die Eigenschaften der Daten, die Sie analysieren möchten, mechanisch zu erfassen und zu analysieren. Aus diesem Grund gibt es auch die Idee, dass es für Menschen besser ist, die Anzahl der Cluster nicht zu bestimmen.

Eine als "hierarchisch" bezeichnete Technik ist eine Technik, die die Anzahl der Cluster automatisch schätzt. Das hierarchische Verfahren erfordert jedoch einen relativ großen Rechenaufwand. Wenn Sie viele Daten haben, kann ein nicht hierarchischer Ansatz angebracht sein.

Hauptkomponentenanalyse

"Primärkomponentenanalyse" ist eine Technik, die häufig verwendet wird, um die Abmessungen von Daten in Diagramme zu "reduzieren".

Die Dimensionsreduzierung dient zum Verringern der Dimension, die die Daten darstellt. Sie können beispielsweise ein zweidimensionales Diagramm erstellen, indem Sie eine Koordinatenachse aus dreidimensionalen Daten reduzieren.

Betrachten Sie ein konkretes Beispiel. Angenommen, Sie haben viele Daten über Ihre Schüler, z. B. Testergebnisse, Anzahl der Fragen im Unterricht, Anzahl der verspäteten Ankünfte und Schlafenszeit. Wie können wir die Eigenschaften unserer Schüler anhand dieser Daten grafisch darstellen?

Möglicherweise können Sie für jede Daten ein Diagramm erstellen. Es ist jedoch schwierig, die Tendenz von Hunderten oder Tausenden von Schülern anhand mehrerer Diagramme zu analysieren. Mit der Hauptkomponentenanalyse können Sie verschiedene Datentypen kombinieren, um ein einzelnes Diagramm wie 2D oder 3D zu erstellen, während die Informationen in den einzelnen Daten so weit wie möglich erhalten bleiben.

image.png

Wie im obigen Beispiel können Sie es mithilfe der Hauptkomponentenanalyse in Daten konvertieren. Zunächst lernt die Maschine die Achsen (Hauptkomponenten), die speziell die Eigenschaften der Daten angeben. Wenn Sie das Diagramm mit den gelernten Achsen neu erstellen, können Sie problemlos alle Daten in einem Diagramm anzeigen, wie in der obigen Abbildung gezeigt, während Sie die Informationen so weit wie möglich beibehalten. Die Methode zur Bestimmung dieser Achse ist der Umriss der Hauptkomponentenanalyse.

Vorherige Kenntniss

Euklidische Entfernung

Gegeben sind die Koordinaten x (x1, x2), y (y1, y2) der beiden Punkte Der Abstand zwischen zwei Punkten kann aus dem Satz von Pitagolas berechnet werden.

image.png

Allgemeiner eine Erweiterung davon zwischen zwei Punkten im n-dimensionalen Raum

Es wird die euklidische Distanz genannt.

image.png

Die "Entfernung" in einem Raum von n = 4 oder mehr kann durch menschliche intuitive räumliche Erkennung nicht mehr vorgestellt werden, aber in der mathematischen Formel wird die einfach wie oben erweiterte Formel als Entfernung definiert. .. Die euklidische Distanz wird manchmal auch als Norm bezeichnet.

Sie können auch numpy verwenden, um den euklidischen Abstand zu ermitteln.

import numpy as np
vec_a = np.array([1, 2, 3])
vec_b = np.array([2, 3, 4])
print(np.linalg.norm(vec_a - vec_b))

Kosinusähnlichkeit

Wenn der zweidimensionale Vektor a → = (a1, a2) ist, ist b → = (b1, b2) gegeben Ich möchte bewerten, wie ähnlich diese beiden Vektoren (tatsächlich einige zweidimensionale Daten) sind.

Die Eigenschaften, die einen Vektor darstellen, sind "Länge" und "Richtung". Hier konzentrieren wir uns auf "Richtung". Was ist die Ähnlichkeit der "Richtungen", denen die beiden Vektoren zugewandt sind? Sie können sich das einfach so vorstellen, dass es dem Winkel zwischen diesen beiden Vektoren entspricht.

Wenn der Winkel zwischen den beiden Vektoren θ ist, sind die beiden Daten umso ähnlicher, je kleiner θ ist. Hier die Formel zur Berechnung des inneren Produkts der Vektoren

image.png

Wenn Sie ein wenig rechnen

image.png

Es wird sein. Je kleiner das θ ist, desto größer ist das cos θ.

Aus dem Obigen wurde herausgefunden, dass cos & thgr; die Ähnlichkeit zwischen den beiden Daten darstellt. Der cos des auf diese Weise gebildeten Winkels wird als Index für die Ähnlichkeit der Daten verwendet.

Es heißt "Cosinus-Ähnlichkeit".

Erweitern Sie "Cosinus-Ähnlichkeit", damit sie sowohl für n-dimensionale Daten als auch für den euklidischen Abstand verwendet werden kann. Wenn zwei n-dimensionale Vektoren a → = (a1, a2, ⋯, an), b → = (b1, b2, ⋯, bn) gegeben sind "Kosinusähnlichkeit" wird durch die folgende Formel ausgedrückt.

image.png

Zusätzlich kann die Kosinusähnlichkeit mit dem folgenden Code berechnet werden.

import numpy as np
vec_a = np.array([1, 2, 3])
vec_b = np.array([2, 3, 4])
print(np.dot(vec_a, vec_b) / (np.linalg.norm(vec_a) * np.linalg.norm(vec_b)))

Recommended Posts

Python: Unüberwachtes Lernen: Grundlagen
Lernen ohne Lehrer 1 Grundlagen
Python-Grundlagen ⑤
Python-Grundlagen
Python-Grundlagen ④
Python-Grundlagen ③
Python-Grundlagen
Python lernen
Python-Grundlagen
Python-Grundlagen
Python-Grundlagen ③
Python-Grundlagen ②
Python-Grundlagen ②
Python: Unüberwachtes Lernen: Nicht hierarchisches Clustering
(Python) Deep Learning Library Chainer-Grundlagen Grundlagen
Python-Grundlagen: Liste
[Python] Lernnotiz 1
Python-Lernnotizen
Python-Lernausgabe
# Python-Grundlagen (#matplotlib)
Python CGI-Grundlagen
Python-Grundlagen: Wörterbuch
Python-Lernseite
Python-Grundlagen ①
Grundlagen von Python ①
Python-Lerntag 4
Python Slice Grundlagen
# Python-Grundlagen (Umfang)
# Python-Grundlagen (#Numpy 1/2)
Python Deep Learning
# Python-Grundlagen (#Numpy 2/2)
Python-Lernen (Ergänzung)
# Python-Grundlagen (Funktionen)
Deep Learning × Python
Grundlagen des Python-Arrays
Grundlagen der Python-Profilerstellung
Python #Numpy Basics
Python-Grundlagen: Funktionen
Python-Lernnotizen
# Python-Grundlagen (Klasse)
Zusammenfassung der Python-Grundlagen
[Lernnotiz] Grundlagen des Unterrichts mit Python
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Python lernen mit ChemTHEATER 03
Python-Modul (Python-Lernnotiz ④)
Erweitertes Lernen 1 Python-Installation
Python-Grundlagen ② für Anweisung
Python lernen mit ChemTHEATER 05-1
Python: Deep Learning-Praxis
Python ~ Grammatikgeschwindigkeit lernen ~
Grundlagen der Python-Scraping-Grundlagen
Python Basic 8 Numpy Test
Unbeaufsichtigtes Lernen 2 nicht hierarchisches Clustering
Errbot: Grundlagen des Python-Chatbots
#Python DeepLearning Basics (Mathematik 1/4)
Private Python-Lernprozedur
Python lernen mit ChemTHEATER 02
Python-Grundlagen: Socket, Dnspython
Python: Tiefes Lernen in der Verarbeitung natürlicher Sprache: Grundlagen