[PYTHON] [Maschinelles Lernen] Regressionsanalyse mit Scicit Learn

Hallo. Dies ist Hayashi @ Ienter.

Letztes Mal habe ich in Blog über die Regressionsanalyse des mathematischen Ansatzes gesprochen.

In letzter Zeit wird Python zunehmend in den Bereichen statistische Analyse und maschinelles Lernen eingesetzt. Python verfügt über eine leistungsstarke Bibliothek mit mathematischen Operationen und Datenvisualisierungen. Ich denke, das ist einer der Gründe.

Dieses Mal werde ich eine Python-Bibliothek namens "scikit-learn" vorstellen, die häufig beim maschinellen Lernen verwendet wird. Eine sehr mächtige Bibliothek. Lassen Sie uns eine Regressionsanalyse der Beispieldaten aus dem vorherigen Blog in der Bibliothek durchführen.

■ Umgebung einrichten

Installieren Sie das Python-Paket "Anaconda". Mit diesem Paket können Sie Python selbst und Bibliotheken, die häufig in Wissenschaft und Technologie, Mathematik und Datenanalyse verwendet werden, gleichzeitig installieren. Windows / MacOS / Linux-Pakete sind verfügbar. Ich werde dieses Mal die Python-Version 3.5 installieren.

スクリーンショット 2016-08-01 12.39.43.jpg

■ Starten / Vorbereiten der Bearbeitung von Jupyter Notebook

Wenn Sie Anaconda installieren, gibt es auch eine Bibliothek namens "Jupyter Notebook". Es wird installiert. Dieses Mal werden wir dieses Framework verwenden, um fortzufahren.

"Jupyter Notebook" ist übrigens ein Framework, das "IPython" erweitert und Python interaktiv in einer Befehlszeilenumgebung auf eine Browserumgebung ausführen kann.

Erstellen Sie vorerst ein Arbeitsverzeichnis "jupyter_work" und starten Sie von dort aus "Jupyter Notebook".

$ mkdir jupyter_work
$ cd jupyter_work
$ jupyter notebook

Der Browser wird gestartet und Sie sollten einen Bildschirm wie den folgenden sehen.

スクリーンショット 2016-08-01 13.12.04.png


Um ein neues Notizbuch zu erstellen, wählen Sie im Kombinationsfeld "Neu" auf der linken Seite des Bildschirms den Eintrag "Python [Root]" aus. スクリーンショット 2016-08-01 13.08.58.png

Anschließend wird der folgende interaktive Eingabebildschirm angezeigt. Jetzt können Sie codieren. スクリーンショット 2016-08-01 13.15.26.png


■ Grundlegende Bedienung des Jupyter Notebook

Geben Sie im Eingabefeld "In []:" den Python-Code ein. Natürlich können Sie mit der Eingabetaste mehrere Zeilen eingeben. スクリーンショット 2016-08-01 13.29.35.png

Klicken Sie zum Ausführen des Eingabecodes in der Symbolleiste auf "![Screenshot 2016-08-01 13.35.34.png](https://qiita-image-store.s3.amazonaws.com/0/134453/3f3fb05b-7f55-aa8a". Sie können dies tun, indem Sie die Taste "-3a12-25c3158f37e4.png)" drücken oder die Umschalttaste gedrückt halten und die Eingabetaste drücken. スクリーンショット 2016-08-01 13.37.43.png


■ Versuchen Sie eine Regressionsanalyse

Lassen Sie uns zunächst eine Regressionsanalyse mit den einfachen Daten aus dem vorherigen Blog durchführen. Die Daten waren wie folgt. xy012345.png Das Ergebnis der Regressionslinie war die folgende Gleichung. resolved_func.png Dieses Mal werden wir auch die obigen Analyseergebnisse mit scicit-learn überprüfen.


Importieren Sie zunächst die erforderlichen Bibliotheken. Screenshot 2016-08-01 15.25.40.png

numpy ist eine numerische Berechnungsbibliothek. matplotlib ist eine Bibliothek zum Zeichnen von Grafiken. pyplot bietet eine prozedurale Schnittstelle zur objektorientierten Bibliothek von matplotlib. pandas ist eine Bibliothek, die Datenanalysen wie die Tabellenberechnung unterstützt. Dieses Mal verwenden wir ein zweidimensionales Array (Funktion wie eine Excel-Tabelle) namens DataFrame. Darüber hinaus ist sklearn eine Bibliothek für maschinelles Lernen, die die Funktion eines linearen Regressionsmodells namens linear_model verwendet. Die letzte Zeile "% matplotlib inline" ist ein Befehl zum Zeichnen eines Diagramms im Browser.


Bereiten Sie die vorherigen X- und Y-Daten als Daten im DataFrame-Format vor. In statistischer Hinsicht ist X die erklärende Variable und Y die objektive Variable. スクリーンショット 2016-08-01 16.02.10.png


Erstellen Sie als Nächstes eine Instanz des linearen Regressionsmodells und führen Sie den Trainingsprozess mit der Anpassungsfunktion aus. スクリーンショット 2016-08-01 16.06.15.png


Bereiten Sie außerdem die Vorhersagequellendaten (px) vor. px ist ein Array, in dem der Minimalwert (0) und der Maximalwert (5) von X-Daten in Schritten von 0,01 aufgeteilt werden. スクリーンショット 2016-08-01 16.27.03.png

Dieses Mal muss jedoch px, das an die Vorhersagefunktion (Vorhersage) von linear_model übergeben werden soll, aufgrund der Spezifikationen der Funktion das folgende zweidimensionale Array übergeben.

