Tool MALSS (Basic), das maschinelles Lernen in Python unterstützt

Unterstützt Python3 (25.01.2016) </ font>

Ich habe ein Tool namens MALSS (Machine Learning Support System) zur Unterstützung des maschinellen Lernens in Python (PyPI/[GitHub](https: /) erstellt. /github.com/canard0328/malss)). Letztes Mal hat über die Einführungsmethode geschrieben, diesmal geht es also um die grundlegende Verwendung.

Paketimport

Importieren Sie zunächst MALSS.

python


from malss import MALSS

Datenaufbereitung

Bereiten Sie als Nächstes die Daten vor. Dieses Mal werden wir Herzkrankheitsdaten verwenden, die im Buch hier verwendet werden. Da die AHD-Spalte angibt, ob eine Herzerkrankung vorliegt oder nicht, besteht der Zweck darin, dies vorherzusagen. In diesen Daten enthalten die erklärenden Variablen (für die Vorhersage verwendete Werte) kategoriale Variablen (nicht numerische Werte). Die Pandas-Bibliothek wird zum Laden verwendet. Wenn es sich nur um numerische Daten handelt, können Sie die Loadtxt-Methode von numpy verwenden.

python


import pandas as pd
data = pd.read_csv('http://www-bcf.usc.edu/~gareth/ISL/Heart.csv',
                   index_col=0, na_values=[''])
y = data['AHD']
del data['AHD']

Analyse

Wir werden es endlich analysieren. Sie müssen lediglich eine Instanz erstellen und die Anpassungsmethode ausführen. Abhängig von der Datenmenge und den Maschinenspezifikationen dauert die Analyse einige Minuten bis einige zehn Minuten.

python


cls = MALSS('classification',
            shuffle=True, standardize=True, n_jobs=3,
            random_state=0, lang='jp', verbose=True)
cls.fit(data, y, 'result_classification')

Das einzige erforderliche Argument, das an den Konstruktor MALSS übergeben werden muss, ist die Analyseaufgabe. ** Diesmal handelt es sich um eine "Klassifizierung", da es sich um eine Klassifizierungsaufgabe (Identifizierungsaufgabe) handelt, die das Etikett vorhersagt (Ja / Nein). Es ist "Regression" in der Regressionsaufgabe, die den Wert vorhersagt. ** ** **

Die anderen Optionen müssen nicht eingegeben werden, da die Anfangswerte festgelegt sind.

  • shuffle * mischt Daten beim maschinellen Lernen (Anfangswert: True)
  • standardize * standardisiert die Daten (jede Spalte hat einen Durchschnitt von 0 und eine Verteilung von 1) (Anfangswert: True),
  • Bewertung * ist der Name des Bewertungsindex oder die Bewertungsfunktion (Anfangswert: Keine (Klassifizierung: F1-Wert, Regression: MSE)),
  • n_jobs * ist die Anzahl der parallelen Ausführungen (Anfangswert: 1),
  • random_state * ist der Keim, wenn beim maschinellen Lernen Zufallszahlen verwendet werden (Anfangswert: 0).
  • lang * ist die im Analysebericht verwendete Sprache (Anfangswert: en (Englisch)),
  • ausführlich * gibt an, ob der Fortschritt an die Konsole ausgegeben werden soll (Anfangswert: True).

Die Argumente der Anpassungsmethode sind Eingabedaten (Merkmalsmenge / erklärende Variable), Ausgabedaten (Zielvariable) und Ausgabezielverzeichnis (Standard: Keine). Wenn das Ausgabezielverzeichnis übergeben wird, wird der Analyseergebnisbericht ausgegeben.

Überprüfen Sie den Bericht

Öffnen Sie die Datei report.html in dem durch ↑ angegebenen Verzeichnis im Browser. (* Hinweis: Der Inhalt des Screenshots stammt möglicherweise aus einer älteren Version.)

Ergebnis der Analyse

分析結果.png

