파이썬 선형회귀

파이썬 선형회귀

작성일 2023.03.26댓글 1건
    게시물 수정 , 삭제는 로그인 필요

아래와 같은 코드를 실행했을때, 왜 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)


#파이썬 선형회귀 #파이썬 선형회귀 코드 #파이썬 선형회귀 예제 #파이썬 선형회귀 예측 #파이썬 선형회귀 구현 #파이썬 선형회귀분석 #파이썬 선형회귀 그래프 #파이썬 선형회귀 경사하강법 #파이썬 선형회귀 r2 #파이썬 선형회귀 기울기

profile_image 익명 작성일 -

주어진 코드에서 문제점은 입력 데이터 X와 y가 정의되어 있을 때, 예측 함수와 손실 함수에서 입력 데이터를 활용하지 않고, w와 b만 활용하여 예측을 수행하고 손실을 계산하고 있다는 것입니다.

따라서, 예측 함수와 손실 함수를 수정하여 입력 데이터 X를 활용하여 예측을 수행하도록 변경해야 합니다. 아래는 예측 함수와 손실 함수를 수정한 코드입니다.

# 예측 함수 정의 def predict(X, w, b): y_pred = X * w + 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, w, b) # 손실 함수 계산 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)

위의 수정된 코드에서는 예측 함수와 손실 함수에서 입력 데이터 X를 인자로 받고, 학습 함수에서는 인자로 받은 X를 활용하여 predict 함수를 호출하여 예측을 수행합니다. 이렇게 수정하면 학습이 정상적으로 수행될 것입니다.

파이썬 선형회귀(키, 몸무게)

... 주어진 코드를 살펴보니, 코드의 구성 자체는 선형 회귀 문제를 풀기 위한 구조로 잘 구성되어 있습니다. 다만, 학습률(learning rate)이...

파이썬 선형회귀

아래와 같은 코드를 실행했을때, 왜 loss값이 바뀌지 않고 그대로인지 모르겠습니다. 어떻게 수정해야 할까요.. import numpy as np # 입력 데이터...