모형 안에서 독립변수(\(X\))와 종속변수(\(y\)) 간의 관계를 표현하기 위해 조절할 수 있는 매개변수.
파라미터의 값이 달라지면, 같은 모형이라도 다른 예측을 한다.
3.6.2 파라미터 vs 하이퍼파라미터
모형에 관련된 숫자가 전부 학습으로 정해지는 것은 아니다.
하이퍼파라미터 (Hyperparameter)
학습으로 정해지지 않고, 사람이 미리 정해 주어야 하는 값.
누가 정하는가
예
파라미터
데이터가 정한다 (= 학습)
가중치 \(w_1\), 편향 \(w_0\)
하이퍼파라미터
사람이 정한다
다항식의 차수, 은닉층의 노드 수(Ch02), 학습률·배치 크기(Ch04)
\(y = w_0 + w_1 x + w_2 x^2\)에서 “2차식으로 하자”는 사람의 결정(하이퍼파라미터)이고, \(w_0, w_1, w_2\)의 값은 데이터가 정한다(파라미터). 하이퍼파라미터를 잘못 고르면 학습을 아무리 잘해도 좋은 모형이 나오지 않는다 — Ch04에서 확인한다.
3.6.3 수치 예시: 파라미터에 따른 예측 변화
모형 \(y = w_0 + w_1 x\)에서 파라미터를 다르게 설정하면 같은 경력(7년)에 대해 다른 연봉을 예측한다.
직선으로 충분한가? 슬라이더를 아무리 조절해도 이 데이터의 모든 점을 지나는 직선은 없다. 실제로 이 사원 데이터는 경력이 길어질수록 연봉이 가팔라지는 모양이라, 직선보다 곡선이 더 잘 맞는다. 그렇다면 2차식, 3차식으로 차수를 계속 올리면 항상 좋아질까? — 이 질문의 답은 Ch04의 과적합에서 만난다. (차수는 사람이 정하는 하이퍼파라미터였음을 기억하라.)
3.8 모형의 이용: 예측과 추론
3.8.1 예측 (Prediction)
예측 (Prediction)
새로운 데이터의 \(x\)값이 주어질 때, 학습된 파라미터를 이용하여 \(y\)값을 예측하는 것.
학습된 모형이 \(y = 15000 + 8000x\)라면:
코드
import pandas as pdrows = []for x_new in [4, 6, 8, 10]: y_pred =15000+8000* x_new rows.append({'경력 (년)': x_new,'예측식': f'15000 + 8000 × {x_new}','예측 연봉 ($)': f'{y_pred:,}', })pd.DataFrame(rows).to_html(index=False, border=0, escape=False)
표 3.5: 학습된 모형을 이용한 예측
경력 (년)
예측식
예측 연봉 ($)
4
15000 + 8000 × 4
47,000
6
15000 + 8000 × 6
63,000
8
15000 + 8000 × 8
79,000
10
15000 + 8000 × 10
95,000
3.8.2 추론 (Inference)
추론 (Inference)
\(y\)를 예측하는 데 있어 \(X\)의 중요한 특성(feature)이 무엇인지, 그리고 그 방향성에 대하여 설명하는 것.
모든 모형에서 추론이 가능하지는 않다
명확한 수학적 형태를 가진 모형에서만 가능
\(y = 15000 + 8000x\)에서 추론할 수 있는 것:
파라미터
값
추론 내용
\(w_0 = 15000\)
절편
회사에 처음 입사 시 연봉이 약 $15,000
\(w_1 = 8000\)
기울기
1년 경력이 늘 때마다 연봉이 약 $8,000씩 인상
주의 — 추론은 인과가 아니다
위 문장은 “이 데이터에서 경력과 연봉이 함께 움직였다”는 관찰이다. 경력이 연봉을 올린 원인이라는 뜻이 아니다.
경력이 긴 사람이 애초에 능력이 좋았을 수도 있고, 두 변수 모두 나이의 영향을 받았을 수도 있다. 인과를 주장하려면 실험 설계가 필요하다 — 데이터를 관찰하는 것만으로는 알 수 없다. 모형이 알려주는 것은 언제나 연관성이지 인과가 아니다.
3.9 변수의 종류
3.9.1 숫자형 변수 (Numerical Variable)
숫자형 변수
실수나 정수로 표현할 수 있으며, 값의 차이가 의미를 가지는 변수.
예: 나이(56, 24, …), 온도(27.2, 24.0, …), 연봉(40000, …)
3.9.2 범주형 변수 (Categorical Variable)
범주형 변수
실수로 표현할 수 없으며, 분절된 서로 다른 값을 가지는 변수.
예: 성별 {남자, 여자}, 브랜드 {삼성, 애플}, 결혼여부 {yes, no}
서로 다른 값에 숫자를 부여하더라도(남=1, 여=2) 숫자 간의 차이는 무의미
3.9.3 순서형 변수 (Ordinal Variable)
범주형과 숫자형 사이에 하나가 더 있다. 실무에서 매우 자주 나오는데, 놓치기 쉽다.
순서형 변수
범주형이지만 순서가 있는 변수. 크기 비교는 되지만, 간격은 의미가 없다.
예: 학점 {A, B, C}, 만족도 {매우 불만 … 매우 만족}, 제품 등급 {1등급, 2등급, 3등급}
“A는 B보다 위”는 말이 되지만, “A − B 와 B − C 가 같다”는 보장되지 않는다
3.9.4 세 종류를 가르는 두 개의 질문
질문
숫자형
순서형
범주형
값을 빼면 의미가 있는가?
✅
❌
❌
값에 순서가 있는가?
✅
✅
❌
나이 40 − 24 = 16년 → 뺄 수 있다 → 숫자형
학점 A − B = ? → 뺄 수 없다. 하지만 A > B → 순서형
부서 ‘영업’ − ‘개발’ = ? → 뺄 수도, 순서를 매길 수도 없다 → 범주형
이 구분이 Ch04에서 실제로 쓰인다. 신경망에 넣을 때 범주형은 원-핫 인코딩을 해야 하지만, 순서형은 순서를 살려 숫자로 넣는 편이 나은 경우가 많다 (A=3, B=2, C=1). 순서 정보를 버리지 않기 위해서다.