Mehrere Algorithmen für maschinelles Lernen werden automatisch entsprechend der Analyseaufgabe und den Daten (hauptsächlich der Größe) ausgewählt, und die Kreuzvalidierungsbewertung jedes Algorithmus wird angezeigt. Wenn wir uns diese Tabelle ansehen, können wir sehen, dass die Punktzahl für diese Daten am höchsten ist, wenn die logistische Regression verwendet wird. Bei der Analyse des maschinellen Lernens wird eine Technik namens "Kreuzverifizierung" verwendet, um zu verhindern, dass sich das Modell nur an bestimmte Daten anpasst. Dies wird unten erläutert, und Links zu Erklärungsseiten (Wikipedia usw.) werden für technische Begriffe bereitgestellt. Sobald Sie sich daran gewöhnt haben, können Sie diesen Kommentar ausblenden, indem Sie die ausführliche Option auf False setzen.

Datenübersicht

データ概要.png

Als nächstes wird die Zusammenfassung der Daten angezeigt. MALSS verfügt über eine kategoriale Datenkonvertierungsfunktion mit ** Dummy-Variablen ** und eine ** Funktion zur Interpolation fehlender Werte **, die ebenfalls erläutert werden.

Analyseergebnisse nach Algorithmus

Danach werden die Analyseergebnisse für jeden Algorithmus angezeigt.

Ergebnis der Parametereinstellung

SVM.png

Die Leistung der meisten Algorithmen für maschinelles Lernen ändert sich durch Anpassen der Parameter. Wenn mehrere Parameter angepasst werden müssen, verwenden Sie ** Rastersuche **, um die Parameter zu optimieren. Wie im Kommentarteil beschrieben, muss die Breite geändert werden, wenn der optimale Parameter (roter Teil) der Wert am Ende der Parameteränderungsbreite ist (die Änderungsmethode wird beim nächsten Mal beschrieben). Im Fall dieser Abbildung ist es gut, den Fall zu betrachten, in dem der Parameter * C * 1 ist.

Für Details zu den Parametern springen Sie über den Link des Algorithmusnamens zum Scikit-Lerndokument.

Klassifizierungsergebnis

分類結果.png

Wenn bei der Klassifizierungs- / Identifizierungsaufgabe das Verhältnis der Etiketten verzerrt ist, ist es möglicherweise nicht angebracht, einfach mit Genauigkeit zu bewerten (das Verhältnis, in dem die Vorhersage korrekt war) (z. B. 1% der Daten mit AHD ist Ja). In diesem Fall beträgt die Genauigkeit des Modells, das immer Nein vorhersagt, 99%. In solchen Fällen ist der ** F-Wert ** (F1-Wert) ein geeigneterer Bewertungsindex.

Lernkurve

学習曲線.png

Schließlich wird die ** Lernkurve ** angezeigt. Die Lernkurve zeigt, wie sich die Bewertungspunktzahl ändert, wenn die Datengröße geändert wird. Wenn Sie sich die Lernkurve ansehen, können Sie sehen, was das Modell tut (** hohe Varianz ** oder ** hohe Verzerrung **) und erhalten Hinweise, wie Sie die Leistung verbessern können. ..

Modulbeispielausgabe

Selbst wenn es automatisch analysiert werden kann, ist es bedeutungslos, es sei denn, es kann in das System integriert werden. MALSS kann ein Beispielmodul unter Verwendung des Lernalgorithmus mit der besten Bewertungspunktzahl ausgeben.

python


cls.generate_module_sample('sample_code.py')

Die Ausgabe des Ausgabemoduls kann mit Anpassung trainiert und mit Vorhersage vorhergesagt werden, ähnlich dem maschinellen Lernalgorithmus von Scicit-Learn.

python


from sample_code import SampleClass
from sklearn.metrics import f1_score

cls = SampleClass()
cls.fit(X_train, y_train)  # X_train, y_Zug ist Trainingsdaten (genauso wie der an MALSS übergebene ist OK)
pred = cls.predict(X_test)  # X_Test ist unbekannte Dateneingabe in das reale System
print f1_score(y_test, pred)

Eigentlich denke ich nicht, dass das Modell jedes Mal trainiert wird, deshalb denke ich, dass es besser ist, das trainierte Modell mit Gurke zu entsorgen.

