변수 변환과 파생변수
쉽게 말하면
키(cm)와 연봉(원)을 같이 넣으면 숫자가 큰 연봉이 모든 걸 좌우해요. 그래서 크기를 비슷하게 맞추는 정규화·표준화를 해요. 소득처럼 몇몇 값이 아주 큰 데이터는 로그를 씌워 꼬리를 줄여요. '서울·부산·대구' 같은 글자 범주는 숫자로 바꿔야 모형이 읽을 수 있어요.
시험용 정의
변수 변환은 변수의 크기·분포·형태를 분석에 알맞게 바꾸는 일이다. 단위가 다른 변수의 크기를 맞추는 척도 조정에는 0~1 범위로 맞추는 최소-최대 정규화와 평균 0·표준편차 1 로 맞추는 표준화(z점수)가 있다. 한쪽으로 치우친 분포는 로그 변환, 제곱근 변환, 박스-콕스 변환으로 정규분포에 가깝게 만든다. 연속형 값을 구간으로 나누는 구간화(비닝), 범주형을 숫자로 바꾸는 인코딩(원-핫, 레이블)도 변환이다. 기존 변수를 조합해 분석에 더 쓸모 있는 새 변수를 만드는 것은 파생변수 생성이다.
비유로 이해하기
다른 나라 돈을 비교하려면 원화로 환산해야 하듯, 단위가 다른 변수는 같은 잣대로 맞춘다(정규화·표준화). 몇몇 부자의 재산 때문에 그래프가 한쪽으로 쏠리면 '자릿수'로 보는 것이 로그 변환이다.
자세히
척도 조정
| 방법 | 식 | 결과 | 주의 |
|---|---|---|---|
| 최소-최대 정규화 | (x - min) / (max - min) | 0 ~ 1 | 이상값 하나가 범위를 크게 흔든다 |
| 표준화 (z점수) | (x - 평균) / 표준편차 | 평균 0, 표준편차 1 | 범위가 정해져 있지 않다. 거리 기반 기법(k-평균, k-NN)과 신경망에 자주 씀 |
| 로버스트 척도 | (x - 중앙값) / 사분위범위 | 이상값 영향이 적음 | 중앙값과 IQR 을 씀 |
분포를 바꾸는 변환
| 변환 | 언제 | 주의 |
|---|---|---|
| 로그 변환 | 오른쪽 꼬리가 긴 분포(소득, 매출) | 0 이하는 못 씀. log(x + 1) |
| 제곱근 변환 | 약하게 오른쪽으로 치우친 분포, 횟수 자료 | 음수는 못 씀 |
| 박스-콕스 변환 | λ 를 골라 정규분포에 가깝게 | 양수만. 음수도 있으면 여-존슨 변환 |
| 제곱·지수 변환 | 왼쪽 꼬리가 긴 분포 | 값이 커지므로 주의 |
구간화와 인코딩
| 방법 | 하는 일 | 예 |
|---|---|---|
| 등간격 구간화 | 같은 폭으로 나눔 | 0~9, 10~19, 20~29세 |
| 등빈도 구간화 | 구간마다 관측값 수가 같게 | 소득 하위 25%, 25~50% … |
| 원-핫 인코딩 | 범주마다 0/1 열을 하나씩 | 지역 서울 → [1, 0, 0] |
| 더미변수 | 회귀에서 기준 범주를 빼고 k-1개 열 | 서울을 기준으로 부산·대구 두 열 |
| 레이블 인코딩 | 범주에 정수 번호 | S=0, M=1, L=2 (순서 있는 범주에 알맞음) |
순서가 없는 범주(지역)에 레이블 인코딩을 쓰면 모형이 '대구(2) > 부산(1)' 같은 없는 크기 관계를 배울 수 있다. 회귀에서 범주 k개를 원-핫으로 k개 열 모두 넣으면 열의 합이 늘 1 이라 완전한 다중공선성이 생기므로 k-1개(더미변수)만 넣는다.
파생변수 만들기
- 비율·단위 변환: 구매액 ÷ 방문 수 = 방문당 구매액, 키·몸무게 → 체질량지수
- 날짜에서 뽑기: 요일, 주말 여부, 월, 가입 후 경과 일수
- 요약: 최근 3개월 구매 횟수, 평균 구매액 (요약변수)
- 너무 많이 만들면 변수끼리 상관이 커지고 과대적합 위험이 커진다. 의미 있는 것만 남긴다
시험에 이렇게 나와요
- 최소-최대 정규화 계산과 이상값 민감성
- 표준화: 평균 0, 표준편차 1 (z점수)
- 오른쪽 꼬리 → 로그·제곱근·박스-콕스, 0 이하가 있으면 log(x+1)
- 원-핫 인코딩(명목형), 레이블 인코딩(순서형), 더미변수 k-1개
- 구간화: 등간격 vs 등빈도
출제기준 2과목 '파생변수 생성, 변수 변환'
확인 문제
Q1. 값 10, 20, 30, 40, 50 을 최소-최대 정규화하면 30 은 얼마가 되나?
- 0.3
- 0.5
- 0.6
- 30
정답 보기
2번 0.5
(30 - 10) / (50 - 10) = 20 / 40 = 0.5. 최솟값은 0, 최댓값은 1 이 된다.
Q2. 평균 50, 표준편차 10 인 시험에서 70점의 z점수는?
- 0.7
- 1
- 2
- 20
정답 보기
3번 2
(70 - 50) / 10 = 2.
Q3. 소득처럼 오른쪽으로 길게 치우친 분포를 정규분포에 가깝게 할 때 가장 알맞은 변환은?
- 레이블 인코딩
- 로그 변환
- 제곱 변환
- 원-핫 인코딩
정답 보기
2번 로그 변환
큰 값을 크게 줄이는 로그 변환이 오른쪽 꼬리를 줄인다.
Q4. '혈액형(A, B, O, AB)'을 회귀분석에 넣을 때 알맞은 방법은?
- 최소-최대 정규화
- 모두 삭제
- 기준 하나를 빼고 더미변수 3개 열로
- A=1, B=2, O=3, AB=4 로 바꿔 한 열로
정답 보기
3번 기준 하나를 빼고 더미변수 3개 열로
순서 없는 범주는 기준 범주를 뺀 k-1개 더미변수로 넣는다.
Q5. 최소-최대 정규화의 단점으로 알맞은 것은?
- 이상값 하나가 범위를 크게 바꾼다
- 범주형에만 쓸 수 있다
- 평균이 0 이 되지 않는다
- 음수가 생긴다
정답 보기
1번 이상값 하나가 범위를 크게 바꾼다
최댓값·최솟값을 쓰므로 극단값에 민감하다.
Q6. 구간마다 관측값 수가 같게 나누는 구간화는?
- 원-핫 인코딩
- 등빈도 구간화
- 등간격 구간화
- 박스-콕스 변환
정답 보기
2번 등빈도 구간화
같은 개수씩 나누는 것이 등빈도(동일 빈도) 구간화다.
헷갈리기 쉬운 O·X
표준화를 하면 모든 값이 0 과 1 사이에 들어간다.
정답 보기
X 0~1 은 최소-최대 정규화. 표준화는 평균 0, 표준편차 1 로 맞출 뿐 범위가 정해져 있지 않다.
박스-콕스 변환은 양수 데이터에만 쓸 수 있다.
정답 보기
O 음수가 있으면 여-존슨 변환을 쓴다.
순서가 없는 명목형 범주에는 레이블 인코딩이 가장 알맞다.
정답 보기
X 없는 크기 관계가 생긴다. 명목형은 원-핫 인코딩이 알맞다.