Maschinelles Lernen Eine Geschichte über Menschen, die mit GBDT in GBDT in Python nicht vertraut sind

Aus irgendeinem Grund gab es nicht viele GBDT-Seiten auf Japanisch, also habe ich es geschrieben. Wie der Titel schon sagt, bin ich eine Person, die maschinelles Lernen nicht gut versteht, daher kann ich nicht mit Tsukkomi von geeigneten Leuten umgehen. Bitte beachten Sie. Ich hoffe, es hilft Leuten wie mir, die "ein wenig über maschinelles Lernen wissen, aber nichts wissen, wenn es um fortgeschrittene Geschichten geht".

Was ist GBDT?

Eines des überwachten maschinellen Lernens. Abkürzung für Gradient Boosting Decision Tree. Es gruppiert sich basierend auf SVM-Lehrerdaten. Im Gegensatz zu SVM, einer grundlegenden binären Klassifizierung, können jedoch auch andere Klassen klassifiziert werden. Unterschiede zu anderen Klassifikationen wie Randomforest sind nicht ausreichend erforscht. Es tut uns leid. Ich werde detaillierte Geschichten wie die Theorie weglassen, weil sie von klügeren Leuten zusammengestellt werden. http://www.housecat442.com/?p=480 http://qiita.com/Quasi-quant2010/items/a30980bd650deff509b4

Ich werde es vorerst versuchen

Es gab Artikel zur Lösung des CodeIQ-Problems mit SVM, daher werde ich versuchen, es mit GBDT nachzuahmen.

sample_gbdt.py


# -*- coding: utf-8 -*-
from sklearn.ensemble import GradientBoostingClassifier
import numpy as np

#Trainingsdaten
train_data = np.loadtxt('CodeIQ_auth.txt', delimiter=' ')
X_train = [[x[0], x[1]] for x in train_data]
y_train = [int(x[2]) for x in train_data]

#Testdaten
X_test = np.loadtxt('CodeIQ_mycoins.txt', delimiter=' ')
y_test = np.array([1,0,0,1,1,0,1,1,1,0,0,1,1,0,0,1,0,0,0,1])

clf = GradientBoostingClassifier(n_estimators=100, learning_rate=0.1,
        max_depth=1).fit(X_train, y_train)

print ("Predict ",clf.predict(X_test))
print ("Expected", y_test)
print clf.score(X_test, y_test)

Früher habe ich SVM verwendet, aber ich mache es nur mit GBDT. Diesmal ist es eine binäre Klassifikation. Wenn Sie die Arten von Beschriftungen erhöhen, werden sie anscheinend entsprechend in andere Klassen eingeteilt.

Klicken Sie hier für Ergebnisse

('Predict ', array([1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, 1]))
('Expected', array([1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1]))
0.85

Sie haben an drei Stellen einen Fehler gemacht. .. ..

Parametereinstellung

Werfen wir hier einen Blick auf die sklearn-Seite. Sie müssen es nicht separat betrachten. http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.GradientBoostingClassifier.html Viele Parameter. 15 Stück. Außerdem verstehe ich Englisch nicht gut. Wenn Sie genau hinschauen, ist der Standardwert von max_depth 3. Mein eigenes ist 1. Warum?

Deshalb habe ich es repariert und erneut versucht.

('Predict ', array([1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1]))
('Expected', array([1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1]))
0.95

Es ging hoch. Es ist vorbei. Es ging hoch, aber schließlich habe ich an einer Stelle einen Fehler gemacht. Machen wir weiter und erhöhen max_depth. Zum Beispiel 5

('Predict ', array([1, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0]))
('Expected', array([1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1]))
0.9

Es ging runter ... Ich wusste, dass ich es nicht geben sollte, aber das stimmt. Aber selbst bei Problemen dieser Größenordnung werden die Ergebnisse durch Ändern der Parameter geändert. Ich habe aus erster Hand gelernt, wie wichtig die Parametereinstellung beim maschinellen Lernen ist.

Und diese Parametereinstellung. Ich habe das Gefühl, dass ich ohne ein bisschen mehr Fachwissen nicht gut abschneiden kann. Es scheint schwierig zu sein, es mit Python ein wenig zu bewegen und glücklich zu sein.

Ich werde etwas ernsthafter lernen und von vorne anfangen.

Recommended Posts

