본문 바로가기

딥러닝과 머신러닝

Pytorch로 구현한 논리회귀 (2024-06-20) 미완성

 1. 단항 논리 회귀(Logistic Regression)

* 분류를 할 때 사용하며, 선형 회귀 공식으로부터 나왔기 때문에 논리회귀라는 이름이 붙여짐

 

 2. 시그모이드(Sigmoid) 함수

* 예측값을 0에서 1사이의 값으로 되도록 만듦
* 0에서 1사이의 연속된 값을 출력으로 하기 때문에 보통 0.5(임계값)를 기준으로 구분

 

 

 
import torch
import torch.nn as  nn
import torch.optim as optim
import matplotlib.pyplot as plt
torch.manual_seed(2024)
 
 
x_train = torch.FloatTensor([[0], [1], [3], [5], [8], [11], [15], [20]])
y_train = torch.FloatTensor([[0], [0], [0], [0], [0], [1], [1], [1]])
print(x_train.shape)
print(y_train.shape)
 
plt.figure(figsize= (8, 5))
plt.scatter(x_train, y_train)
 
model = nn.Sequential(
    nn.Linear(1, 1),
    nn.Sigmoid()
)
print(model)
 
print(list(model.parameters())) # W : 0.0634, b : 0.6625
 

 

 

3. 비용함수

* 논리회구에서는 nn.BCELoss() 함수를 사용하여 Loss를 계산
* Binary Cross Entropy