[PYTHON] Überblick über maschinelle Lerntechniken, die aus Scikit-Learn gelernt wurden

Letztes Mal habe ich in Geschichte der Analyse von Zeitreihendaten von Aktien ein wenig über maschinelles Lernen in der zweiten Hälfte gesprochen. Heute werden wir auf die Bibliothek für maschinelles Lernen scikit-learn eingehen.

In Bezug auf Scikit-Learn erwähnte ich Einfaches Clustering-Beispiel und Support Vector Machine. items / 33231bf23d40d1c1f344), Probleme mit dem Clustering lösen, TF-IDF berechnen ), Visualisierung des Regressionsmodells, Clustering by DBSCAN Ich werde jedoch die Funktionen der Bibliothek neu organisieren.

Maschinelles Lernen hat das Bild, die schwierige Mathematik voll auszunutzen. Wenn Sie jedoch eine hochgradig vollständige Bibliothek verwenden, können Sie sie verwenden, ohne die Methode des maschinellen Lernens selbst zu implementieren. Natürlich ist es notwendig, den Inhalt der Methode zu verstehen, aber da es eine Bibliothek namens scikit-learn gibt, die de facto als Tatsache bezeichnet werden kann, denke ich, dass es besser ist, damit zu beginnen.

Ich habe diese Geschichte in vorheriger geschrieben, aber der größte Vorteil der Verwendung von Python hängt mit wissenschaftlichen Berechnungen und Datenanalysen wie Statistik und maschinellem Lernen zusammen. Die Bibliothek ist sehr reichhaltig. Es gibt sehr gute Bibliotheken namens NumPy und SciPy für numerische Berechnungen im Allgemeinen, Pandas für den Umgang mit Datenrahmen und Matplotlib für die Visualisierung. Der Versuch, dasselbe in einer anderen Sprache (wie Ruby oder Scala) zu tun, kann eine entmutigende Aufgabe sein oder fast unmöglich, daher ist dies wahrscheinlich keine Option. Es gibt eine andere Sprache für Statistiken, R, aber ich denke, dass Python als Sprache vollständiger ist, da es auch eine allgemeine Sprache ist und R durch mehr vorhandene Assets gekennzeichnet ist. ..

Grundlegendes Verfahren des maschinellen Lernens

Lassen Sie uns zunächst die Prozedur organisieren.

  1. Daten abrufen
  2. Datenvorverarbeitung (Identitätserstellung durch Verarbeitung, Formgebung, Skalierungskonvertierung usw.)
  3. Methodenauswahl
  4. Parameterauswahl
  5. Modelltraining
  6. Modellbewertung
  7. Abstimmung (Schritte 3 bis 6 wiederholen)

Das grundlegende Verfahren ist wie oben.

Methodenauswahl

Das Beste, was Sie mit Scikit-Learn tun können, ist, sich den Spickzettel anzusehen.

ml_map.png

Das Original gehört zur Oberfamilie.

Choosing the right estimator http://scikit-learn.org/stable/tutorial/machine_learning_map/

Dies ist nützlich, da Sie von hier aus zur Erklärung der einzelnen Methoden springen können.

Das Folgende ist eine Zusammenfassung dessen, was Sie tun können.

Folgen wir den Funktionen nacheinander.

Einstufung

SVM (Support Vector Machine, lineare Support Vector Machine)

Es hat eine hohe Generalisierungsleistung und kann verschiedene Daten verarbeiten, da es Kernelfunktionen auswählen kann.

K Nachbarschaftsmethode

Es zeichnet sich trotz seiner Einfachheit durch hohe Genauigkeit aus.

Zufälliger Wald

Es hat die Eigenschaften, dass es nicht notwendig ist, Überlernen in Betracht zu ziehen, und es ist einfach, parallele Berechnungen durchzuführen.

Regression

Rückkehr

Es ist eine normale lineare Regression.

Lasso kehrt zurück

Erstellen Sie ein Modell mit wenigen Variablen, gehen Sie jedoch davon aus, dass einige Variablen nicht verwendet werden.

Ridge kehrt zurück

Es ist nicht leicht von multipler Co-Linearität betroffen und hat eine schwächere variable Auswahlfähigkeit als die Lasso-Regression.

