290pg 회귀
지도학습은 분류 Classification은 이산값 category값을 가지며, 회귀 Regression은 숫자값(연속값)을 가진다.
회귀란 여러개의 독립변수(feature)와 한 개의 종속변수(target 결정값) 간의 상관관계를 모델링하는 기법을 통칭한다.
- 회귀계수(Regression coefficients)는 독립변수의 값에 영향을 미치며, 머신러닝에서는 최적의 회귀계수를 찾는 것이 핵심이다. 이는 전체 데이터의 잔차(오류값)합이 최소가 되는 것이다.
- 종류: 선형/비선형회귀(회귀계수가 선형이냐아니냐), 단일회귀/다중회귀(독립변수/종속변수의 개수에 따라)
- 선형회귀는 실제값-예측값(오류의 제곱값)을 최소화하는 직선형 회귀선을 최적화하는 방식이다.
- 단순선형회귀: 독립변수1, 종속변수1인 선형회귀
- 오류합 계산: Mean Absolute Error, RSS(Residual Sum of Square)
297pg 회귀 코드예제
- 25줄: np.random.rand(m, n)는 0~1의 값 사이의 균일분포 표준정규분포 난수를 matrix array (x, y)생성. 100개의 샘플에 각각 element에 2를 곱한다. (range는 0~2가 된다)
- 26줄: np.random.rand(m, n)는 평균0, 표준1의 가우시안 표준정규분포 난수를 matrix array (x, y)생성. 정규분포에 6+4X를 한다.
참고) https://nittaku.tistory.com/443
- 60줄: get_weight_updates는 가중치 업데이트 사용자 정의 함수
- 63줄: np.zeros_like는 어떤 변수만큼의 사이즈인 (w1변수 사이즈) 0 으로 가득 찬 Array를 배출한다.
- 66줄: np.dot(X, w1.T) + w0는 X와 전치행렬 w1을 내적하고 w0을 더함 (내적을 수행하기위해서는 shape가 일치해야하므로 전치행렬T를 수행한다
- 67줄: diff는 실제값-예측값인 에러율
- 70줄: w0_factors=np.ones는 해당 shape에 1로 가득채운다. (N은 100개임)
- 73줄: w1_update에서 np.dot(X.T, diff)는 Σ(y-y')x을 말한다. 거기에 -2/N*learning rate를 하면 편미분 결과값이 나온다.
(296pg 편미분 참고)
- 질문: RSS(w0, w1)=R(w)= w+Δw 인가? w-Δw 인가?
y값에 대해 w로 편미분한 값 (가중치의 변화량)은 이미 음수(-)가 도출되어 나오기 때문에 사실 둘이 같은 식이라고 볼 수 있다. (108줄, 109줄에 나오는 w1, w0값은 미분값 그 자체이기 때문에 빼줘야한다)
- 100줄: gradient_descent_steps는 경사하강법 사용자 정의함수
- 102-103줄: 1x1 변수에 0값을 넣는다. 가중치를 초기화함.
- 121줄: cost=np.sum(np.square(y-y_pred))/N은 비용함수를 말한다. Σ(y-y')^2/N
- 134줄: 회귀선 y=w1x1+w0에서 w1은 기울기와 w0은 절편을 의미.
- 145줄: 확률적 경사하강법 stochastic은 모든 샘플에 적용되지 않는다. permutation을 통해 일부를 샘플링해서 가중치를 업데이트한다. 그런데 epoch가 돌면서 샘플링 되는 데이터는 달라진다. (샘플링 데이터 개수는 같음. 데이터가 중복될 수 있음>>아달린보다는 정확도가 떨어질 수 있음)
- 152줄: np.random.seed는 랜덤함수의 규칙이다. for문이 돌 때마다 새로운 index값이 나온다. 만약 for문 전체가 들어간 코드를 다시 수행했다면 이전에 나온 index값으로 나온다. 그런데 seed값을 바꾼뒤 for문 전체를 다시 돌리게 되면 또다른 index값이 샘플링된다.
- 155줄: batch_size는 10로 슬라이싱한다. 즉 0-9까지 샘플링한다는 말임.
- 158줄: sample일부만 가중치 업데이트를 한다.
- 168줄: X.shape[0]에는 0-99까지 랜덤으로 뒤섞인 100개의 데이터가 들어가있다. permutation을 통해 인덱스가 임의적으로 섞인다.
'살콤아내 자기계발 > 파이썬' 카테고리의 다른 글
파이썬 머신러닝 완벽가이드 6주차 정리 (319pg, 규제선형모델-릿지, 라쏘, 엘라스틱넷, 로지스틱회귀) (0) | 2021.05.31 |
---|---|
파이썬 머신러닝 완벽가이드 6주차 정리 (303pg, 보스턴 주택 가격 예측, 다항회귀) (0) | 2021.05.28 |
파이썬 온라인 교육 플랫폼_코드스테이츠, 정보통신진흥원NIPA, POSTECH MOOC (0) | 2021.05.25 |
파이썬 머신러닝 완벽가이드 6주차 정리 (경사하강법, 퍼셉트론/아달린) (0) | 2021.05.24 |
파이썬 머신러닝 완벽가이드 5주차 정리 (분류 262pg, 캐글 신용카드 사기 검출, 스태킹앙상블) (0) | 2021.05.20 |