Maschinelles Lernen Eine Geschichte über Menschen, die mit GBDT in GBDT in Python nicht vertraut sind
Eine Geschichte über maschinelles Lernen mit Kyasuket
Wie wäre es mit Anaconda zum Erstellen einer maschinellen Lernumgebung mit Python?
Eine Geschichte über die Automatisierung von Online-Mahjong (Jakutama) mit OpenCV und maschinellem Lernen
Impressionen von Personen mit Erfahrung in anderen Sprachen, die Python mit PyQ lernen
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Erstellen Sie eine Python-Umgebung für maschinelles Lernen mit Containern
[Gelöst] Ich habe eine Frage an diejenigen, die mit Python-Mechanisierung vertraut sind.
Was ich über KI / maschinelles Lernen mit Python gelernt habe (1)
Eine Geschichte über die Vorhersage des Wechselkurses mit Deep Learning
Führen Sie eine Pipeline für maschinelles Lernen mit Cloud Dataflow (Python) aus.
Eine Geschichte über das Ausprobieren eines (Golang +) Python-Monorepo mit Bazel
Was ich über KI / maschinelles Lernen mit Python gelernt habe (3)
Erstellen Sie mit Python eine Entwicklungsumgebung für maschinelles Lernen
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python
Was ich über KI / maschinelles Lernen mit Python gelernt habe (2)
MALSS (Einführung), ein Tool, das maschinelles Lernen in Python unterstützt
Eine Geschichte darüber, wie man einen relativen Pfad in Python angibt.
(Hinweis) Eine Geschichte zum Erstellen eines Frage- und Antwortsystems mit Spring Boot und maschinellem Lernen (SVM).
Eine Geschichte über den Wettbewerb mit einem Freund in Othello AI Preparation
Was ich über KI / maschinelles Lernen mit Python gelernt habe (4)
Maschinelles Lernen mit Python! Vorbereitung
Verfahren zur Erstellung der Umgebung für diejenigen, die mit dem Python-Versionsverwaltungssystem nicht vertraut sind
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ②
[Hinweis] Eine Geschichte über den Versuch, eine Klassenmethode mit zwei Unterbalken in der Python 3-Serie zu überschreiben.
Eine Geschichte über einen Amateur, der mit Python (Kivy) einen Blockbruch macht ①
Beginnend mit maschinellem Python-Lernen
Eine Geschichte über den Versuch, private Variablen in Python zu implementieren.
Eine Geschichte über einen Python-Anfänger, der mit dem No-Modul'http.server 'feststeckt.
Eine Geschichte, die mit der Installation der maschinellen Lernbibliothek JAX zusammenhängt
[Tutorial] Erstellen Sie mithilfe von maschinellem Lernen in 30 Minuten einen einzigartigen Ausdrucksextraktor
Eine Geschichte über das Hinzufügen einer REST-API zu einem mit Python erstellten Daemon
Erstellen einer Windows 7-Umgebung für eine Einführung in das maschinelle Lernen mit Python
Personen, die mit Android-Programmen vertraut sind, versuchen die Multithread-Verarbeitung mit Python
Links zu Personen, die gerade mit der Datenanalyse mit Python beginnen
Eine Geschichte über die Entwicklung eines weichen Typs mit Firestore + Python + OpenAPI + Typescript
Untersuchung von PYNQ - Machen wir Deep Learning mit FPGA unter Verwendung von Python-
Python: Vorverarbeitung beim maschinellen Lernen: Übersicht
Die Geschichte der Verwendung von Python reduziert
"Scraping & maschinelles Lernen mit Python" Lernnotiz
Coursera Machine Learning Challenge in Python: ex7-1 (Bildkomprimierung mit K-bedeutet Clustering)
Vulkan berechnet mit Python mit VkInline und denkt über maschinelles Lernen auf der GPU und mehr nach
Erstellen Sie mit dem Python-Anforderungsmodul einen Datensatz mit Anhängen in KINTONE
Ich habe FizzBuzz in Python mit der Support Vector Machine (Bibliothek LIVSVM) geschrieben.
Spiralbuch in Python! Python mit einem Spiralbuch! (Kapitel 14 ~)
Verstärken Sie Bilder für maschinelles Lernen mit Python
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
[Python] Techniken, die häufig beim maschinellen Lernen verwendet werden
Python: Vorverarbeitung beim maschinellen Lernen: Datenerfassung
[Shakyo] Begegnung mit Python zum maschinellen Lernen
Scraping von Websites mit JavaScript in Python
Was ich aus "Erwähnung von Personen, die keine Reaktion mit Slack API gedrückt haben" gelernt habe [Hauptsächlich über json]
Eine Geschichte über Python Pop und Append
Zeichnen Sie mit graphviz eine Baumstruktur in Python 3
[Python] Speichern von Lernergebnissen (Modellen) beim maschinellen Lernen