[PYTHON] Anfänger des maschinellen Lernens versuchen eine lineare Regression

Einführung

Dies ist das dritte Mal im Anschluss. Dieses Mal möchte ich eine lineare Regression durchführen. Wie üblich ist es in Python implementiert, eine detaillierte Erklärung ist nicht möglich. Bitte gehen Sie zu einer anderen Site (lacht). Es fühlt sich an, als würde es chaotisch werden, aber bitte schauen Sie mit warmen Augen zu.

Der Punkt

Die Begriffe sind die folgenden zwei.

Im Fall einer linearen Regression wird für die verteilten Daten eine Linie von "y = Θ_1x + Θ_2" gezeichnet, und das Zeichnen dieser Linie und das Nehmen des Fehlers aus den tatsächlichen Daten wird als durchschnittlicher quadratischer Fehler bezeichnet.

In der Stichprobe ist es wie folgt definiert.

T.dot () ist eine innere Produktfunktion. Sie wird durch die Anzahl der Trainingsdaten (m) geteilt, indem y der tatsächlichen Daten von der Summe der Abschnitte subtrahiert und quadriert wird.

#Kostenfunktion
j = T.sum(T.sqr(t[0] + T.dot(data, t[1:]) - target)) / (2 * m)

Das Bild der Figur ist Weitere Informationen finden Sie in der Implementierungsreihe zum Algorithmus für maschinelles Lernen [Lineare Regression]! !!

Gradientenmethode

Die Gradientenmethode ist eine Methode zum Korrigieren von Θ_1 und Θ_2 von y = Θ_1x + Θ_2 in der Richtung, die korrekter ist.

Der Code lautet wie folgt. Es definiert "T.grad ()", das die gemeinsam genutzte Variable (np.array ([0,0])) mit dem Namen t (= theta = Θ) unterscheidet. Die Funktion des oben definierten mittleren quadratischen Fehlers ist teilweise in Bezug auf Θ1 bzw. Θ2 differenziert. Definieren Sie danach eine Funktion namens "train ()" und aktualisieren Sie den Wert von t nach jeder Ausführung mit "updates = ({})".

#Teilweise Differenzierung
dt = T.grad(cost=j, wrt=t)

#Gradientenmethode(Update von Θ)
train = theano.function(
    inputs  = [],
    outputs = [j],
    updates = ({t: t - (alpha*dt)})
    )

