[PYTHON] Automatisieren Sie Routineaufgaben beim maschinellen Lernen

Bei der Verwendung von maschinellem Lernen ist viel Arbeit erforderlich, angefangen bei der Datenvorverarbeitung über die Auswahl des geeigneten Modells bis hin zur Optimierung der Parameter usw. Nicht wenige Teile dieser Arbeit sind jedoch Routine. Apropos Vorverarbeitung: Die Verarbeitung wie das Normalisieren numerischer Daten und das Konvertieren kategorialer Variablen in 0/1-Merkmalsmengen (Dummy-Variablenkonvertierung) ist die Verarbeitung, die vorerst ausgeführt werden muss. Natürlich ist das Advanced Feature Quantity Engineering eine andere Geschichte, aber es gibt oft Szenen, in denen Sie schnell Routinearbeiten ausführen möchten, wenn Sie Daten haben und sehen, wie genau das Basismodell vorerst ist. Da ist einer.

Aus diesem Grund haben wir einen Mechanismus entwickelt, um solche Arbeiten zu automatisieren. Der Name ist Karura.

chakki-works/karura

karura_concept.png

Wie in dieser Abbildung gezeigt, besteht das Konzept darin, eine Reihe von Routineaufgaben beim Erstellen eines Modells zu automatisieren. Wie in der Abbildung gezeigt, wird es erstellt, indem die Funktionen von scicit-learn voll genutzt werden. Ich möchte diesen Punkt auch in diesem Artikel vorstellen.

Karura-Architektur

Karura ist ein Mechanismus zum Aufbau eines Prozesses durch Stapeln von Prozessen, die als Einsicht bezeichnet werden. Insight ist eine Sammlung von zwei Prozessen: "Wann" und "Was ist zu tun?".

insight.png

Beispiel: In NAFrequencyCheckInsight in einer Spalte "wenn NA xx% oder mehr beträgt". Ein Prozess wie "Spalte löschen" ist implementiert. Natürlich ist es hier möglich, den Prozess interaktiv einzufügen, da von Fall zu Fall entschieden wird, ob die Zeile gelöscht werden soll oder nicht.