[[0.00],[0.01],[0.02],[0.03].....]

Hier wird [:, np.newaxis] verwendet, um ein eindimensionales Array in ein zweidimensionales Array umzuwandeln.


Ersetzen Sie die Vorhersagequellendaten px durch die Vorhersagefunktion (Vorhersage) und speichern Sie das Vorhersageergebnis in py. Zeichnen Sie diese Daten in ein Diagramm. Zeichnen Sie mit plt.scatter () X und Y der Originaldaten mit roten Punkten und zeichnen Sie das von plt.plot () vorhergesagte Ergebnis mit blauen Geraden von px und py. スクリーンショット 2016-08-01 16.40.53.png


Stellen Sie sicher, dass die Steigung a dieser gezeichneten Geraden und der Abschnitt b der Y-Achse den erwarteten Werten von 1,4 bzw. 2,0 entsprechen. Diese Werte werden in model.coef_ und model.intercept_ gespeichert. スクリーンショット 2016-08-01 16.47.53.png

Sie können bestätigen, dass der erwartete Wert ausgegeben wird.


■ Führen Sie eine Regressionsanalyse mit Beispieldaten von scicit learn durch

Beispieldaten für maschinelles Lernen sind auch in scikit learn verfügbar. Eines der Beispiele sind Bostons Immobilienpreisdaten. Die Originaldaten scheinen sich auf die Website hier zu beziehen. Hier ist der Code, der in den Daten enthalten ist und eine Regressionsanalyse der Korrelation zwischen der Anzahl der Zimmer im gekauften Haus und dem Hauspreis darstellt.

Natürlich können wir sehen, dass der Hauspreis tendenziell steigt, wenn die Anzahl der Zimmer steigt.

スクリーンショット 2016-08-01 18.30.03.png スクリーンショット 2016-08-01 18.30.28.png


Das ist alles für diese Geschichte!

Recommended Posts

[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
Aktienkursprognose mit maschinellem Lernen (Return Edition)
Logistische Regression beim maschinellen Lernen
Lineare Regression des maschinellen Lernens
Lerne irgendwie maschinelles Lernen
Maschinelles Lernen: Überwacht - Lineare Regression
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Verstehe maschinelles Lernen ~ Ridge Regression ~.
Stapelvorlage für maschinelles Lernen (Rückgabe)
Algorithmus für maschinelles Lernen (logistische Regression)
Python-Lernnotiz für maschinelles Lernen von Chainer Kapitel 7 Regressionsanalyse
Anfänger des maschinellen Lernens versuchen eine lineare Regression
Klassifikation und Regression beim maschinellen Lernen
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse
Anwendungsentwicklung mit Azure Machine Learning
Maschinelles Lernen
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
Aktienkursprognose mit maschinellem Lernen (Scikit-Learn)
[Maschinelles Lernen] LDA-Themenklassifizierung mit Scikit-Learn
[Maschinelles Lernen] FX-Vorhersage unter Verwendung des Entscheidungsbaums
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
[Python] Erste Datenanalyse / maschinelles Lernen (Kaggle)
<Kurs> Maschinelles Lernen Kapitel 4: Hauptkomponentenanalyse
Algorithmus für maschinelles Lernen (Zusammenfassung und Regularisierung der linearen Regression)
Vorverarbeitung beim maschinellen Lernen 1 Datenanalyseprozess
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Eine Geschichte über einfaches maschinelles Lernen mit TensorFlow
Datenversorgungstricks mit deque beim maschinellen Lernen
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 2
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
[Python] Datenanalyse, maschinelles Lernen (Kaggle) -Datenvorverarbeitung-
Poisson-Regressionsanalyse
[Maschinelles Lernen] Überwachtes Lernen mithilfe der Kernel-Dichteschätzung Teil 3
[Super Einführung in das maschinelle Lernen] Lernen Sie Pytorch-Tutorials
Analyse der gemeinsamen Raumnutzung durch maschinelles Lernen
Methode der Regressionsanalyse
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Geschichte rund um die Datenanalyse durch maschinelles Lernen
Beispiel für maschinelles Lernen
[Maschinelles Lernen] Extrahieren Sie ähnliche Wörter mechanisch mit WordNet
Kausales Denken mit maschinellem Lernen (Organisation von Methoden des kausalen Denkens)
Was ich über KI / maschinelles Lernen mit Python gelernt habe (1)
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 2
Lernen Sie das kollaborative Filtern zusammen mit Coursera-Materialien für maschinelles Lernen
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex2 (Logistic Return)
Erstellen Sie maschinelle Lernprojekte mit explosiver Geschwindigkeit mithilfe von Vorlagen
Erläuterung des Konzepts der Regressionsanalyse mit Python Teil 1
Was ich über KI / maschinelles Lernen mit Python gelernt habe (3)
Maschinelles Lernen mit Bildern der Kategorie Caffe -1 unter Verwendung eines Referenzmodells
Coursera Machine Learning Challenge in Python: ex1 (lineare Regression)
Site-Zusammenfassung zum Erlernen des maschinellen Lernens mit englischen Videos
Tech-Circle Beginnen wir mit der Anwendungsentwicklung durch maschinelles Lernen (Selbststudium)
Erläuterung des Konzepts der Regressionsanalyse mit Python Extra 1
[Maschinelles Lernen] Textklassifizierung mit dem Transformer-Modell (Aufmerksamkeitsbasierter Klassifikator)
Konstruktionsnotiz für eine maschinelle Lernumgebung von Python