Ein Modell, das Vorhersagen macht, indem es die Wahrscheinlichkeit aus mehreren erklärenden Variablen berechnet.
** Eine Art verallgemeinertes lineares Modell **.
Obwohl es den Namen "return" hat, wird es oft für ** "Klassifizierung" ** verwendet.
Zum Beispiel ** 〇 Gewicht = β0 + β1 × Höhe ** (Gewicht ist eine Variable, die einer Normalverteilung folgt)
** ✖ Kleidergröße = β + β1 × Höhe ** (Die Kleidergröße ist eindeutig keine Variable, die einer Normalverteilung folgt.)
Anzahl der verkauften Eiscreme = β0 + β1 × Temperatur ** (Antwortvariable) (linearer Prädiktor) **
"Die Anzahl der verkauften Eiscreme" kann nur positiv sein, die rechte Seite kann jedoch je nach Temperatur negativ sein.
**Deshalb! !! ** **. Führen Sie eine ** Link-Funktion (Protokollfunktion) ** ein, die den Retter sein wird.
** log (Anzahl der verkauften Eiscreme) ** = β0 + β1 × Temperatur
** ✖ Test bestanden / nicht bestanden (1,0) = β0 + β1 × Lernzeit ** Die rechte Seite ist eindeutig kein Ausdruck, der nur 1 oder 0 Werte annimmt.
** ✖ Testdurchlaufrate = β0 + β1 × Lernzeit ** Dies ist jedoch immer noch unzureichend. Die Erfolgsquote sollte zwischen 0 und 1 liegen, jedoch nicht auf der rechten Seite.
Deshalb!! Führen Sie eine ** Link-Funktion (Logit-Funktion) ** ein, die der Retter sein wird.
** log (p / 1-p) = β0 + β1 × Studienzeit ** Wenn dies in die Form von p = 〇 gebracht wird,
** p = 1 / {1 + exp (- (β0 + β1 × Studienzeit))} ** Mit dieser Formel nimmt die rechte Seite einen Bereich von 0 bis 1 an.
Ziel ist es, die ** Parameter β0 und β1 dieser Gleichung zu optimieren.
Betrachten Sie die ** Wahrscheinlichkeitsfunktion **. Der vorhergesagte Wert der n-ten Person ist
【Lösung】 ① Beseitigen Sie die Multiplikation, indem Sie ** logarithmisch ** nehmen. (Kann hinzugefügt werden) (2) Durch Hinzufügen von ** minus ** kann die ** Gradientenabstiegsmethode ** ausgeführt werden. (Weil die Gradientenabstiegsmethode zum Ermitteln des Minimalwerts geeignet ist)
Die obige Gleichung wird als ** Kreuzentropiefehlerfunktion ** bezeichnet.
Der optimale Wert des Parameters wird durch Differenzieren von ** β0 und β1 ** unter Verwendung dieser Funktion ** Gradientenabstiegsmethode ** erhalten!
** Dieses Mal möchte ich anhand des Datensatzes der sklearn-Bibliothek analysieren. ** **.
import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
iris=load_iris()
df=pd.DataFrame(iris.data,columns=iris.feature_names)
df["target"]=iris.target
X=iris.data[50:,2].reshape(-1,1) #Ziel 0~1 von 2,Holen Sie sich nur 2.
y=iris.target[50:]
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
scaler=StandardScaler()#Standardisierung
X_scaled=scaler.fit_transform(X)
X_train,X_test,y_train,y_test=train_test_split(X_scaled,y,random_state=0)
log_reg=LogisticRegression().fit(X_train,y_train)
print(model.coef_) #Anzeige von Regressionsvariablen
print(model.intercept_) #Abschnitt der Regressionsgeraden
print(log_reg.score(X_train,y_train)) #Geben Sie den Entscheidungskoeffizienten aus.
print(log_reg.score(X_test,y_test)) #Geben Sie den Entscheidungskoeffizienten aus.
Recommended Posts