Wenn ich mir die Einführungsseite über maschinelles Lernen ansehe, habe ich den Eindruck, dass es für Menschen ohne Wissen schwierig ist, damit auszukommen, weil es etwas Schwieriges aussagt. Nun, als Thema ist es sicherlich schwierig, aber ... Ich möchte einen Artikel mit dem Ziel schreiben: "Auch wenn Sie keine Kenntnisse in Mathematik oder maschinellem Lernen haben, kann jeder, der Kenntnisse in Python hat, diesen implementieren." In diesem Artikel werde ich die schwierigen Dinge nicht erklären, aber ich werde vorerst mit der Haltung fortfahren, maschinelles Lernen zu berühren.
・ Verstehe Python bis zu einem gewissen Grad ・ Ich interessiere mich für maschinelles Lernen, aber ich weiß nichts ・ Ich habe die Gliederung in einer Universitätsklasse gelernt, weiß aber nicht, wie ich sie tatsächlich umsetzen soll.
python 3.8.5 scikit-learn 0.231
Es scheint, dass es nur installiert werden kann, wenn die Version von Python 3.8.5 oder niedriger ist.
pip install scikit-learn
Da numpy zum Lesen der CSV-Datei verwendet wird, installieren Sie sie bitte, falls Sie sie noch nicht installiert haben.
pip install numpy
scikit-learn (früher scikits.learn) ist Pythons Open-Source-Bibliothek für maschinelles Lernen [2]. Unterstützt Vector Machine, Random Forest, Gradient Boosting, k Neighbor Method, DBSCAN und viele andere Klassifizierungs-, Regressions- und Clustering-Algorithmen, die für die Interaktion mit NumPy und SciPy in Pythons Mathematikbibliotheken entwickelt wurden. ing. (Aus Wikipedia)
Ja, ich denke nicht, dass es sinnvoll ist, dies zu betrachten. Erinnern wir uns also einfach an diese Zeit als "** Bibliothek, die maschinelles Lernen unterstützt **".
Die Support Vector Machine (SVM) ist eines der Mustererkennungsmodelle, die überwachtes Lernen verwenden. Anwendbar auf Klassifizierung und Regression. Die Support-Vektor-Maschine ist eines der Lernmodelle mit einer hervorragenden Erkennungsleistung unter den derzeit bekannten Methoden. Der Grund, warum die Support-Vektor-Maschine eine hervorragende Erkennungsleistung aufweisen kann, besteht darin, dass es eine Vorrichtung zum Erzielen einer hohen Unterscheidungsleistung für nicht trainierte Daten gibt. (Aus Wikipedia)
Einfach ausgedrückt handelt es sich um eine maschinelle Lernmethode ***, bei der Daten durch Zeichnen einer ** Linie klassifiziert werden (siehe Abbildung unten). Es gibt verschiedene Methoden des maschinellen Lernens. SVM (Support Vector Machine) ist eine davon.
https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Kernel_Machine.svg/2880px-Kernel_Machine.svg.png (Aus Wikipedia)
Dies ist das Ziel, das Sie beim maschinellen Lernen vorhersagen möchten. Wenn Sie beispielsweise das Wetter vorhersagen möchten, sind die Zielvariablen sonnig, bewölkt und regnerisch.
Es sind die Informationen, die für eine Vorhersage benötigt werden. Zum Beispiel die Niederschlagsmenge und Luftfeuchtigkeit, die erforderlich sind, um das Wetter vorherzusagen.
Grundsätzlich ist die Genauigkeit umso höher, je größer die Anzahl der Daten ist. Da es sich jedoch um einen Test handelt, werden wir eine kleine Datenmenge vorbereiten. Diese Daten beziehen sich auf das diesjährige Wetter. Nun, es gibt viele Wetterdaten auf der Website der Meteorologischen Agentur. Schauen Sie also bitte vorbei, wenn Sie interessiert sind. Von links ** Temperatur **, ** Niederschlag **, ** Sonnenlichtzeit **, ** Luftfeuchtigkeit **, ** Wetter (0: sonnig, 1: bewölkt, 2: Regen) ** Repräsentiert. In diesen Daten sind ** Temperatur **, ** Niederschlag **, ** Sonnenscheinzeit **, ** Luftfeuchtigkeit ** erklärende Variablen, ** Wetter (0: sonnig, 1: bewölkt, 2: bewölkt) Regen) ** ist die Zielvariable.
Nachtrag 2020/11/16 Ich habe es beim Betrachten der Daten bemerkt, aber da ich gerade die Daten für Januar genommen habe, werden nur die Daten dieses Winters unterstützt (lacht).
data.csv
6.6,0,8.2,47,0
7.1,0,5.7,57,1
7.1,0,9.3,62,0
8.1,0,4.7,53,1
6.5,0,9.7,54,0
8,0,8.1,42,1
6.6,1.5,0.5,68,2
5.7,21.5,2.7,94,2
11.2,0,9.3,47,0
9,0,7.9,57,1
8,0,4.5,66,1
7.7,0,1.8,66,2
9.1,0,9.3,70,0
9.1,0,8.3,70,0
7.8,11.5,3.6,79,2
7.6,0,4.4,46,1
7.6,0,3.6,58,1
3.8,13.5,0,87,2
7.3,0,8,62,1
8.3,0,9.7,60,0
Indem Sie das Wetter auf Ihren Lieblingswert ändern, können Sie das Wetter unter diesen Bedingungen vorhersagen. (Die Genauigkeit ist jedoch schlecht, da die Anzahl der Daten gering ist.) Auch bei schönem Wetter von links nach rechts ** Temperatur **, ** Niederschlag **, ** Sonnenlichtzeit **, ** Luftfeuchtigkeit ** Bitte versuchen Sie, die Bedingungen in dieser Reihenfolge einzugeben, da sie in einer Reihe stehen.
weather_learn.py
import numpy as np
from sklearn import svm
#CSV-Datei lesen
npArray = np.loadtxt("data.csv", delimiter = ",", dtype = "float")
#Speicherung erklärender Variablen
x = npArray[:, 0:4]
#Speicherung der Zielvariablen
y = npArray[:, 4:5].ravel()
#Wählen Sie SVM als Lernmethode
model = svm.SVC()
#Lernen
model.fit(x,y)
#Bewertungsdaten(Geben Sie hier Ihren Lieblingswert ein)
weather = [[9,0,7.9,6.5]]
#Prognostizieren Sie das Wetter der Bewertungsdaten mit der Vorhersagefunktion
ans = model.predict(weather)
if ans == 0:
print("Es ist sonnig")
if ans == 1:
print("Es ist bewölkt")
if ans == 2:
print("Es regnet")
$ python3 weather_learn.py
Es ist sonnig
Vielen Dank auch für Ihre harte Arbeit. Ich bin froh, dass das, was ich tatsächlich gemacht habe, auf diese Weise zu Ergebnissen führt. Als ich zum ersten Mal mit maschinellem Lernen in Kontakt kam, hatte ich oft zu viele Informationen. In diesem Artikel möchte ich ihn auf leicht verständliche Weise für diejenigen schreiben, die "keine Kenntnisse haben, aber maschinelles Lernen berühren möchten". Wenn Sie jedoch Fragen oder Fehler haben, kommentieren Sie diese bitte. Wir sehen uns wieder.
Recommended Posts