Scikit Learn - Regresión logística
La regresión logística, a pesar de su nombre, es un algoritmo de clasificación más que un algoritmo de regresión. Basado en un conjunto dado de variables independientes, se utiliza para estimar un valor discreto (0 o 1, sí / no, verdadero / falso). También se llama logit o clasificador MaxEnt.
Básicamente, mide la relación entre la variable dependiente categórica y una o más variables independientes estimando la probabilidad de ocurrencia de un evento usando su función logística.
sklearn.linear_model.LogisticRegression es el módulo utilizado para implementar la regresión logística.
Parámetros
La siguiente tabla enumera los parámetros utilizados por Logistic Regression módulo -
No Señor | Descripción de parámetros |
---|---|
1 | penalty - str, 'L1', 'L2', 'elasticnet' o ninguno, opcional, predeterminado = 'L2' Este parámetro se utiliza para especificar la norma (L1 o L2) utilizada en la penalización (regularización). |
2 | dual - Booleano, opcional, predeterminado = Falso Se utiliza para la formulación dual o primaria, mientras que la formulación dual solo se implementa para la penalización L2. |
3 | tol - flotante, opcional, predeterminado = 1e-4 Representa la tolerancia para los criterios de parada. |
4 | C - flotante, opcional, predeterminado = 1.0 Representa el inverso de la fuerza de regularización, que siempre debe ser un valor flotante positivo. |
5 | fit_intercept - Booleano, opcional, predeterminado = Verdadero Este parámetro especifica que se debe agregar una constante (sesgo o intersección) a la función de decisión. |
6 | intercept_scaling - flotante, opcional, predeterminado = 1 Este parámetro es útil cuando
|
7 | class_weight - dict o 'balanceado' opcional, predeterminado = ninguno Representa los pesos asociados con las clases. Si usamos la opción predeterminada, significa que se supone que todas las clases tienen un peso uno. Por otro lado, si elige class_weight: balanceado, usará los valores de y para ajustar automáticamente los pesos. |
8 | random_state - int, instancia de RandomState o None, opcional, predeterminado = ninguno Este parámetro representa la semilla del número pseudoaleatorio generado que se usa al mezclar los datos. Las siguientes son las opciones
|
9 | solver - str, {'newton-cg', 'lbfgs', 'liblinear', 'saag', 'saga'}, opcional, predeterminado = 'liblinear' Este parámetro representa qué algoritmo utilizar en el problema de optimización. Las siguientes son las propiedades de las opciones bajo este parámetro:
|
10 | max_iter - int, opcional, predeterminado = 100 Como sugiere el nombre, representa el número máximo de iteraciones necesarias para que los solucionadores converjan. |
11 | multi_class - str, {'ovr', 'multinomial', 'auto'}, opcional, predeterminado = 'ovr'
|
12 | verbose - int, opcional, predeterminado = 0 De forma predeterminada, el valor de este parámetro es 0, pero para liblinear y lbfgs solver deberíamos establecer detallado en cualquier número positivo. |
13 | warm_start - bool, opcional, predeterminado = falso Con este parámetro establecido en True, podemos reutilizar la solución de la llamada anterior para ajustarla como inicialización. Si elegimos default, es decir, falso, borrará la solución anterior. |
14 | n_jobs - int o None, opcional, predeterminado = None Si multi_class = 'ovr', este parámetro representa el número de núcleos de CPU utilizados al paralelizar clases. Se ignora cuando solver = 'liblinear'. |
15 | l1_ratio - float o None, opcional, dgtefault = None Se utiliza en caso de que pena = 'elasticnet'. Es básicamente el parámetro de mezcla Elastic-Net con 0 <= l1_ratio> = 1. |
Atributos
La siguiente tabla consta de los atributos utilizados por Logistic Regression módulo -
No Señor | Atributos y descripción |
---|---|
1 | coef_ - matriz, forma (n_features,) o (n_classes, n_features) Se utiliza para estimar los coeficientes de las características en la función de decisión. Cuando el problema dado es binario, tiene la forma (1, n_features). |
2 | Intercept_ - matriz, forma (1) o (n_clases) Representa la constante, también conocida como sesgo, agregada a la función de decisión. |
3 | classes_ - matriz, forma (n_classes) Proporcionará una lista de etiquetas de clase conocidas por el clasificador. |
4 | n_iter_ - matriz, forma (n_classes) o (1) Devuelve el número real de iteraciones para todas las clases. |
Ejemplo de implementación
El siguiente script de Python proporciona un ejemplo simple de implementación de regresión logística en iris conjunto de datos de 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)
Salida
0.96
El resultado muestra que el modelo de regresión logística anterior dio una precisión del 96 por ciento.