[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)

Einführung

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.

Zielperson

・ 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.

Umgebung

python 3.8.5 scikit-learn 0.231

Zuerst installieren

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

Glossar

Was ist Scikit-Lernen?

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 **".

Was ist SVM?

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.

image.png https://upload.wikimedia.org/wikipedia/commons/thumb/f/fe/Kernel_Machine.svg/2880px-Kernel_Machine.svg.png (Aus Wikipedia)

Was ist eine objektive Variable?

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.

Was ist eine erklärende Variable?

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.

Daten

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

Quellcode

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")


Ausführungsergebnis

$ python3 weather_learn.py 
Es ist sonnig

abschließend

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

[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Eine Einführung in Python für maschinelles Lernen
Einführung in das maschinelle Lernen
Eine Einführung in das maschinelle Lernen
Maschinelles Lernen mit Python! Vorbereitung
Beginnend mit maschinellem Python-Lernen
Super Einführung in das maschinelle Lernen
Einführung in das maschinelle Lernen Schreiben von Notizen
Maschinelles Lernen mit Python (1) Gesamtklassifizierung
SVM versucht maschinelles Lernen mit Scikit-Learn
Einführung in die Bibliothek für maschinelles Lernen SHOGUN
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 11 und 12 Einführung in Pandas Matplotlib
[Python Tutorial] Eine einfache Einführung in Python
Einführung in das maschinelle Lernen mit scikit-learn-Von der Datenerfassung bis zur Parameteroptimierung
Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
Einführung in das maschinelle Lernen: Funktionsweise des Modells
Verstärken Sie Bilder für maschinelles Lernen mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Einführung in das Auffüllen von Python-Bildern Auffüllen von Bildern mit ImageDataGenerator
Eine Einführung in OpenCV für maschinelles Lernen
Einfache Einführung der Spracherkennung mit Python
[Einführung in Python] Verwenden wir foreach mit Python
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Einführung in das maschinelle Lernen - Hard Margin SVM Edition-
[Python] Probieren Sie mit Keras-RL ganz einfach erweitertes Lernen (DQN) aus
Aufbau einer KI / maschinellen Lernumgebung mit Python
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 8 Einführung in Numpy
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
Maschinelles Lernen mit Python ohne Verlust an kategoriale Variablen (Dummy-Variablenkonvertierung)
Ich las "Das Lernen mit Python von der Einführung bis zur Praxis stärken", Kapitel 1
[Einführung in Style GAN] Einzigartiges Lernen von Animation mit Ihrer eigenen Maschine ♬
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Ich las "Das Lernen mit Python von der Einführung bis zur Praxis stärken", Kapitel 2
Coursera Machine Learning Challenge in Python: ex6 (Anpassen von SVM-Parametern)
Einführung in die künstliche Intelligenz mit Python 1 "Genetic Algorithm-Theory-"
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Eine Einführung in maschinelles Lernen für Bot-Entwickler
Markov Chain Artificial Brainless mit Python + Janome (1) Einführung in Janome
Python lernen mit ChemTHEATER 03
Markov-Kette Künstlich Gehirnlos mit Python + Janome (2) Einführung in die Markov-Kette
Maschinelles Lernen beginnend mit Python Personal Memorandum Part2
"Objektorientiert" mit Python gelernt
Python lernen mit ChemTHEATER 05-1
Einführung in die künstliche Intelligenz mit Python 2 "Genetic Algorithm-Practice-"
[Einführung in das maschinelle Lernen] Bis Sie den Beispielcode mit Chainer ausführen
Maschinelles Lernen beginnend mit Python Personal Memorandum Part1
[Einführung in StyleGAN2] Unabhängiges Lernen mit 10 Anime-Gesichtern ♬
Einführung in Tornado (1): Python Web Framework mit Tornado gestartet
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Einführung in die Python-Sprache
Einführung in OpenCV (Python) - (2)
[Python] Sammeln Sie Bilder mit Icrawler für maschinelles Lernen [1000 Blatt]
Python lernen mit ChemTHEATER 02
Einführung in den Formationsflug mit Tello edu (Python)
Lassen Sie uns die kostenlose "Einführung in Python für maschinelles Lernen" bis zum 27. April online stellen
Python lernen mit ChemTHEATER 01