[PYTHON] Super Einführung in das maschinelle Lernen

Überblick

Das Thema lautet "Was ist maschinelles Lernen? Wie verwenden Sie es?" Für interne Lernsitzungen. Ich hoffe, der Inhalt dieses Artikels ist für andere nützlich.

Maschinelles Lernen = KI?

Maschinelles Lernen ist ein Feld der künstlichen Intelligenz, und tiefes Lernen ist ein Feld des maschinellen Lernens.

Picture1.png

Regelbasis

Es ist so programmiert, dass es verschiedene Muster durch mehrere If-Anweisungen und Erkundungen abdeckt, sodass auch unter komplizierten Bedingungen eine angemessene Ausgabe erzielt werden kann.

Maschinelles Lernen

Lernt Datenmuster und -funktionen und gibt darauf basierend einige Vorhersagen für unbekannte Daten aus

Tiefes Lernen

Eine der Methoden des maschinellen Lernens, mit denen die Elemente, die die Daten charakterisieren, automatisch ausgewählt werden können

Lernen stärken

In einer bestimmten Umgebung versucht der Agent wiederholt zu handeln, während er die Situation beobachtet, und lernt die optimale Entscheidung, um den Zweck zu erreichen.

Point! Wenn bei einer Regelbasis eine Ausnahme auftritt, muss eine Person die Regel manuell neu schreiben, und es ist schwierig zu reagieren, wenn die Daten stetig zunehmen. ** → Lassen Sie den Computer beim maschinellen Lernen dies tun! ** ** **

Arten des maschinellen Lernens

Überwachtes Lernen kann grob in Regression und Klassifizierung unterteilt werden. Regression: Das Vorhersageergebnis ist numerisch. Was ist Japans BIP im Jahr 2018? → Zurück Klassifizierung: Das Ergebnis der Vorhersage ist eine Klasse. Ist diese Blume eine Iris oder ein junger Mann? → Klassifizierung

Was macht maschinelles Lernen?

flow.png

1. Entscheiden Sie, was zu tun ist

Entscheiden Sie, was Sie beurteilen möchten und wie genau es sein soll.

2. Sammeln Sie Daten

Sammeln Sie die Daten, die für die Vorhersage und Beurteilung erforderlich sind. Sie können die bereits in der DB gespeicherten Daten verwenden oder aus dem WEB abrufen. Die gesammelten Daten werden in "Lerndaten" und "Testdaten" unterteilt.

Krabbeln

Es ist eine Technologie zum Herunterladen von WEB-Seitendaten basierend auf der URL. Crawling-Beispiel mit Python-Anforderungen:

crawling.py


import requests
r = requests.get('https://ja.wikipedia.org/wiki/Python')
r.text

image.png

Schaben

Technologie zum Extrahieren und Verarbeiten der erforderlichen Informationen von heruntergeladenen WEB-Seiten Scraping-Beispiel mit Pythons BeautifulSoup:

scraping.py


from bs4 import BeautifulSoup
soup = BeautifulSoup(r.content, 'html.parser')
soup.find(class_='mw-redirect').string
>>> 'Multi-Paradigma'

image.png

Holen Sie sich mit API

Wird mithilfe der von jedem Service veröffentlichten RESTful-API abgerufen Beispiel für das Erfassen von Daten mit der GitHub-API und deren Verarbeitung mit Pandas:

get_github_data.py


import requests
import pandas as pd

git_res = requests.get('https://api.github.com/search/repositories?q=language:python+created:2017-07-28&per_page=3')
pd.DataFrame(git_res.json()['items'])[:][['language', 'stargazers_count', 'git_url', 'updated_at', 'created_at']]

image.png

3. Formatieren Sie die Daten

Formatieren Sie die gesammelten Daten. Wie es formatiert wird, hängt von der Art der Daten und den nachfolgenden Modellierungsarbeiten ab.

Fehlende Wertinterpolation

Die Daten, die in der Merkmalsmenge fehlen, werden mit dem Durchschnittswert oder 0 gefüllt und die Daten werden interpoliert. Es führt auch eine Verarbeitung durch, z. B. das Ersetzen der als Kategorien aufgelisteten Zeichen durch Flags (Dummy-Variablenkonvertierung).

ffill.png

Trimmen

Wenn Sie ein bestimmtes Zeichen aus den Bilddaten identifizieren möchten, schneiden Sie Anmerkungsdaten zu oder erstellen Sie sie.

Morphologische Analyse

Sätze usw. werden durch morphologische Analyse in separate Schrift umgewandelt und weiter vektorkonvertiert, so dass sie als numerische Werte behandelt werden können.

Janome Beispiel

Installation

pip install janome

Teilen

janome_test.py


# -*- coding: utf-8 -*-
from janome.tokenizer import Tokenizer
t = Tokenizer()

