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.
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.
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.
Um ein neues Notizbuch zu erstellen, wählen Sie im Kombinationsfeld "Neu" auf der linken Seite des Bildschirms den Eintrag "Python [Root]" aus.
Anschließend wird der folgende interaktive Eingabebildschirm angezeigt. Jetzt können Sie codieren.
Geben Sie im Eingabefeld "In []:" den Python-Code ein. Natürlich können Sie mit der Eingabetaste mehrere Zeilen eingeben.
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.
Lassen Sie uns zunächst eine Regressionsanalyse mit den einfachen Daten aus dem vorherigen Blog durchführen. Die Daten waren wie folgt. Das Ergebnis der Regressionslinie war die folgende Gleichung. Dieses Mal werden wir auch die obigen Analyseergebnisse mit scicit-learn überprüfen.
Importieren Sie zunächst die erforderlichen Bibliotheken.
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.
Erstellen Sie als Nächstes eine Instanz des linearen Regressionsmodells und führen Sie den Trainingsprozess mit der Anpassungsfunktion aus.
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.
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.
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.
Sie können bestätigen, dass der erwartete Wert ausgegeben wird.
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.
Das ist alles für diese Geschichte!
Recommended Posts