Das Bild ist [4. Gradientenmethode (Methode mit dem steilsten Abstieg)](https://github.com/levelfour/machine-learning-2014/wiki/%E7%AC%AC4%E5%9B%9E ---% E5 % 8B% BE% E9% 85% 8D% E6% B3% 95% EF% BC% 88% E6% 9C% 80% E6% 80% A5% E9% 99% 8D% E4% B8% 8B% E6% B3 Bitte beziehen Sie sich auf% 95% EF% BC% 89)! !!

Probe (Python)

Zeigen Sie mir den Code und legen Sie ihn für die Leute an. Ich benutze eine Bibliothek namens theano für die Implementierung. Wenn Sie das nicht verstehen, bitte gg! Ich wende den Code nicht pro Vorhersage an (ich werde den Code aktualisieren, wenn ich Zeit habe)

# -*- coding: utf-8 -*-

import numpy as np
import theano
import theano.tensor as T

class Regression:

    def __init__(self):
        self.t = None


    def fit(self, data, target, alpha=0.1):
        #Berechnen Sie die Länge der erklärenden Variablen
        if isinstance(data[0], (np.ndarray, np.generic)):
            m = len(data[0])
        else:
            m = len(data)

        #Gemeinsame Variablen
        t = theano.shared(np.zeros(m+1), name='theta')

        #Kostenfunktion
        j = T.sum(T.sqr(t[0] + T.dot(data, t[1:]) - target)) / (2 * m)
        #Teilweise Differenzierung
        dt = T.grad(cost=j, wrt=t)
        #Gradientenmethode(Update von Θ)
        train = theano.function(
            inputs  = [],
            outputs = [j],
            updates = ({t: t - (alpha*dt)})
            )
        #Lernen
        for i in range(100):
            train()


if __name__ == '__main__':

    from sklearn import datasets

    iris = datasets.load_iris()

    reg = Regression()
    reg.fit(data=iris.data, target=iris.target)

Referenz

Die folgende Seite war sehr hilfreich

Recommended Posts

Anfänger des maschinellen Lernens versuchen eine lineare Regression
Lineare Regression des maschinellen Lernens
Maschinelles Lernen: Überwacht - Lineare Regression
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
<Kurs> Maschinelles Lernen Kapitel 1: Lineares Regressionsmodell
Algorithmus für maschinelles Lernen (Zusammenfassung und Regularisierung der linearen Regression)
Logistische Regression beim maschinellen Lernen
EV3 x Python Maschinelles Lernen Teil 2 Lineare Regression
Anfänger des maschinellen Lernens versuchten RBM
Verstehe maschinelles Lernen ~ Ridge Regression ~.
Überwachtes maschinelles Lernen (Klassifikation / Regression)
Versuchen Sie es mit Kaggle leicht maschinell
Stapelvorlage für maschinelles Lernen (Rückgabe)
Algorithmus für maschinelles Lernen (logistische Regression)
Python Scikit-learn Lineare Regressionsanalyse Nichtlineare einfache Regressionsanalyse Maschinelles Lernen
Anfänger des maschinellen Lernens versuchen, einen Entscheidungsbaum zu erstellen
Coursera Machine Learning Challenge in Python: ex1 (lineare Regression)
Versuchen Sie, die Leistung des Modells für maschinelles Lernen / Regression zu bewerten
[Maschinelles Lernen] Lassen Sie uns den Entscheidungsbaum studieren
Zusammenfassung des maschinellen Lernens von Python-Anfängern
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Klassifikation und Regression beim maschinellen Lernen
Maschinelles Lernen
SVM versucht maschinelles Lernen mit Scikit-Learn
Anfänger des maschinellen Lernens versuchen, Naive Bayes zu erreichen (2) - Implementierung
<Für Anfänger> Python-Bibliothek <Für maschinelles Lernen>
Lineare Regression
[Maschinelles Lernen] Versuchen Sie, zufällige Wälder zu studieren
Lineare Regression (für Anfänger) -Code Edition-
Maschinelles Lernen: Überwacht - Lineare Diskriminanzanalyse
Anfänger des maschinellen Lernens versuchen, Naive Bayes (1) - Theorie zu erreichen
[Maschinelles Lernen] Verstehen der linearen einfachen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
[Maschinelles Lernen] Verstehen der linearen multiplen Regression sowohl aus Scikit-Lernen als auch aus Mathematik
Anfänger des maschinellen Lernens nehmen an Courseras Deep Learning-Kurs teil
<Subjekt> Maschinelles Lernen Kapitel 3: Logistisches Regressionsmodell
Erste Schritte für Anfänger des maschinellen Lernens (KI)
Maschinelles Lernen mit Python (2) Einfache Regressionsanalyse
<Kurs> Maschinelles Lernen Kapitel 2: Nichtlineares Regressionsmodell
Aktienkursprognose mit maschinellem Lernen (Return Edition)
[Maschinelles Lernen] Regressionsanalyse mit Scicit Learn
[Python] [Maschinelles Lernen] Anfänger ohne Wissen versuchen vorerst maschinelles Lernen
(Maschinelles Lernen) Ich habe versucht, die Bayes'sche lineare Regression bei der Implementierung sorgfältig zu verstehen
[Memo] Maschinelles Lernen
Klassifikation des maschinellen Lernens
Beispiel für maschinelles Lernen
Empfohlene Studienreihenfolge für Anfänger des maschinellen Lernens / Deep Learning
Versuchen Sie, den Strombedarf durch maschinelles Lernen vorherzusagen
Liste der Links, die Anfänger des maschinellen Lernens lernen
Versuchen Sie es mit dem Jupyter Notebook von Azure Machine Learning
[Für Anfänger] Einführung in die Vektorisierung beim maschinellen Lernen
Zusammenfassung des Lernprogramms für maschinelles Lernen
Maschinelles Lernen Über Overlearning
Lineare Regression mit Statistikmodellen
Maschinelles Lernen ⑤ AdaBoost-Zusammenfassung
Maschinelles Lernen: Betreut --AdaBoost
Coursera-Herausforderungen beim maschinellen Lernen in Python: ex2 (Logistic Return)
Versuchen Sie, den Wechselkurs (FX) mit nicht tiefem maschinellem Lernen vorherzusagen
Maschinelles Lernen unterstützt Vektormaschine
Maschinelles Lernen studieren ~ matplotlib ~