Scikit Learn - Regressione logistica
La regressione logistica, nonostante il nome, è un algoritmo di classificazione piuttosto che un algoritmo di regressione. Basato su un dato insieme di variabili indipendenti, viene utilizzato per stimare il valore discreto (0 o 1, sì / no, vero / falso). È anche chiamato logit o MaxEnt Classifier.
Fondamentalmente, misura la relazione tra la variabile dipendente categoriale e una o più variabili indipendenti stimando la probabilità di accadimento di un evento utilizzando la sua funzione logistica.
sklearn.linear_model.LogisticRegression è il modulo utilizzato per implementare la regressione logistica.
Parametri
La tabella seguente elenca i parametri utilizzati da Logistic Regression modulo -
Suor n | Parametro e descrizione |
---|---|
1 | penalty - str, 'L1', 'L2', 'elasticnet' o none, opzionale, default = 'L2' Questo parametro viene utilizzato per specificare la norma (L1 o L2) utilizzata nella penalizzazione (regolarizzazione). |
2 | dual - Booleano, opzionale, predefinito = False Viene utilizzata per la formulazione duale o primaria mentre la formulazione doppia è implementata solo per la penalità L2. |
3 | tol - float, opzionale, default = 1e-4 Rappresenta la tolleranza per i criteri di arresto. |
4 | C - float, opzionale, default = 1.0 Rappresenta l'inverso della forza di regolarizzazione, che deve essere sempre un galleggiante positivo. |
5 | fit_intercept - Booleano, opzionale, predefinito = True Questo parametro specifica che una costante (bias o intercetta) deve essere aggiunta alla funzione di decisione. |
6 | intercept_scaling - float, opzionale, default = 1 Questo parametro è utile quando
|
7 | class_weight - dict o "balance" opzionale, default = nessuno Rappresenta i pesi associati alle classi. Se usiamo l'opzione predefinita, significa che tutte le classi dovrebbero avere un peso. D'altra parte, se scegli class_weight: balance, utilizzerà i valori di y per regolare automaticamente i pesi. |
8 | random_state - int, istanza RandomState o None, opzionale, default = nessuno Questo parametro rappresenta il seme del numero pseudo casuale generato che viene utilizzato durante la mescolanza dei dati. Le seguenti sono le opzioni
|
9 | solver - str, {'newton-cg', 'lbfgs', 'liblinear', 'saag', 'saga'}, opzionale, default = 'liblinear' Questo parametro rappresenta l'algoritmo da utilizzare nel problema di ottimizzazione. Di seguito sono riportate le proprietà delle opzioni in questo parametro:
|
10 | max_iter - int, opzionale, default = 100 Come suggerisce il nome, rappresenta il numero massimo di iterazioni necessarie per la convergenza dei solutori. |
11 | multi_class - str, {'ovr', 'multinomial', 'auto'}, opzionale, default = 'ovr'
|
12 | verbose - int, opzionale, default = 0 Per impostazione predefinita, il valore di questo parametro è 0 ma per liblinear e lbfgs solver dovremmo impostare verbose su qualsiasi numero positivo. |
13 | warm_start - bool, opzionale, predefinito = false Con questo parametro impostato su True, possiamo riutilizzare la soluzione della chiamata precedente per adattarla all'inizializzazione. Se scegliamo default cioè false, cancellerà la soluzione precedente. |
14 | n_jobs - int o None, opzionale, default = None Se multi_class = 'ovr', questo parametro rappresenta il numero di core della CPU utilizzati durante il parallelismo sulle classi. Viene ignorato quando solver = 'liblinear'. |
15 | l1_ratio - float o None, opzionale, dgtefault = None Viene utilizzato nel caso in cui penalità = 'elasticnet'. Fondamentalmente è il parametro di miscelazione Elastic-Net con 0 <= l1_ratio> = 1. |
Attributi
La tabella seguente è costituita dagli attributi utilizzati da Logistic Regression modulo -
Suor n | Attributi e descrizione |
---|---|
1 | coef_ - array, forma (n_features,) o (n_classes, n_features) Viene utilizzato per stimare i coefficienti delle caratteristiche nella funzione di decisione. Quando il problema dato è binario, è di forma (1, n_features). |
2 | Intercept_ - array, forma (1) o (n_classes) Rappresenta la costante, nota anche come bias, aggiunta alla funzione decisionale. |
3 | classes_ - array, forma (n_classes) Fornirà un elenco di etichette di classe note al classificatore. |
4 | n_iter_ - array, forma (n_classes) o (1) Restituisce il numero effettivo di iterazioni per tutte le classi. |
Esempio di implementazione
Il seguente script Python fornisce un semplice esempio di implementazione della regressione logistica su iris set di dati di scikit-learn -
from sklearn import datasets
from sklearn import linear_model
from sklearn.datasets import load_iris
X, y = load_iris(return_X_y = True)
LRG = linear_model.LogisticRegression(
random_state = 0,solver = 'liblinear',multi class = 'auto'
)
.fit(X, y)
LRG.score(X, y)
Produzione
0.96
L'output mostra che il modello di regressione logistica sopra ha fornito una precisione del 96 percento.