[PYTHON] Implementierung der logistischen Regression mit NumPy

Wenn Sie scikit-learn verwenden, wird es ein Moment sein, aber es ist auch gut, es selbst als Studie zu implementieren.

Im ursprünglichen Artikel waren die Klassifizierung mehrerer Klassen und train_test_split daher nicht möglich

Es wird zu einem Zwei-Klassen-Problem vereinfacht und unter Verwendung der gleichen Daten wie die Trainingsdaten bewertet.

Weitere Informationen finden Sie im folgenden Artikel. Maschinelles Lernen ab Null 4. "Logistische Regression"

from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
X_org = iris.data
y_org = iris.target
#Vereinfachen Sie das Problem (siehe vorherigen Artikel)
idx = [y_org != 2] 
X = X_org[idx][:,:2]
y = y_org[idx]

class LogisticRegression:
    def __init__(self, n_feature=2):
        self.w = np.random.rand(n_feature + 1) #Bias Begriff
        self.eta = 1e-2 #Lernrate
        self.n_iter = 1000 #Anzahl der Parameteraktualisierungen
        self.loss = []
    def fit(self, x, y): #Lernen
        for i in range(self.n_iter):
            self._update(x, y)     
        
    def predict(self, x): #Prognose
        x = np.c_[x,np.ones(len(x))] #Bias Begriff
        return self._forward(x)
        
    def _forward(self, x): #Interne Methode.
        d = np.dot(x, self.w)
        return np.exp(d) / (1 + np.exp(d))
    
    def _diff(self, x, y): #Interne Methode. Berechnen Sie die Differenz zwischen der Ausgabe und der richtigen Antwort.
        diff = self._forward(x) - y
        return diff
    
    def _update(self, x, y): #Interne Methode. Aktualisieren Sie die Parameter einmal.
        x = np.c_[x,np.ones(len(x))] #Bias Begriff
        self.w -= self.eta * np.dot(self._diff(x, y),  x) #Nehmen Sie das innere Produkt und löschen Sie die Abmessung der Anzahl der Proben

lr = LogisticRegression()
lr.fit(X,y) #Lernen
pred = (lr.predict(X) > 0.5).astype(np.int) #Prognose und Bewertung
print (np.mean(pred == y)) #Durchschnittliche Genauigkeitsrate

Als nächstes implementiert dieser Artikel train_test_split. Maschinelles Lernen ab Null 5. "Trainingsdaten und Testdaten"

Recommended Posts

Implementierung der logistischen Regression mit NumPy
Kernel-Regression nur mit Numpy
Logistische Rückgabe
Logistische Regressionsanalyse Selbst erstellt mit Python
Probieren Sie Theano mit Kaggles MNIST-Daten ~ Logistic Return ~ aus
Implementieren Sie mit stan ein zeitdiskretes logistisches Regressionsmodell
Implementierung der logistischen Regression mit Partikelgruppenoptimierungsmethode
Lineare Regression mit Statistikmodellen
Logistische Regression beim maschinellen Lernen
Gleitender Durchschnitt mit Numpy
Regression mit einem linearen Modell
Erste Schritte mit Numpy
Lernen Sie mit Chemo Informatics NumPy
Summencode mit Numpy
Lernen Sie während der Implementierung mit Scipy die Grundlagen der logistischen Regression und des mehrschichtigen Perzeptrons
Versuchen Sie eine Regression mit TensorFlow
Erweitern Sie NumPy mit Rust
Vorsichtsmaßnahmen bei der Durchführung einer logistischen Regression mit Statsmodels
Lösen des Irisproblems mit scikit-learn ver1.0 (logistische Regression)
Ich habe GP mit Numpy geschrieben
CNN-Implementierung mit nur Numpy
Künstliche Datengenerierung mit Numpy
Multiple Regressionsanalyse mit Keras
[Python] Berechnungsmethode mit numpy
Versuchen Sie die Matrixoperation mit NumPy
Ridge kehrt mit Mllib im Pyspark zurück
Animation der Diffusionsgleichung mit NumPy
Schuldenrückzahlungssimulation mit Numpy
Versuchen Sie, XOR mit PyTorch zu implementieren
SMO mit Python + NumPy implementiert
Kleben Sie die Saiten mit Numpy zusammen
Lineare Regressionsmethode mit Numpy
Versuchen Sie, Parfüm mit Go zu implementieren
Behandle numpy Arrays mit f2py
[Python] Lineare Regression mit Scicit-Learn
Verwenden Sie OpenBLAS mit numpy, scipy
Robuste lineare Regression mit Scikit-Learn
Vermeiden Sie die Implementierung nutzloser Funktionen mit Vererbung
Führen Sie eine minimale quadratische Anpassung mit numpy durch.
Logistic Return (für Anfänger) -Code Edition-
Zeichne einen schönen Kreis mit Numpy
Wenden Sie die Einflussfunktion auf die logistische Regression an
Lineare Regression mit Student's t-Verteilung
Ich habe versucht, DeepPose mit PyTorch zu implementieren
Implementieren Sie Keras LSTM Feed Forward mit Numpy
Extrahieren Sie mehrere Elemente mit dem Numpy-Array
Was ist eine mehrjährige logistische Regressionsanalyse?
Sinuswellenvorhersage (Rückkehr) mit Pytorch