파이썬 선형회귀
-
게시물 수정 , 삭제는 로그인 필요
아래와 같은 코드를 실행했을때, 왜 loss값이 바뀌지 않고 그대로인지 모르겠습니다. 어떻게 수정해야 할까요..
import numpy as np
# 입력 데이터 (키(cm), 몸무게(kg))
X = np.array([170, 175, 180, 165, 160, 185])
y = np.array([68, 75, 80, 55, 50, 90])
# 모델 파라미터 초기화 (w: 가중치, b: 절편)
w = 0.0
b = 0.0
# 학습률(learning rate) 설정
lr = 0.0001
# 예측 함수 정의
def predict(x):
y_pred = w*x + b
return y_pred
# 손실 함수 정의 (평균 제곱 오차)
def mse_loss(y_true, y_pred):
mse = np.mean((y_true - y_pred)**2)
return mse
# 경사 하강법(Gradient Descent)을 사용하여 손실 함수 최소화
def train(X, y, w, b, lr, epochs):
for epoch in range(epochs):
# 예측 값 계산
y_pred = predict(X)
# 손실 함수 계산
loss = mse_loss(y, y_pred)
# 가중치(w)와 절편(b) 업데이트
grad_w = np.mean((y_pred - y)*X)
grad_b = np.mean(y_pred - y)
w = w - lr*grad_w
b = b - lr*grad_b
# 로그 출력
if epoch % 100 == 0:
print("Epoch %d: loss=%.4f, w=%.4f, b=%.4f" % (epoch, loss, w, b))
return w, b
# 학습 실행
w, b = train(X, y, w, b, lr, epochs=1000)
import numpy as np
# 입력 데이터 (키(cm), 몸무게(kg))
X = np.array([170, 175, 180, 165, 160, 185])
y = np.array([68, 75, 80, 55, 50, 90])
# 모델 파라미터 초기화 (w: 가중치, b: 절편)
w = 0.0
b = 0.0
# 학습률(learning rate) 설정
lr = 0.0001
# 예측 함수 정의
def predict(x):
y_pred = w*x + b
return y_pred
# 손실 함수 정의 (평균 제곱 오차)
def mse_loss(y_true, y_pred):
mse = np.mean((y_true - y_pred)**2)
return mse
# 경사 하강법(Gradient Descent)을 사용하여 손실 함수 최소화
def train(X, y, w, b, lr, epochs):
for epoch in range(epochs):
# 예측 값 계산
y_pred = predict(X)
# 손실 함수 계산
loss = mse_loss(y, y_pred)
# 가중치(w)와 절편(b) 업데이트
grad_w = np.mean((y_pred - y)*X)
grad_b = np.mean(y_pred - y)
w = w - lr*grad_w
b = b - lr*grad_b
# 로그 출력
if epoch % 100 == 0:
print("Epoch %d: loss=%.4f, w=%.4f, b=%.4f" % (epoch, loss, w, b))
return w, b
# 학습 실행
w, b = train(X, y, w, b, lr, epochs=1000)
#파이썬 선형회귀 #파이썬 선형회귀 코드 #파이썬 선형회귀 예제 #파이썬 선형회귀 예측 #파이썬 선형회귀 구현 #파이썬 선형회귀분석 #파이썬 선형회귀 그래프 #파이썬 선형회귀 경사하강법 #파이썬 선형회귀 r2 #파이썬 선형회귀 기울기