document = u'Dies sind Testdaten'
tokens = t.tokenize(document)
for token in tokens:
    print(token.surface)

Ausgabe

Dies
Ist
Prüfung
Daten
ist

4. Machen Sie ein Modell und lernen Sie

Ein Modell dient zur Umwandlung von Eingabedaten (Vorhersage- / Beurteilungsfaktoren) in Ausgabedaten (Vorhersage- / Beurteilungsergebnisse). Grob gesagt ist es eine Funktion.

Verfahren

Organisieren und analysieren Sie aus den erfassten Daten die Struktur und Korrelation von Daten, die wahrscheinlich Faktoren für die Vorhersageergebnisse sind, und erstellen Sie ein Modell mit einem bestimmten Freiheitsgrad. Erstellen Sie ein Vorhersagemodell, indem Sie Parameter aus den Trainingsdaten ermitteln.

Bild image.png

Bibliothek

Dies ist ein Teil, der spezielle Kenntnisse und Erfahrungen erfordert, aber es gibt Bibliotheken, die zum Teil leicht erstellt werden können.

Beispiel mit scikit-learn: Wählen Sie Modell (diesmal lineare Regression), das für das Problem geeignet ist, passen Sie die Trainingsdaten an das Modell an und wählen Sie das trainierte Modell aus. Erstellt.

liner_reg_sample.py


import numpy as np
from sklearn import linear_model

#Angenommene gesammelte Daten
x_data = np.arange(-3, 10, 0.1).reshape(-1, 1)
y_data = (1/2) * x_data + np.random.normal(0.0, 0.5, len(x_data)).reshape(-1, 1)

#Verwendung als Trainingsdaten
x_train = x_data[70:]
y_train = y_data[70:]

#Passen Sie das Modell an die Trainingsdaten an
reg = linear_model.LinearRegression()
reg.fit(x_train, y_train)

Es gibt einen train_test_split, um die Trainingsdaten von den Testdaten zu trennen. (Ich habe es diesmal nicht benutzt, um es einfacher zu machen, Kapitel für Kapitel zu lesen.)

Hyperparameter

Je nach Modell müssen Hyperparameter manuell ermittelt werden. Dies wird nicht durch Lernen bestimmt. (Beispiel: Anzahl der DL-Schichten, Anzahl der Lernvorgänge usw.)

So bestimmen Sie Hyperparameter

Andere

Ich habe zuvor einen Artikel veröffentlicht, der die Techniken des maschinellen Lernens grob zusammenfasst. Ich hoffe, es wird ein Hinweis für den Modellbau sein. Organisieren Sie die Informationen zum maschinellen Lernen in Qiita grob nach Methoden

5. Vorhersage anhand von Testdaten

Verwenden Sie das erstellte Modell und machen Sie Vorhersagen mit Testdaten.

Ein Beispiel mit scikit-learn (Fortsetzung des obigen Codes):

liner_reg_sample.py


#Testdaten
x_test = x_data[:71]
y_test = y_data[:71]

#Prognose
pred = reg.predict(x_test)

#Entscheidungskoeffizient
print('score:', reg.score(x_test, y_test))
>>> score: 0.714080213722

6. Überprüfung

Überprüfen Sie, wie genau die Vorhersagen in den Testdaten sind. Validieren Sie mit der für jedes Modell geeigneten Bewertungsskala.

Bewertungsskala

Einstufung

Geben Sie diese in scikit-learn Genauigkeitscore und Klassifizierungsbericht aus. /stable/modules/generated/sklearn.metrics.classification_report.html).

Rückkehr

Geben Sie diese an scikit-learn mean_absolute_error und mean_squared_error aus. /stable/modules/generated/sklearn.metrics.mean_squared_error.html).

Verifikationsverfahren

Ein Beispiel mit scikit-learn (Fortsetzung des obigen Codes):

liner_reg_sample.py


from sklearn.metrics import mean_squared_error
from math import sqrt

#Korrelationskoeffizient
print('corr:', np.corrcoef(y_test.reshape(1, -1), pred.reshape(1, -1))[0, 1])

# RMSE
print('RMSE:', sqrt(mean_squared_error(y_test, pred)))
>>> corr: 0.895912443712
>>> RMSE: 0.6605862235679646

Wenn es visualisiert werden kann, zeichnen Sie es grafisch auf und überprüfen Sie es visuell.

liner_reg_sample.py


plt.scatter(x_test, y_test, color='blue')
plt.plot(x_test, pred, color='red')
plt.show()

ダウンロード.png

Berichterstattung

Notieren Sie, welche Art von Modellierung Sie durchgeführt haben, welche Testdaten Sie verwendet haben und wie genau sie waren. Ich schreibe in Python, also schreibe ich es in Markdown im Jupyter-Notizbuch.