abschließend

Ich habe die grundlegende Verwendung von MALSS erklärt. Wir wären Ihnen dankbar, wenn Sie uns Ihre Meinung zu schwer verständlichen Dingen mitteilen könnten.

Nächstes Mal schreibt über die angewandte Verwendung, z. B. das Hinzufügen von Algorithmen selbst.

Recommended Posts

Tool MALSS (Basic), das maschinelles Lernen in Python unterstützt
Tool MALSS (Anwendung), das maschinelles Lernen in Python unterstützt
MALSS (Einführung), ein Tool, das maschinelles Lernen in Python unterstützt
Python: Vorverarbeitung beim maschinellen Lernen: Übersicht
[Python] Techniken, die häufig beim maschinellen Lernen verwendet werden
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
[Python] Speichern von Lernergebnissen (Modellen) beim maschinellen Lernen
Python: Vorverarbeitung beim maschinellen Lernen: Datenkonvertierung
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Grundlegende Sortierung in Python
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex2 (Logistic Return)
Coursera Machine Learning Challenge in Python: ex1 (lineare Regression)
Zusammenfassung des grundlegenden Ablaufs des maschinellen Lernens mit Python
Versuchen Sie, das Modell des maschinellen Lernens in das Python-Paket aufzunehmen
Maschinelles Lernen in Delemas (Praxis)
Mit Python erlerntes Refactoring (Basic)
Maschinelles Lernen mit Python! Vorbereitung
Python Machine Learning Programming> Schlüsselwörter
Wird in EDA für maschinelles Lernen verwendet
Beginnend mit maschinellem Python-Lernen
Beachten Sie, dass es Python 3 unterstützt
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)
Implementieren Sie das Stacking-Lernen in Python [Kaggle]
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Scraping mit Selen in Python (Basic)
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex5 (Anpassung der Regularisierungsparameter)
Automatisieren Sie Routineaufgaben beim maschinellen Lernen
Grundlegendes maschinelles Lernverfahren: ④ Klassifikatorlernen + Ensemble-Lernen
[Python] Grundkenntnisse in AtCoder
In Python implementierte Widrow-Hoff-Lernregeln
Klassifikation und Regression beim maschinellen Lernen
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Maschinelles Lernen in Delemas (Datenerfassung)
Implementierte Perceptron-Lernregeln in Python
Vorverarbeitung beim maschinellen Lernen 2 Datenerfassung
Random Seed Research im maschinellen Lernen
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Vorverarbeitung beim maschinellen Lernen 4 Datenkonvertierung
Grundlegendes maschinelles Lernverfahren: ② Daten vorbereiten
Beachten Sie, dass ich den Algorithmus des maschinell lernenden Naive Bayes-Klassifikators verstehe. Und ich habe es in Python geschrieben.
Coursera Machine Learning Challenge in Python: ex6 (Anpassen von SVM-Parametern)
Coursera Machine Learning Challenge in Python: ex7-1 (Bildkomprimierung mit K-bedeutet Clustering)
Python: Vorverarbeitung beim maschinellen Lernen: Umgang mit fehlenden / Ausreißern / unausgeglichenen Daten
Python & Machine Learning Study Memo: Vorbereitung der Umgebung
Verstärken Sie Bilder für maschinelles Lernen mit Python
Verwenden Sie die API-Gruppe A3RT für maschinelles Lernen aus Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Ich habe Python 3.5.1 installiert, um maschinelles Lernen zu studieren
Warum Python für maschinelles Lernen ausgewählt wird
"Python Machine Learning Programming" - Zusammenfassung (Jupyter)
[Shakyo] Begegnung mit Python zum maschinellen Lernen
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
[Python] Wenn ein Amateur mit dem maschinellen Lernen beginnt
[Python] Webanwendungsdesign für maschinelles Lernen
Erstellen einer Umgebung für Python und maschinelles Lernen (macOS)
Technologie, die Python Descriptor #pyconjp unterstützt
Eine Einführung in Python für maschinelles Lernen
Python & Machine Learning Study Memo ③: Neuronales Netz