오늘은 기존의 단순선형회귀에서 한 단계 확장해, 실제 데이터에 더 잘 대응하기 위한 회귀 모델 확장 방법을 학습했다.
단순선형회귀는 하나의 X 변수로 Y를 예측하는 방식이다.
y = b0 + b1x
하지만 실제 데이터는 단순한 직선 관계로 설명되지 않는 경우가 많다.
그래서 입력 변수를 추가하거나, 기존 변수를 변형해서 모델이 더 복잡한 패턴을 학습할 수 있게 만든다.
2. 단순선형회귀와 다항회귀 차이
단순선형회귀는 데이터의 흐름을 직선으로 설명한다.
반면, 다항회귀는 x² 같은 항을 추가해서 데이터의 흐름을 곡선으로 설명할 수 있다.
단순선형회귀:
y = b0 + b1x
다항회귀:
y = b0 + b1x + b2x²
즉, 데이터가 직선 형태가 아니라 휘어진 형태를 보이면 단순선형회귀보다 다항회귀가 더 적합할 수 있다.
3. 수치형 데이터와 범주형 데이터
데이터는 크게 수치형 데이터와 범주형 데이터로 나눌 수 있다.
수치형 데이터
수치형 데이터는 숫자로 표현되는 데이터다.
| 연속형 데이터 | 값 사이가 무한히 나눠질 수 있음 | 키, 몸무게 |
| 이산형 데이터 | 값 사이가 유한하게 나눠짐 | 주사위 눈, 나이 |
범주형 데이터
범주형 데이터는 특정 그룹이나 종류를 나타내는 데이터다.
| 순서형 자료 | 순서 의미가 있음 | 학점, 등급 |
| 명목형 자료 | 순서 의미가 없음 | 혈액형, 성별 |
4. 범주형 데이터 인코딩
머신러닝 모델은 기본적으로 숫자를 기반으로 학습한다.
따라서 성별, 혈액형, 날짜처럼 문자나 범주로 표현된 데이터는 그대로 사용할 수 없다.
이런 데이터를 숫자로 바꾸는 과정을 인코딩(Encoding) 이라고 한다.
예를 들어 성별 데이터가 있다면 다음처럼 바꿀 수 있다.
남성 → 0
여성 → 1
하지만 명목형 데이터는 순서 의미가 없기 때문에 단순히 숫자를 부여할 때 주의해야 한다.
모델이 1이 0보다 크다는 식으로 잘못 해석할 수 있기 때문이다.
5. 오늘의 실습 흐름
오늘 실습의 흐름은 다음과 같다.
- 범주형 데이터 확인
- 범주형 데이터를 숫자로 인코딩
- 회귀 모델 훈련
- 모델 학습
- 예측 결과 평가
핵심은 모델에 넣기 전 데이터 형태를 맞춰야 한다는 것이다.
좋은 모델을 쓰는 것도 중요하지만, 그 전에 데이터를 모델이 이해할 수 있는 형태로 바꾸는 전처리가 중요하다는 점을 다시 확인했다.
6. 오늘의 핵심 인사이트
오늘 학습하면서 가장 중요하게 느낀 점은 다음이다.
회귀 모델의 성능은 단순히 모델 자체보다도
어떤 변수를 넣고, 데이터를 어떻게 변환하느냐에 크게 영향을 받는다.
단순선형회귀로 설명이 부족한 데이터는 변수 추가나 다항식 변환을 통해 더 잘 설명할 수 있다.
또한 범주형 데이터는 인코딩을 거쳐야 머신러닝 모델에 사용할 수 있다.
즉, 머신러닝에서 중요한 것은 단순히 알고리즘을 실행하는 것이 아니라,
데이터의 특성을 이해하고 모델이 학습 가능한 형태로 설계하는 과정이다.