[PYTHON] Datensatz für maschinelles Lernen

What Dies ist ein Artikel, der den Datensatz für die Implementierung des Perceptron-Modells visualisiert, das ein rudimentäres Modell des maschinellen Lernens ist.

Content

Datensatzvisualisierung mit Numpy Pandas Matplot

Was ist das Perceptron-Modell? Wird hier nicht erwähnt. Es ist ein berühmtes Modell. Wenn Sie also nachschlagen, werden Sie viel finden. Dies ist das erste Modell, das ich codiert habe, seit ich angefangen habe, maschinelles Lernen zu studieren.

Ist der diesmal verwendete Datensatz eine Institution namens ** UCI Machine Learning Repository **? Oder oder eine Art Open-Source-Blumendatensatz Iris wird als Beispiel verwendet.

Überprüfen Sie zunächst den Datensatz. Holen Sie sich den Datensatz online und zeigen Sie seinen Inhalt mit dem OS-Modul und der Pandas-Bibliothek an.

import os
import pandas as pd

s = os.path.join('https://archive.ics.uci.edu', 'ml', 'machine-learning-databases', 'iris', 'iris.data')
df = pd.read_csv(s, header=None, encoding='utf-8')
print(df)

Das Ergebnis der Ausführung des obigen Codes ist

       0    1    2    3               4
0    5.1  3.5  1.4  0.2     Iris-setosa
1    4.9  3.0  1.4  0.2     Iris-setosa
2    4.7  3.2  1.3  0.2     Iris-setosa
3    4.6  3.1  1.5  0.2     Iris-setosa
4    5.0  3.6  1.4  0.2     Iris-setosa
..   ...  ...  ...  ...             ...
145  6.7  3.0  5.2  2.3  Iris-virginica
146  6.3  2.5  5.0  1.9  Iris-virginica
147  6.5  3.0  5.2  2.0  Iris-virginica
148  6.2  3.4  5.4  2.3  Iris-virginica
149  5.9  3.0  5.1  1.8  Iris-virginica

[150 rows x 5 columns]

Und so speichert die Spalte die folgenden Informationen. Es ist ein Datensatz von 150 Blumen. Übrigens gibt es in diesem Datensatz zwei Arten von Blumen, "Iris-setona" und "Iris-virginica".

0 Spalte: Sepal length, #Die Länge des Schwertes
1 Reihe: Separl width, #Breite des Schwertes
2 Reihen: Petak length, #Blütenblattlänge
3 Reihen: Petal width,  #Blütenblattbreite
4 Reihen: Class laber   #Blumenname

Schauen wir uns als nächstes den Inhalt mit einem zweidimensionalen Diagramm an, das sich auf die Länge des Schwertes und die Länge des Schwertes konzentriert. Übrigens werde ich die Handlung für jeden Blumentyp aufteilen. Zeichnen Sie das Diagramm mit der Matplot-Bibliothek. Importieren Sie zunächst die Bibliothek. Verwenden Sie Numpy zur Datenmanipulation

import matplotlib.pyplot as plt
import Numpy as np

Dann erhalten Sie die 0. Spalte: die Länge des Schwertes und die 2. Spalte: die Länge der Blütenblätter. Verwenden Sie "iloc", um die Werte der 0. und 2. Spalte der 0-100. Zeile abzurufen. Eine eindimensionale Liste mit zwei Elementen von [Werten in Spalte 0, Werten in Spalte 2] wird zurückgegeben. Interessenten werden von print (X) empfohlen.

X = df.iloc[0:100, [0, 2]].values #1 rechts,Nur die dritte Reihe wird herausgenommen

Dieses Mal schauen wir uns den Inhalt des Datensatzes im Voraus an, und die ersten 50 sind die Daten von Iris-setona. Zeichnen Sie Setosa-Daten mit roten Kreisen und versicolor mit blauem x. Um den Wert auf der rechten Seite der beiden Elemente auf der x-Achse und den Wert auf der linken Seite auf der y-Achse zu übernehmen, schreiben Sie wie folgt.

#Streudiagrammplot der roten Kreisanzeige von Setosa
plt.scatter(X[:50,0], X[:50, 1], color='red', marker='o', label='setosa') 
#versicolor plot blue x display
plt.scatter(X[50:100, 0], X[50:100, 1], color='blue', marker='x', label='versicolor') 
#Einstellungen für die Achsenbeschriftung
plt.xlabel('sepal length [cm]') #Die Länge des Schwertes
plt.ylabel('petal length [cm]') #Hanabira Länge
#Legendeneinstellungen(Oben links platziert)
plt.legend(loc='upper left') 
plt.show()

Das Ausführungsergebnis ist unten image.png Wenn man sich die Ergebnisse ansieht, scheint es ein Gesetz zu geben. .. ..

