Scikit Learn - Regressão Logística
A regressão logística, apesar do nome, é um algoritmo de classificação e não um algoritmo de regressão. Com base em um determinado conjunto de variáveis independentes, é usado para estimar o valor discreto (0 ou 1, sim / não, verdadeiro / falso). Também é chamado de logit ou Classificador MaxEnt.
Basicamente, ele mede a relação entre a variável dependente categórica e uma ou mais variáveis independentes, estimando a probabilidade de ocorrência de um evento usando sua função logística.
sklearn.linear_model.LogisticRegression é o módulo usado para implementar a regressão logística.
Parâmetros
A tabela a seguir lista os parâmetros usados por Logistic Regression módulo -
Sr. Não | Parâmetro e Descrição |
---|---|
1 | penalty - str, 'L1', 'L2', 'elasticnet' ou nenhum, opcional, padrão = 'L2' Este parâmetro é usado para especificar a norma (L1 ou L2) usada na penalização (regularização). |
2 | dual - Booleano, opcional, padrão = False É usado para formulação dupla ou primária, enquanto a formulação dupla só é implementada para penalidade de L2. |
3 | tol - flutuante, opcional, padrão = 1e-4 Ele representa a tolerância para os critérios de parada. |
4 | C - flutuante, opcional, padrão = 1,0 Ele representa o inverso da força de regularização, que deve ser sempre um float positivo. |
5 | fit_intercept - Booleano, opcional, padrão = Verdadeiro Este parâmetro especifica que uma constante (polarização ou interceptação) deve ser adicionada à função de decisão. |
6 | intercept_scaling - flutuante, opcional, padrão = 1 Este parâmetro é útil quando
|
7 | class_weight - dict ou 'balanceado' opcional, padrão = nenhum Ele representa os pesos associados às classes. Se usarmos a opção padrão, significa que todas as classes devem ter peso um. Por outro lado, se você escolher class_weight: balance, ele usará os valores de y para ajustar automaticamente os pesos. |
8 | random_state - int, instância RandomState ou Nenhum, opcional, padrão = nenhum Este parâmetro representa a semente do número pseudoaleatório gerado que é usado ao embaralhar os dados. A seguir estão as opções
|
9 | solver - str, {'newton-cg', 'lbfgs', 'liblinear', 'saag', 'saga'}, opcional, padrão = 'liblinear' Este parâmetro representa qual algoritmo usar no problema de otimização. A seguir estão as propriedades das opções sob este parâmetro -
|
10 | max_iter - int, opcional, padrão = 100 Como o nome sugere, ele representa o número máximo de iterações tomadas para os solucionadores convergirem. |
11 | multi_class - str, {'ovr', 'multinomial', 'auto'}, opcional, padrão = 'ovr'
|
12 | verbose - int, opcional, padrão = 0 Por padrão, o valor desse parâmetro é 0, mas para o solucionador liblinear e lbfgs, devemos definir verbose para qualquer número positivo. |
13 | warm_start - bool, opcional, padrão = falso Com este parâmetro definido como True, podemos reutilizar a solução da chamada anterior para caber como inicialização. Se escolhermos o padrão, ou seja, falso, ele apagará a solução anterior. |
14 | n_jobs - int ou nenhum, opcional, padrão = nenhum Se multi_class = 'ovr', este parâmetro representa o número de núcleos de CPU usados ao paralelizar sobre classes. Ele é ignorado quando solver = 'liblinear'. |
15 | l1_ratio - float ou Nenhum, opcional, dgtefault = Nenhum É usado no caso em que penalidade = 'elasticnet'. É basicamente o parâmetro de mistura Elastic-Net com 0 <= l1_ratio> = 1. |
Atributos
A tabela a seguir consiste nos atributos usados por Logistic Regression módulo -
Sr. Não | Atributos e descrição |
---|---|
1 | coef_ - matriz, forma (n_features,) ou (n_classes, n_features) É usado para estimar os coeficientes das características na função de decisão. Quando o problema fornecido é binário, ele tem a forma (1, n_features). |
2 | Intercept_ - matriz, forma (1) ou (n_classes) Representa a constante, também conhecida como viés, adicionada à função de decisão. |
3 | classes_ - matriz, forma (n_classes) Ele fornecerá uma lista de rótulos de classe conhecidos pelo classificador. |
4 | n_iter_ - matriz, forma (n_classes) ou (1) Ele retorna o número real de iterações para todas as classes. |
Exemplo de Implementação
Seguir o script Python fornece um exemplo simples de implementação de regressão logística em iris conjunto de dados do 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)
Resultado
0.96
A saída mostra que o modelo de regressão logística acima forneceu a precisão de 96 por cento.