Un modèle qui fait des prédictions en ** calculant la probabilité ** à partir de plusieurs variables explicatives.
** Un type de modèle linéaire généralisé **.
Bien qu'il porte le nom de «retour», il est souvent utilisé pour la ** «classification» **.
-Un modèle linéaire qui peut être utilisé même lorsque la ** variable de réponse ** suit une distribution de probabilité autre que la distribution normale.
Par exemple ** 〇 Poids = β0 + β1 × Taille ** (Le poids est une variable qui suit une distribution normale)
** ✖ Taille des vêtements = β + β1 × hauteur ** (La taille des vêtements n'est clairement pas une variable qui suit une distribution normale)
Nombre de glaces vendues = β0 + β1 × température ** (Variable de réponse) (Prédicteur linéaire) **
«Le nombre de glaces vendues» ne peut être que positif, mais le côté droit peut être négatif en fonction de la température.
**Donc! !! ** ** Introduisez une ** fonction de lien (fonction de journalisation) ** qui sera le sauveur.
** log (nombre de glaces vendues) ** = β0 + β1 × température
** ✖ Test succès / échec (1,0) = β0 + β1 × Temps d'étude ** Le côté droit n'est clairement pas une expression qui ne prend que 1 ou 0 valeurs.
** ✖ Taux de réussite au test = β0 + β1 × Temps d'étude ** Cependant, cela reste insuffisant. Le taux de réussite doit être compris entre 0 et 1, mais pas du côté droit.
Donc!! Introduisez une ** fonction de lien (fonction logit) ** qui sera le sauveur.
** log (p / 1-p) = β0 + β1 × durée de l'étude ** Si cela prend la forme de p = 〇,
** p = 1 / {1 + exp (- (β0 + β1 × temps d'étude))} ** Avec cette formule, le côté droit prendra une plage de 0 à 1.
Le but est d'optimiser ** les paramètres β0 et β1 de cette équation.
Considérez la ** fonction de vraisemblance **. La valeur prédite de la nième personne est
【Solution】 ① Éliminez la multiplication en prenant ** logarithmique **. (Peut être ajouté) (2) En ajoutant ** moins **, la ** méthode de descente de gradient ** peut être exécutée. (Parce que la méthode de descente de gradient convient pour trouver la valeur minimale)
L'équation ci-dessus est appelée la ** fonction d'erreur d'entropie croisée **.
La valeur optimale du paramètre est obtenue en différenciant ** β0 et β1 ** à l'aide de cette fonction ** méthode de descente de gradient **!
** Cette fois, je voudrais analyser en utilisant l'ensemble de données de la bibliothèque sklearn. ** **
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) #cible 0~1 sur 2,Obtenez seulement 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()#Standardisation
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_) #Affichage des variables de régression
print(model.intercept_) #Section de la droite de régression
print(log_reg.score(X_train,y_train)) #Sortez le coefficient de décision.
print(log_reg.score(X_test,y_test)) #Sortez le coefficient de décision.
Recommended Posts