A Regressão Logística é fundamental em análise de dados e aprendizado de máquina. Este guia simplificado explora seu conceito, aplicação em classificação de dados e implementação em Python.
O que é Regressão Logística?
A Regressão Logística classifica dados por meio de probabilidades entre 0 e 1, usando a função sigmoide, diferentemente da regressão linear, que prevê valores contínuos.
Como a Regressão Logística Funciona?
A Regressão Logística prevê a probabilidade de eventos usando variáveis independentes e a função sigmoide. Se a probabilidade for superior a 0,5, é classificado como positivo; caso contrário, é negativo.
Implementando a Regressão Logística em Python
Vamos mostrar como usar a biblioteca scikit-learn e StatsModels para implementar a Regressão Logística em Python.
Utilizando scikit-learn
A biblioteca scikit-learn oferece uma interface fácil de usar para construir modelos de regressão logística. Vamos seguir os passos básicos para criar, treinar e avaliar um modelo.
Importando bibliotecas e obtendo os dados:
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report, confusion_matrix
# Obtendo os dados
x = np.arange(10).reshape(-1, 1)
y = np.array([0, 1, 0, 0, 1, 1, 1, 1, 1, 1])
Dividindo os dados em conjuntos de treinamento e teste:
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2, random_state=0)
Criando e treinando o modelo:
model = LogisticRegression(solver='liblinear', C=10.0, random_state=0)
model.fit(x_train, y_train)
Avaliando o modelo:
y_pred = model.predict(x_test)
confusion = confusion_matrix(y_test, y_pred)
report = classification_report(y_test, y_pred)
print("Matriz de Confusão:")
print(confusion)
print("\nRelatório de Classificação:")
print(report)
Utilizando StatsModels
Outra abordagem é utilizar a biblioteca StatsModels para realizar a regressão logística. Vamos ver como isso é feito.
Importando bibliotecas e preparando os dados:
import numpy as np
import statsmodels.api as sm
# Obtendo os dados
x = np.arange(10).reshape(-1, 1)
y = np.array([0, 1, 0, 0, 1, 1, 1, 1, 1, 1])
# Adicionando uma coluna de constantes a x
x = sm.add_constant(x)
Criando e treinando o modelo:
model = sm.Logit(y, x)
result = model.fit(method='newton')
Analisando os resultados:
print(result.summary())
Conclusão
A Regressão Logística é útil para classificação. Aprender a aplicá-la com scikit-learn e StatsModels é importante para análise de dados e aprendizado de máquina, permitindo explorar dados e tomar decisões informadas.
Outras Referências
Link para a Regressão Logística do SkLearn: https://scikit-learn.org/stable/modules/generated/sklearn.linear_model.LogisticRegression.html