회귀에서 경사하강법 질문 있습니다!!
371
작성한 질문수 1
경사 하강법에서 get_weight_updates 함수를 정의하는 부분입니다.
# w1 과 w0 를 업데이트 할 w1_update, w0_update를 반환.
def get_weight_updates(w1, w0, X, y, learning_rate=0.01):
N = len(y)
# 먼저 w1_update, w0_update를 각각 w1, w0의 shape와 동일한 크기를 가진 0 값으로 초기화
w1_update = np.zeros_like(w1)
w0_update = np.zeros_like(w0)
# 예측 배열 계산하고 예측과 실제 값의 차이 계산
y_pred = np.dot(X, w1.T) + w0
diff = y-y_pred
# w0_update를 dot 행렬 연산으로 구하기 위해 모두 1값을 가진 행렬 생성
w0_factors = np.ones((N,1))
# w1과 w0을 업데이트할 w1_update와 w0_update 계산
w1_update = -(2/N)*learning_rate*(np.dot(X.T, diff))
w0_update = -(2/N)*learning_rate*(np.dot(w0_factors.T, diff))
return w1_update, w0_update
예측값은 분명 w0+X(1)w1+X(2)w2+X(3)w1+ ... +X(100)w1 라 하셨으니 배열이 아닌 하나의 값이 나와야 합니다.
허나 위 코드에서 정의한 y_predict인 np.dot(X,w1.T)+w0은 배열이 나오기 때문에 두 정의가 배치되는것 아닌가요???
잘 이해가 되지않습니다ㅜㅜ
답변 1
0
안녕하십니까,
설명을 쉽게 하기 위해서 w0+X(1)w1+X(2)w2+X(3)w1+ ... +X(100)w1 했지만, 보통은 배열값이 X로 입력이 됩니다. 즉 N X M 데이터가 입력이고, 예측값도 N X 1 형태의 데이터가 만들어 집니다.
즉 설명으로는 좀 더 쉬운 설명을 위해 [x0, x1, ,,,, ] 이 입력 했지만 실제로는 N개의 feature값을 가지는 x 데이터가 M 데이터 배열이 입력되고, 이의 예측값도 M개의 값을 가집니다. 아래와 같이 M개의 학습 데이터셋 X가 입력되면 W 회귀계수에 기반한 M개의 선형 회귀 방정식을 만들게 됩니다.

시계열 분석 문의
0
41
1
LLM 시대에서 머신러닝 개념 이해 필요성 문의
0
69
1
후속 강의
0
70
1
강의 문의드립니다.
0
109
2
모델 서빙과 관련된 강좌가 출시되는지 질문드립니다.
0
113
2
안녕하세요 열심히 수강중인 학생입니다
0
160
2
정수 인덱싱
0
151
2
넘파이 오류
0
211
2
11강 numpy의 axis 축 질문 드립니다.
0
167
2
Kaggle 에서 Santander customer satisfaction data 를 다운로드 되지가 않습니다.
0
154
2
Feature importances 를 보여주는 barplot 이 그래프로 안보여져요.
0
148
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
154
2
타이타닉 csv 파일이 주피터 화면에 보이지 않습니다.
0
137
2
5강 강의 오류가 있어요.
0
127
1
실무에서 LTV 관련 모델 선택 질문입니다!
0
129
2
14강 강의 듣는중에 궁금한게 있어서 질문합니다~
0
126
3
파이썬 다운그레이 후 사이킷런 재설치
0
195
2
좋은 강의 감사합니다.
0
128
2
scoring 함수 음수값
0
125
2
6번 강의에 사이킷런, 파이썬, 아나콘다 각각 버전 일치 안 시키고 진행해도 강의 따라가 지나요?
0
157
2
분류 평가 정확도 예측
0
150
2
안녕하세요. 강의 들으면서 업무에 적용하고 싶은 수강생입니다.
0
149
1
카카오톡 채널 있나요
0
154
1
혹시 강의에서 사용하시는 ppt 받을 수 있는건가요
0
239
2