Wir werden dies verwenden, um einen Algorithmus für maschinelles Lernen zu erstellen, aber der Ablauf ist ungefähr wie folgt (da es nicht möglich ist, das gesamte Nachschlagewerk zu kopieren ...)

Schritt .1 Definieren Sie die Lernrate w_1 für die Länge der Klaue und die Lernrate w_2 für die Länge der Blume (verwenden Sie Zufallszahlen). Schritt .2 Nehmen Sie das innere Produkt mit dem Datensatz und speichern Sie jedes Berechnungsergebnis des inneren Produkts in einem Array oder etwas anderem. Schritt .3 Klassifizieren Sie in Setosa oder Versicolor mit einem bestimmten Wert (z. B. 0) als Grenze des Ergebnisses der Berechnung des inneren Produkts. Schritt .4 Überprüfen Sie, ob die tatsächlichen Daten mit dem Klassifizierungsergebnis übereinstimmen. Wenn Sie einen Fehler machen, aktualisieren Sie die Parameter entsprechend der Lernrate (implementiert für alle Datensätze mit for-Schleife usw.). Schritt .5 Mit Flags verwalten, wenn die Klassifizierung falsch ist Schritt .6 Fahren Sie fort, bis keine Fehlklassifizierungen mehr vorliegen

Wenn Sie den obigen Vorgang ausführen, wird das maschinelle Lernen erfolgreich abgeschlossen. Ich werde die Implementierung hier nicht veröffentlichen (da sie wahrscheinlich vom Urheberrecht der Nachschlagewerke erfasst wird).

Comment Wenn man die Anzahl der Fehlklassifizierungen in jedem Lernzyklus zählt, gibt es Szenen, in denen sie nicht monoton abnimmt, sondern zunimmt. Es ist auch wichtig zu überwachen, ob Sie in die richtige Richtung lernen ...

Recommended Posts

Datensatz für maschinelles Lernen
Japanische Vorverarbeitung für maschinelles Lernen
Maschinelles Lernen
xgboost: Effektives Modell für maschinelles Lernen für Tabellendaten
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Maschinelles Lernen in Delemas (Datenerfassung)
Informationen zum maschinell erlernten Meeting für HRTech
Vorverarbeitung beim maschinellen Lernen 2 Datenerfassung
[Empfohlenes Tagging für maschinelles Lernen # 4] Skript für maschinelles Lernen ...?
Vorverarbeitung beim maschinellen Lernen 4 Datenkonvertierung
Grundlegendes maschinelles Lernverfahren: ② Daten vorbereiten
Sammeln von Daten zum maschinellen Lernen
Leistungsüberprüfung der Datenvorverarbeitung für maschinelles Lernen (numerische Daten) (Teil 2)
Die Verwendung von icrawler zum Sammeln von Daten zum maschinellen Lernen wurde vereinfacht
Leistungsüberprüfung der Datenvorverarbeitung für maschinelles Lernen (numerische Daten) (Teil 1)
Verstärken Sie Bilder für maschinelles Lernen mit Python
Datensatzgenerierung
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Unausgeglichenes Datenlernen mit maschinellem Lernen k-NN
Eine Einführung in OpenCV für maschinelles Lernen
Warum Python für maschinelles Lernen ausgewählt wird
"Verwendbare" One-Hot-Codierungstechnik für maschinelles Lernen
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
[Python] Webanwendungsdesign für maschinelles Lernen
[Memo] Maschinelles Lernen
Eine Einführung in Python für maschinelles Lernen
Klassifikation des maschinellen Lernens
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
Informationen zur Datenerweiterungsverarbeitung für tiefes Lernen
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
Erstellen einer Entwicklungsumgebung für maschinelles Lernen
Beispiel für maschinelles Lernen
[Ver1.3.1 Update] Ich habe DataLiner erstellt, eine Datenvorverarbeitungsbibliothek für maschinelles Lernen.
Ein-Klick-Datenvorhersage für das Feld, realisiert durch vollautomatisches maschinelles Lernen
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Datenversorgungstricks mit deque beim maschinellen Lernen
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 1
[Python] Datenanalyse, maschinelles Lernen (Kaggle) -Datenvorverarbeitung-
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Maschinelles Lernen Aufteilung der Trainingsdaten und Lernen / Vorhersage / Verifizierung
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 2
Sammeln Sie Bilder für maschinelles Lernen (Bing Search API)
Ich habe mit der maschinellen Vorverarbeitung von Python Data begonnen
Geschichte rund um die Datenanalyse durch maschinelles Lernen
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Logistische Regression beim maschinellen Lernen
Stärkung des Lernens der dritten Zeile
Maschinelles Lernen unterstützt Vektormaschine
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens