Ⅲ. 데이터 모델링과 평가 · 2차시
회귀 — 통계 모델과 기계학습 모델의 비교
같은 데이터를 두 가지 방법으로 분석한다. 통계적 회귀모델은 공식으로 직선을 한 번에 구한다. 기계학습 회귀모델은 오차가 줄어드는 방향으로 직선을 조금씩 옮긴다. 두 결과와 해석을 나란히 놓고 비교한다.
주당 공부 시간을 기록한 학생 10명의 자료가 있다. 시험 점수도 함께 적혀 있다.
공부 시간이 늘면 점수도 오르는 듯 보인다. 그렇다면 주당 7시간 공부한 학생의 점수를 몇 점으로 짐작할지 정해야 한다.
| 학생 | 주당 공부 시간(시간) | 점수(점) |
|---|---|---|
| 1 | 1 | 42 |
| 2 | 2 | 49 |
| 3 | 3 | 53 |
| 4 | 4 | 61 |
| 5 | 5 | 64 |
| 6 | 6 | 72 |
| 7 | 7 | 74 |
| 8 | 8 | 82 |
| 9 | 9 | 85 |
| 10 | 10 | 88 |
회귀 분석은 직선으로 요약한다
점들이 하나의 직선 주변에 모여 있다. 그래서 규칙을 직선으로 정한다.
예측 점수 = 기울기 × 공부 시간 + 절편
직선을 하나 정하면 학생마다 예측값이 나온다. 실제 점수에서 예측값을 뺀 차이를 라고 한다.
잔차는 양수도 되고 음수도 된다. 그냥 더하면 서로 지워진다. 그래서 잔차를 제곱해서 더한다.
이 값을 잔차 제곱합이라고 한다. 은 잔차 제곱합을 가장 작게 하는 직선을 찾는 일이다.
- 회귀 분석(regression)
- 입력 속성으로 목표 속성의 값을 예측하는 분석. 목표 속성이 점수나 판매량처럼 이어지는 수일 때 쓴다.
- 잔차(residual)
- 실제 값에서 모델의 예측값을 뺀 차이. 잔차를 제곱해 더한 값을 잔차 제곱합이라고 한다.
길 ① 최소제곱법 — 통계적 회귀모델
- 최소제곱법(method of least squares)
- 잔차 제곱합을 가장 작게 하는 기울기와 절편을 공식으로 한 번에 구하는 방법.
은 반복하지 않는다. 아래 두 식에 값을 넣으면 답이 바로 나온다.
기울기 = (입력 편차 × 목표 편차의 합) ÷ (입력 편차의 제곱의 합)절편 = 목표 평균 − 기울기 × 입력 평균
이 자료에서 공부 시간의 평균은 5.5시간이다. 점수의 평균은 67점이다.
두 편차를 곱해 더한 값은 429다. 공부 시간 편차의 제곱을 더한 값은 82.5다.
기울기는 429 ÷ 82.5 = 5.2다. 절편은 67 − 5.2 × 5.5 = 38.4다.
길 ② 경사하강법 — 기계학습 회귀모델
- 경사하강법(gradient descent)
- 오차가 줄어드는 방향으로 기울기와 절편을 조금씩 고쳐 나가는 방법. 한 번에 옮기는 정도를 학습률(learning rate)이라고 한다.
기계학습(machine learning) 방식은 공식을 쓰지 않는다. 대신 아래 절차를 되풀이한다.
- 기울기와 절편을 아무 값으로 시작한다. 여기서는 둘 다 0으로 둔다.
- 지금 직선의 오차를 구한다.
- 오차가 줄어드는 방향으로 조금 옮긴다. 옮기는 정도가 학습률이다.
- 정한 횟수만큼 2와 3을 되풀이한다.
학습률과 반복 횟수는 데이터가 정해 주지 않는다. 사람이 정해야 한다.
| 비교 항목 | 통계적 회귀모델(최소제곱법) | 기계학습 회귀모델(경사하강법) |
|---|---|---|
| 구하는 방식 | 공식에 값을 넣어 한 번에 구한다 | 값을 조금씩 고쳐 가며 되풀이한다 |
| 사람이 미리 정할 값 | 없다 | 학습률과 반복 횟수를 정해야 한다 |
| 이 자료의 결과 | 기울기 5.2, 절편 38.4 | 3,000번 반복 후 기울기 5.2, 절편 38.4 |
| 평균제곱오차 | 2.32 | 2.32 |
| 해석의 강점 | 기울기의 의미를 곧바로 설명한다 | 규칙의 형태를 바꿔도 같은 절차로 학습한다 |
| 해석의 한계 | 직선이라는 형태를 미리 정해 둔다 | 중간 과정의 값을 말로 설명하기 어렵다 |
| 결과가 흔들리는 조건 | 같은 데이터면 항상 같은 값이 나온다 | 시작값·학습률·반복 횟수에 따라 달라진다 |
확인 문제
4문항 · 고르면 바로 채점된다
회귀식 예측 점수 = 5.2 × 공부 시간 + 38.4에서 기울기 5.2의 뜻으로 알맞은 것은 무엇인가?
기울기는 입력이 1단위 늘 때 예측값이 변하는 양이다. 예측이 어긋난 정도는 오차 지표로 따로 구한다. 이 자료의 평균제곱오차는 2.32다.
최소제곱법과 경사하강법은 서로 다른 목표를 최소화하므로 결과가 반드시 달라진다.
두 방법의 목표는 모두 잔차 제곱합을 가장 작게 만드는 것이다. 이 자료에서는 둘 다 기울기 5.2, 절편 38.4에 도착했다. 다른 것은 도착하는 경로다.
회귀식으로 주당 6시간 공부한 학생의 점수를 예측하면 몇 점인가?
5.2 × 6 + 38.4 = 69.6이다. 64.4점은 5시간, 74.8점은 7시간의 예측값이다. 72.0점은 6번 학생의 실제 점수다.
경사하강법에서 학습률을 지나치게 작게 두었을 때 일어나는 일은 무엇인가?
학습률은 한 번에 옮기는 정도다. 너무 작으면 조금씩만 움직인다. 학습률 0.001로 5,000번 반복했을 때 오차가 6.692에 머문 것이 그 예다.