Insight ist in Typen wie Vorverarbeitung, Merkmalsauswahl und Modellkonstruktion unterteilt, und die Reihenfolge, in der sie angewendet werden, ändert sich je nach Typ (bei derselben Art der Verarbeitung werden sie in der Reihenfolge angewendet, in der sie hinzugefügt wurden). Diese Reihenfolge ist im Insight Index (https://github.com/chakki-works/karura/blob/master/karura/core/insight.py#L61) definiert.

Die endgültige Implementierung wird so aussehen.

stack_insights.png

Natürlich können Sie jeden Einblick verwenden und Ihren eigenen Einblick erstellen (Einblick. Kann durch Erben erstellt werden).

Sobald ein Prozess auf diese Weise erstellt wurde, kann er für verschiedene Daten wiederverwendet werden. Da das erstellte Modell in ein Vorhersagemodell konvertiert werden kann, kann es sofort in eine API konvertiert werden.

Wir haben ein einfaches Jupyter-Notizbuch vorbereitet. Wenn Sie also wissen möchten, wie Sie es verwenden, lesen Sie es bitte.

karura_notebook_demo

Einbau in Werkzeuge

Karura soll in Geschäftsanwendungen integriert werden und kann mit den folgenden Plattformen verknüpft werden.

Zusammenarbeit mit Slack

Sie können Karura als Slack-Bot verwenden.

karura_as_slackbot.PNG (Übrigens unterstützt es mehrere Sprachen und es ist derzeit möglich, Japanisch / Englisch einzustellen.)

Wenn Sie als Slack-Bot verwendet werden, laden Sie eine Datendatei wie csv und karura hoch, um die Analyse zu starten (der Analyseprozess ist wie oben beschrieben vordefiniert). Wenn für die Analyse eine Bestätigung erforderlich ist, erfolgt die Bestätigung interaktiv ([Wenn Sie "Insight" definieren und "Automatisch" auf "Falsch" setzen, wird auf die Bestätigung gewartet](https :: //github.com/chakki-works/karura/blob/master/karura/core/insight.py#L13)).

Darüber hinaus positioniert Karura es als wichtige Funktion, den Benutzern die Punkte beizubringen, die bei der Analyse solcher Daten bestätigt werden müssen. Dies liegt daran, dass die Kenntnis der Daten für die Interpretation der Vorhersageergebnisse des konstruierten Modells unabdingbar ist.

Daher verwenden wir in der Karura ein Modell, das Erklärungskraft garantiert. Wir verwenden auch ein leicht trainiertes Modell, um den schnellstmöglichen Verbesserungszyklus sicherzustellen. Einfach gesagt, ich verwende kein tiefes Modell. Da der Zweck von Karura darin besteht, "Routinearbeiten zu automatisieren und schnell zu überprüfen", wird der Punkt, an dem Zeit für die Erstellung eines hochpräzisen Modells benötigt wird, zunächst als Funktion gestrichen. Durch das Erstellen eines "einfachen und schnellen" Modells verwende ich es als Werkzeug, um zu erkennen, dass die Genauigkeit nicht so erreicht wird, wie sie ist, und dass ich Datenelemente hinzufügen und leere Daten richtig eingeben muss.

Informationen zum Eingrenzen auf diese Funktionen finden Sie bei Interesse in den folgenden Materialien.

Drei Säulen zur Nutzung des maschinellen Lernens ~ Notwendigkeit pädagogischer Werkzeuge für maschinelles Lernen ~

Zusammenarbeit mit Kintone

Es kann auch in kintone integriert werden. Diese Plattform erleichtert das Erstellen von Geschäftsanwendungen. Sie können ganz einfach versuchen, ein Modell mithilfe der Daten in der mit kintone erstellten App zu erstellen.

karura_on_kintone.PNG

Damit ist die Analyse abgeschlossen. Wenn Sie das Plug-In in der analysierten App installieren, können Sie auch den vorhergesagten Wert für Karura eingeben. Ich habe diesen Punkt schon einmal in die Hand genommen. Wenn Sie also interessiert sind, probieren Sie es bitte aus.

Darüber hinaus ist es selten, dass die Daten in der Geschäftsanwendung so analysiert werden können, wie sie sind, und sie funktionieren nicht. Tatsächlich ist die Genauigkeit nicht so hoch, und wir werden mit einer solchen Prüfung fortfahren, welche Art von Gegenständen schlecht sind und welche Art von Gegenständen hinzugefügt werden sollten.

Da es schwierig ist, solche Arbeiten an der Kintone-App durchzuführen, ist sie mit einer Batch-Download-Funktion für tatsächliche Werte und Vorhersageergebnisse sowie einer Neulernfunktion durch Hochladen von Dateien ausgestattet.

image_720.png

Auf diese Weise können Sie verschiedene Hypothesen zu Ihren Daten testen.

Karura-Implementierung

Der Inhalt von Karura wird unter voller Nutzung von Scikit-Learn erstellt.

Die gesamte Verarbeitung ist in Pipeline zusammengefasst, um eine prädiktive API zu erstellen.

Maschinelles Lernen endet nicht mit einem Modell mit guter Genauigkeit und ist bedeutungslos, wenn es nicht verwendet wird. Und natürlich ist es notwendig, vorverarbeitete Daten in das erstellte Modell einzugeben, und da die vorhergesagten Werte normalisiert und indiziert sind, ist es notwendig, eine inverse Konvertierung durchzuführen.

Mit anderen Worten, es wird eine API, die nur verwendet werden kann, indem das Modell mit "All Preprocessing" und "Inverse Conversion of Label" belegt wird. Das Modell ist genau! Obwohl ich darüber nachdenke, ist es oft entmutigend, die akkumulierte Vorverarbeitung bis zu diesem Punkt zu sehen und zu fragen: "Ist es möglich, all dies zu implementieren und an das Modell weiterzugeben?"

Wenn in Karura der Prozess der Umwandlung der zum Zeitpunkt der Analyse verwendeten Erkenntnisse in einen Transformator zur Vorhersage implementiert wird, wird der Prozess zur Vorhersage (Transformator) festgelegt, wenn der Prozess zum Erstellen des Modells (sequentielle Anwendung der Erkenntnisse) festgelegt wird. Wird nacheinander angewendet).

In Numerical Scaling Insight, einem Einblick, der Zahlen normalisiert, [get_transformer](https: // github.com/chakki-works/karura/blob/master/karura/core/insights/numerical_scaling_insight.py#L48) ist implementiert, und Parameter wie Mittelwert und Varianz für die Normalisierung, die während der Analyse gefunden wurden, dienen der Vorhersage. Es wird jetzt von Transformer übernommen (obwohl es tatsächlich von StandardScaler / MinMaxScaler verwaltet wird).

Sklearn.feature_extraction wird noch nicht verwendet, da es derzeit keine natürlichen Sprach- / Bildelemente unterstützt. Dies kann jedoch in Zukunft verwendet werden.

Karura ist auf GitHub in der Entwicklung, also hoffe ich, dass Sie es nutzen werden!

chakki-works/karura (Es wird ermutigend sein, wenn Sie mir einen Stern m (_ _) m geben)

Recommended Posts

Automatisieren Sie Routineaufgaben beim maschinellen Lernen
Maschinelles Lernen in Delemas (Praxis)
Wird in EDA für maschinelles Lernen verwendet
Klassifikation und Regression beim maschinellen Lernen
Maschinelles Lernen
Maschinelles Lernen in Delemas (Datenerfassung)
Python: Vorverarbeitung beim maschinellen Lernen: Übersicht
Vorverarbeitung beim maschinellen Lernen 2 Datenerfassung
Random Seed Research im maschinellen Lernen
Vorverarbeitung beim maschinellen Lernen 4 Datenkonvertierung
[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
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Beispiel für maschinelles Lernen
Datenversorgungstricks mit deque beim maschinellen Lernen
Vollständige Offenlegung der beim maschinellen Lernen verwendeten Methoden
Zusammenfassung der beim maschinellen Lernen verwendeten Bewertungsfunktionen
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Erstellen Sie mit Python eine interaktive Umgebung für maschinelles Lernen
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Tool MALSS (Anwendung), das maschinelles Lernen in Python unterstützt
Logistische Regression beim maschinellen Lernen
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex2 (Logistic Return)
Tool MALSS (Basic), das maschinelles Lernen in Python unterstützt
Maschinelles Lernen unterstützt Vektormaschine
Über das Testen bei der Implementierung von Modellen für maschinelles Lernen
Maschinelles Lernen studieren ~ matplotlib ~
Lineare Regression des maschinellen Lernens
Memo zum Kurs für maschinelles Lernen
Bibliothek für maschinelles Lernen dlib
Maschinelles Lernen (TensorFlow) + Lotto 6
Coursera Machine Learning Challenge in Python: ex1 (lineare Regression)
Lerne irgendwie maschinelles Lernen
Versuchen Sie, das Modell des maschinellen Lernens in das Python-Paket aufzunehmen
Cross-Entropie zur Überprüfung in Coursera Machine Learning Woche 2 Aufgaben
Bibliothek für maschinelles Lernen Shogun
Maschinelles Lernen Kaninchen Herausforderung
Einführung in das maschinelle Lernen
Maschinelles Lernen: k-Nächste Nachbarn
MALSS (Einführung), ein Tool, das maschinelles Lernen in Python unterstützt
Was ist maschinelles Lernen?
[Maschinelles Lernen] Fassen wir die zufällige Gesamtstruktur auf leicht verständliche Weise zusammen
So passen Sie mehrere Bibliotheken für maschinelles Lernen auf einmal an
Das Ergebnis des maschinellen Lernens von Java-Ingenieuren mit Python www
Umfrage zum Einsatz von maschinellem Lernen in realen Diensten
Vorverarbeitung beim maschinellen Lernen 3 Fehlende Wert- / Ausreißer- / Ungleichgewichtsdaten
Coursera-Herausforderungen für maschinelles Lernen in Python: ex7-2 (Primäranalyse)
Modell des maschinellen Lernens unter Berücksichtigung der Wartbarkeit
Maschinelles Lernen mit Pokemon gelernt
Datensatz für maschinelles Lernen
Japanische Vorverarbeitung für maschinelles Lernen
Eine Einführung in das maschinelle Lernen
Techniken im Zusammenhang mit maschinellem Lernen / Klassifizierung