SVR

Sie können die Nichtlinearität im Kernel erfassen.

Clustering

K-Durchschnittsmethode (K bedeutet)

Dies ist eine typische Clustering-Methode, bei der die Anzahl der Cluster im Voraus als k angegeben wird. Es ist einfach und schnell.

Gemischte Gaußsche Verteilung (GMM)

Sie können die Wahrscheinlichkeit der Zugehörigkeit zum Cluster ermitteln. Nehmen Sie eine Normalverteilung an.

Mittlere Verschiebung

Eine robuste, nicht parametrische Methode, die die Schätzung der Kerneldichte verwendet. Die von Ihnen festgelegte Kernelbreite (Radius h) bestimmt automatisch die Anzahl der Cluster. Die Kosten sind tendenziell hoch, da der Mittelpunkt berechnet wird, indem ein Kreis mit einem Radius von h nach dem Prinzip der Methode des steilsten Abstiegs für alle Eingabepunkte betrachtet wird.

Diese Methode wird auch auf Situationen wie Bildsegmentierung und Kantenglättung angewendet.

Die Meanshift-Cluster-Analyse mit einer unendlichen Kernbreite h kann auch als k-Mittelungsmethode interpretiert werden.

Dimensionsreduzierung

Hauptkomponentenanalyse (PCA)

Es hat den Vorteil, dass spärliche Matrizen schnell verarbeitet werden können. Nehmen Sie eine Normalverteilung an.

Nicht-negative Matrixfaktor-Zersetzung (NMF)

Es können nur nicht negative Matrizen verwendet werden, es ist jedoch möglicherweise einfacher, Features zu extrahieren.

Sie können auch Linear Discrimination (LDA) und Deep Learning verwenden.

BLAS und LAPACK

Die Bibliothek, von der Scikit-Lernen abhängt. Dies hängt nicht nur vom Scikit-Lernen ab, sondern auch von BLAS und LAPACK für verschiedene numerische Berechnungssoftware wie SciPy und Programme in anderen Sprachen wie C und Fortran. Meistens als Paket in der GNU / Linux-Distribution bereitgestellt. Es ist in einer Vielzahl von Sprachen verfügbar und hat eine lange Geschichte. Daher ist es der De-facto-Standard für die Durchführung linearer algebraischer Operationen auf Computern.

LAPACK ist speziell für simultane lineare Gleichungen, Methode der kleinsten Quadrate, Eigenwertproblem, Singularwertproblem, Matrixzerlegung (LU), Choleskey-Zerlegung, QR-Zerlegung, Singularwertzerlegung, Schur-Zerlegung, verallgemeinerte Schur-Zerlegung und Anzahl der Bedingungen. Es bietet Schätzroutinen, inverse Matrixberechnungen und verschiedene Unterprogramme.

Es gibt verschiedene Implementierungen von BLAS, aber die typischen sind wie folgt.

Wenn Sie sich nicht so sehr für Geschwindigkeit interessieren, werden Sie OpenBLAS wahrscheinlich vorerst verwenden.

Parameterauswahl

Eine Methode namens Kreuzvalidierung oder Rastersuche ist eine Methode zur effizienten Durchführung guter Parameter. Wir werden diese in vollem Umfang nutzen, um das Lernen und die Bewertung des Modells zu wiederholen, aber wir werden später darauf zurückkommen.

Zusammenfassung

Dieses Mal haben wir typische Methoden des maschinellen Lernens unter dem Gesichtspunkt der in der Bibliothek für maschinelles Lernen scikit-learn implementierten Methoden zusammengefasst. scikit-learn ist eine sehr reichhaltige und qualitativ hochwertige Bibliothek, daher denke ich, dass Sie es verstehen können, wenn Sie zuerst hier gedrückt halten.

Recommended Posts

