Aller au contenu

La régression logistique

La régression logistique est un algorithme de classification binaire de type linéaire. Elle répond donc aux problèmes linéairement séparables c'est-à-dire qu'on peut séparer les points des deux clases avec une droite.

Binaire: deux classes Linéaire: on peut séparer les deux classes à l'aide d'une droite

La solution d'une régression s'obtient en minimisant l'entropie croisée binaire.

Importer LogisticRegression

from sklearn.linear_model import LogisticRegression

Code complet

# coding : utf-8

'''
    Scikit-learn Challenge
    #02 : Logistic Regression
'''

# Packages
import pickle
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, confusion_matrix

# Get data
X, y = make_classification(n_samples=100, n_features=4, n_classes=2)

# Design model
clf = LogisticRegression(penalty='l2', C=0.8)

# Train model
clf.fit(X, y)

# Evaluate model
y_pred = clf.predict(X)
score = accuracy_score(y, y_pred)
print('Accuracy score: ', round(score, 2))
conf_mat = confusion_matrix(y, y_pred)
print(conf_mat)

# Inference
output = clf.predict([[1.5, 0.24, 2.6, 0.1]])[0]
print('Predcited class: ', output)

# Save model
with open('output/model.pkl', 'wb') as f:
    pickle.dump(obj=clf, file=f)