[PYTHON] Qu'est-ce que l'analyse de régression logistique?

Qu'est-ce que l'analyse de régression logistique?

Qu'est-ce qu'un modèle linéaire généralisé?

-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)

La variable de réponse doit correspondre au prédicteur linéaire

Et si la variable de réponse est le nombre de glaces vendues?

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

Et si la variable de réponse est la probabilité (taux de réussite)?

** ✖ 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.

データデータ

Comment définir «optimal»?

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 **!

Expérience

** 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

Qu'est-ce que l'analyse de régression logistique?
Qu'est-ce que l'analyse de régression logistique à plusieurs termes?
Retour logistique
Retour logistique
Qu'est-ce que la régression de crête de rang réduit?
Analyse de régression logistique Self-made avec python
Qu'est-ce que l'espace de noms
Qu'est-ce que copy.copy ()
Qu'est-ce que Django? .. ..
Qu'est-ce que dotenv?
Qu'est-ce que POSIX
Qu'est-ce que Linux
Qu'est-ce que le klass?
Analyse de régression de Poisson
Qu'est-ce que SALOME?
Qu'est-ce que Linux?
Qu'est-ce que python
Qu'est-ce que l'hyperopt?
Méthode d'analyse de régression
Qu'est-ce que Linux
Qu'est-ce que pyvenv
Qu'est-ce que __call__
Qu'est-ce que Linux
Qu'est-ce que Python
Qu'est-ce qu'une distribution?
Qu'est-ce que le F-Score de Piotroski?
Qu'est-ce que Raspberry Pi?
[Python] Qu'est-ce que Pipeline ...
Régression logistique d'apprentissage automatique
Qu'est-ce que Calmar Ratio?
Qu'est-ce qu'un terminal?
[Tutoriel PyTorch ①] Qu'est-ce que PyTorch?
Qu'est-ce que le réglage des hyper paramètres?
Qu'est-ce qu'un hacker?
Qu'est-ce que JSON? .. [Remarque]
À quoi sert Linux?
Qu'est-ce qu'un pointeur?
Qu'est-ce que l'apprentissage d'ensemble?
Qu'est-ce que TCP / IP?
Bases de l'analyse de régression
Qu'est-ce que __init__.py de Python?
Effectuer une analyse de régression avec NumPy
Qu'est-ce qu'un itérateur?
Qu'est-ce que UNIT-V Linux?
[Python] Qu'est-ce que virtualenv
Analyse de régression avec Python
Qu'est-ce que l'apprentissage automatique?
Qu'est-ce que Mini Sam ou Mini Max?
Quelle est la fonction d'activation?
Analyse de régression multiple avec Keras
Qu'est-ce qu'une variable d'instance?
Qu'est-ce qu'un arbre de décision?
Analyse de séries chronologiques La mise en œuvre est bloquée-Notes-
Qu'est-ce qu'un changement de contexte?
Qu'est-ce que Google Cloud Dataflow?
[DL] Qu'est-ce que la décroissance du poids?
[Python] Python et sécurité-① Qu'est-ce que Python?
Qu'est-ce qu'un super utilisateur?
La programmation du concours, c'est quoi (bonus)