-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocumentação_regressao_logistica.html
157 lines (121 loc) · 4.71 KB
/
documentação_regressao_logistica.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# regressao_logistica
class ModeloRegressaoLogistica:
def __init__(self, taxa_aprendizagem=0.01, n_iteracoes=1000):
self.taxa_aprendizagem = taxa_aprendizagem
self.n_iteracoes = n_iteracoes
self.pesos = None
self.vies = None
def sigmoid(self, z):
return 1 / (1 + np.exp(-z))
def ajuste(self, X, y):
# Inicializando pesos e viés
n_amostras, n_observacoes = X.shape
self.pesos = np.zeros(n_observacoes)
self.vies = 0
# Gradiente descendente para otimização
for _ in range(self.n_iteracoes):
modelo_linear = np.dot(X, self.pesos) + self.vies
y_previsto = self.sigmoid(modelo_linear)
# Cálculo dos gradientes
dw = (1 / n_amostras) * np.dot(X.T, (y_previsto - y))
db = (1 / n_amostras) * np.sum(y_previsto - y)
# Atualização de pesos e viés
self.pesos -= self.taxa_aprendizagem * dw
self.vies -= self.taxa_aprendizagem * db
def previsao(self, X):
modelo_linear = np.dot(X, self.pesos) + self.vies
y_previsto = self.sigmoid(modelo_linear)
y_previsto_classes = [1 if i > 0.5 else 0 for i in y_previsto]
return y_previsto_classes
def previsao_prob(self, X):
modelo_linear = np.dot(X, self.pesos) + self.vies
y_previsto = self.sigmoid(modelo_linear)
return y_previsto
# regressao_logistica
"""
O pacote regressao_logistica contém funções para realizar o modelo de regressão logística em Python.
Funcionalidades:
- sigmoid(self, z): Calcula a função sigmoid.
- ajuste(self, X, y): Realiza o ajuste do modelo de regressão logística aos dados de treinamento.
- previsao(self, X): Realiza a previsão das classes para as amostras de entrada.
- previsao_prob(self, X): Realiza a previsão das probabilidades para as amostras de entrada.
Exemplo de uso:
from regressao_logistica import (
ModeloRegressaoLogistica,
carregando_dados,
avaliacao_residuos,
grafico_ajuste,
grafico_residuos,
)
# Carrega os dados de teste
X, y = carregando_dados()
# Cria o modelo de regressão logística
modelo = modelo = ModeloRegressaoLogistica()
# Ajusta o modelo aos dados
modelo.ajuste(X, y)
# Prediz os resultados
y_previsto = modelo.previsao(X)
# Avalia o modelo
eqm, residuos = avaliacao_residuos(y, y_previsto)
print(f'Erro Quadrático Médio: {eqm}')
# Plota gráficos
grafico_ajuste(X, y, y_previsto)
grafico_residuos(X, residuos)
"""
def __init__(self, taxa_aprendizagem=0.01, n_iteracoes=1000):
"""
Inicializa o ModeloRegressaoLogistica.
Parâmetros:
- taxa_aprendizagem (float): Taxa de aprendizagem para o algoritmo de
otimização (default: 0.01).
- n_iteracoes (int): Número de iterações para o algoritmo de
otimização (default: 1000).
"""
def sigmoid(self, z):
"""
Calcula a função sigmoid.
Parâmetros:
- z (float ou array): Valor(es) de entrada.
Retorna:
- float ou array: Valor(es) após a aplicação da função sigmoid.
"""
def ajuste(self, X, y):
"""
Realiza o ajuste do modelo de regressão logística aos dados de
treinamento.
Parâmetros:
- X (array): Array de shape (n_amostras, n_observacoes) contendo as
amostras de treinamento.
- y (array): Array de shape (n_amostras,) contendo as classes
correspondentes às amostras de treinamento.
"""
def previsao(self, X):
"""
Realiza a previsão das classes para as amostras de entrada.
Parâmetros:
- X (array): Array de shape (n_amostras, n_observacoes) contendo as
amostras de entrada.
Retorna:
- array: Array de shape (n_amostras,) contendo as classes previstas
para as amostras de entrada.
"""
def previsao_prob(self, X):
"""
Realiza a previsão das probabilidades para as amostras de entrada.
Parâmetros:
- X (array): Array de shape (n_amostras, n_observacoes) contendo as
amostras de entrada.
Retorna:
- array: Array de shape (n_amostras,) contendo as probabilidades
previstas para as amostras de entrada.
"""
---
title: "Documentação do pacote regressao_logistica"
author: "Joana D'arc Nunes da Silva"
format: html
---
# Pacote regressao_logistica
O pacote `regressao_logistica` é uma biblioteca em Python que implementa o modelo de regressão logística, um método bastante utilizado para problemas de classificação binária.
## Instalação
Para instalar o pacote, você pode usar o gerenciador de pacotes `pip`. Basta executar o seguinte comando:
`pip install regressao_logistica`