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.
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.
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.
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.
"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.
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.
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.
Allgemeiner eine Erweiterung davon zwischen zwei Punkten im n-dimensionalen Raum
Es wird die euklidische Distanz genannt.
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))
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
Wenn Sie ein wenig rechnen
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.
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