Qiita: Verschiedene Zusammenfassungen zur bequemeren Verwendung von Jupyter Notebook

7. Zurück

Wenn bei der Überprüfung nicht die erforderliche Genauigkeit erreicht wird, sortieren Sie den Fehler aus und befolgen Sie die Anweisungen unter "2. Daten sammeln" oder "3. Daten formen" oder "4. Modell erstellen und lernen". Zurücksenden an. Drehen Sie diesen Zyklus um.

Stichwort

Überlernen

Es passt sich übermäßig an die Trainingsdaten an und die Genauigkeit der Vorhersage für unbekannte Daten wird gering.

Spezialisierte KI / Allzweck-KI

Spezialisierte KI ist KI, die in einem bestimmten Bereich eingesetzt werden kann. Allzweck-KI ist KI, die in vielen verschiedenen Bereichen eingesetzt werden kann. (Es ist wie bei Tetsuwan A * mu) Die meisten AIs sind spezialisierte AIs.

Ende

Da die Lernsitzung nur eine Übersicht war, habe ich Qiita in der Hoffnung gepostet, dass ich Wissen mit ein paar zusätzlichen Informationen teilen kann. Ich wäre Ihnen dankbar, wenn Sie auf Fehler hinweisen könnten.

Recommended Posts

Super Einführung in das maschinelle Lernen
Einführung in das maschinelle Lernen
Eine Einführung in das maschinelle Lernen
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Einführung in das maschinelle Lernen Schreiben von Notizen
Einführung in die Bibliothek für maschinelles Lernen SHOGUN
Einführung in das maschinelle Lernen: Funktionsweise des Modells
Eine Einführung in Python für maschinelles Lernen
[Python] Einfache Einführung in das maschinelle Lernen mit Python (SVM)
Eine Einführung in maschinelles Lernen für Bot-Entwickler
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
[Lernmemorandum] Einführung in vim
Eine super Einführung in Linux
Einführung in Deep Learning ~ Lernregeln ~
Tiefe Stärkung des Lernens 1 Einführung in die Stärkung des Lernens
Einführung in Deep Learning ~ Backpropagation ~
Maschinelles Lernen
Einführung in das maschinelle Lernen mit Simple Perceptron
[Super Einführung] Maschinelles Lernen mit Python - Von der Umgebungskonstruktion bis zur Implementierung von Simple Perceptron-
Einführung in das tiefe Lernen ~ Funktionsnäherung ~
Einführung in Deep Learning ~ Codierungsvorbereitung ~
Einführung in Deep Learning ~ Dropout Edition ~
Einführung in Deep Learning ~ Forward Propagation ~
Einführung in Deep Learning ~ CNN Experiment ~
Sammeln von Daten zum maschinellen Lernen
Einführung in das maschinelle Lernen mit scikit-learn-Von der Datenerfassung bis zur Parameteroptimierung
Supereinführung des maschinellen Lernens Probabilistisches Modell und wahrscheinlichste Schätzung
Maschinelles Lernen mit Nogisaka 46 und Keyakizaka 46 Teil 1 Einführung
Einführung in MQTT (Einführung)
Einführung in Scrapy (1)
Einführung in Scrapy (3)
[Einführung] Stärkung des Lernens
Erste Schritte mit Supervisor
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
Einführung in Tkinter 1: Einführung
Pytorch super Einführung
Notieren Sie die Schritte zum Verständnis des maschinellen Lernens
Python Bit Arithmetic Super Einführung
Einführung in die Python-Grundlagen des maschinellen Lernens (unbeaufsichtigtes Lernen / Hauptanalyse)
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Einführung in Deep Learning ~ Falten und Pooling ~
Vor der Einführung in das maschinelle Lernen. ~ Techniken, die für anderes maschinelles Lernen als maschinelles Lernen erforderlich sind ~
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 10 Einführung in Cupy
Einführung in PyQt
Einführung in Scrapy (2)
[Linux] Einführung in Linux
Einführung in Scrapy (4)
Einführung in discord.py (2)
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Einführung in das maschinelle Lernen - Hard Margin SVM Edition-
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 9 Einführung in das Scikit-Lernen
Einführung in TensorFlow - Erläuterung der Begriffe und Konzepte des maschinellen Lernens
Beispiel für maschinelles Lernen
Linux-Befehle zum Erinnern
Eine super Einführung in Linux
Machen Sie es mit der Syntax einfach
Super Einführung in das maschinelle Lernen
Lassen Sie uns die kostenlose "Einführung in Python für maschinelles Lernen" bis zum 27. April online stellen
Python-Anfänger veröffentlichen Web-Apps mit maschinellem Lernen [Teil 2] Einführung in explosives Python !!
Versuchen Sie, den Strombedarf durch maschinelles Lernen vorherzusagen