Überblick über maschinelle Lerntechniken, die aus Scikit-Learn gelernt wurden
Maschinelles Lernen von Grund auf neu (maschinelles Lernen mit Kaggle)
[Übersetzung] scikit-learn 0.18 Einführung in maschinelles Lernen durch Tutorial scikit-learn
[Maschinelles Lernen] SVM sowohl aus Scikit-Lernen als auch aus Mathematik verstehen
Installation von TensorFlow, einer Bibliothek für maschinelles Lernen von Google
Maschinelles Lernen mit Pokemon gelernt
Techniken im Zusammenhang mit maschinellem Lernen / Klassifizierung
Grundlagen des maschinellen Lernens (Denkmal)
Bedeutung von Datensätzen für maschinelles Lernen
[Maschinelles Lernen] Entscheidungsbäume aus Scikit-Lernen und Mathematik verstehen
[Maschinelles Lernen] Verständnis der logistischen Regression sowohl durch Scikit-Lernen als auch durch Mathematik
Maschinelles Lernen ③ Zusammenfassung des Entscheidungsbaums
SVM versucht maschinelles Lernen mit Scikit-Learn
Python: Vorverarbeitung beim maschinellen Lernen: Übersicht
[Maschinelles Lernen] Verstehen der linearen multiplen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
scikit-learn Verwendung der Zusammenfassung (maschinelles Lernen)
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
Ich habe versucht, die Vorhersage-API des maschinellen Lernmodells von WordPress aus aufzurufen
[Maschinelles Lernen] LDA-Themenklassifizierung mit Scikit-Learn
Notizen vom Anfang von Python 1 lernen
Wie nutzt man maschinelles Lernen für die Arbeit? 02_AI Entwicklungsprojektübersicht
[Python] Techniken, die häufig beim maschinellen Lernen verwendet werden
2020 Empfohlen 20 Auswahlmöglichkeiten für einführende Bücher zum maschinellen Lernen
Algorithmus für maschinelles Lernen (Implementierung einer Klassifizierung mit mehreren Klassen)
Quellcode für die Trennung von Tonquellen (Übungsreihe zum maschinellen Lernen), der mit Python gelernt wurde
[Maschinelles Lernen] Liste der häufig verwendeten Pakete
Lernbericht über das Lesen von "Deep Learning von Grund auf neu"
Notizen vom Anfang von Python 2 lernen
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Ein Memorandum über Methoden, die häufig beim maschinellen Lernen mit Scikit-Learn (für Anfänger) verwendet werden.
Maschinelles Lernen eines jungen Ingenieurs Teil 1
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 1
Beginn des maschinellen Lernens (empfohlene Unterrichtsmaterialien / Informationen)
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Maschinelles Lernen des Sports - Analyse der J-League als Beispiel - ②
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 1
Python & Machine Learning Study Memo ⑤: Klassifikation von Ayame
Numerai Turnier-Fusion von traditionellen Quants und maschinellem Lernen-
[Lernnotiz] Deep Learning von Grund auf ~ Implementierung von Dropout ~
Python & Machine Learning Study Memo Introduction: Einführung in die Bibliothek
Vollständige Offenlegung der beim maschinellen Lernen verwendeten Methoden
Hinweise zum maschinellen Lernen (von Zeit zu Zeit aktualisiert)
Algorithmus für maschinelles Lernen (von der Klassifizierung in zwei Klassen bis zur Klassifizierung in mehreren Klassen)
Lernen von ABC163C Die Grundlagen zur Verbesserung des Rechenaufwands
Liste der Links, die Anfänger des maschinellen Lernens lernen
Über die Entwicklungsinhalte des maschinellen Lernens (Beispiel)
Zusammenfassung der beim maschinellen Lernen verwendeten Bewertungsfunktionen
Analyse der gemeinsamen Raumnutzung durch maschinelles Lernen
Maschinelles Lernen eines jungen Ingenieurs Teil 2
Angemessene Preisschätzung von Mercari durch maschinelles Lernen
Maschinelles Lernen ab 0 für theoretische Physikstudenten # 2
Klassifizierung von Gitarrenbildern durch maschinelles Lernen Teil 2
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Tiefes Lernen durch Implementierung (Segmentierung) ~ Implementierung von SegNet ~
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
Anordnung von selbst erwähnten Dingen im Zusammenhang mit maschinellem Lernen
Kausales Denken mit maschinellem Lernen (Organisation von Methoden des kausalen Denkens)
Grundlegende Visualisierungstechniken, die aus Kaggle Titanic-Daten gelernt wurden
Übersicht und nützliche Funktionen von Scikit-Learn, die auch für Deep Learning verwendet werden können