모던지 / 빅데이터분석기사 / 데이터 탐색 4강. 파생변수와 데이터 변환

데이터 탐색 4강. 파생변수와 데이터 변환

사기 거래가 천 건에 한 건인 데이터에서 "전부 정상입니다"라고 답하는 모델은 정확도 99.9퍼센트를 받습니다. 불균형 처리는 이 함정에서 시작합니다.

풀고 시작

문제 1. 값을 0과 1 사이로 옮기기 위해 최솟값을 빼고 최댓값과 최솟값의 차이로 나누는 변환은?
최솟값이 0, 최댓값이 1이 되도록 눌러 맞추는 것이 최소최대 정규화입니다. 표준화는 평균을 0, 표준편차를 1로 맞추는 변환이라 결과가 특정 구간에 갇히지 않습니다.

없던 변수를 만들어 내는 일

원본 데이터에 답이 그대로 들어 있는 경우는 드뭅니다. 생년월일 칸은 그 자체로는 쓸모가 적지만 나이로 바꾸면 쓸 만해지고, 구매 일시는 요일과 시간대로 쪼개는 순간 주말 소비 패턴이 보입니다. 키와 몸무게가 따로 있을 때보다 둘을 합친 체질량지수 하나가 건강 예측에 더 강할 수도 있죠.

이렇게 만든 변수를 파생변수라고 합니다. 시험은 이것을 요약변수와 구분시키기를 좋아합니다. 요약변수는 합계나 평균처럼 데이터를 집계해 만든 객관적인 값이고, 파생변수는 만든 사람의 판단과 도메인 지식이 들어간 변수입니다. 고객별 총 구매액은 요약변수, 그 사람을 충성 고객으로 볼지 정하는 지표는 파생변수인 셈이죠.

파생변수의 힘은 여기서 나옵니다. 모델을 바꾸는 것보다 변수를 잘 만드는 편이 성능을 더 크게 올리는 경우가 많습니다. 대신 만든 사람의 가정이 그대로 모델에 박히므로, 어떤 판단이 들어갔는지 기록해 두셔야 합니다.

단위를 맞추는 변환

키는 170 언저리이고 연 소득은 5000만 언저리입니다. 이 둘을 그대로 거리 계산에 넣으면 소득이 키를 완전히 눌러 버립니다. 거리나 기울기를 쓰는 알고리즘에서 스케일 조정이 필수인 이유입니다.

변환 결과 특징
최소최대 정규화 0과 1 사이 범위가 고정되지만 이상값에 크게 흔들림
표준화 (z-score) 평균 0, 표준편차 1 범위가 고정되지 않고 이상값에 덜 민감
로그 변환 오른쪽 꼬리를 압축 소득, 매출처럼 치우친 분포에 적합
이산화 연속값을 구간으로 해석이 쉬워지지만 정보가 줄어듦

여기서 실수하기 쉬운 지점을 하나 짚겠습니다. 스케일 변환의 기준값은 학습 데이터에서만 계산해야 합니다. 전체 데이터의 평균과 표준편차로 표준화한 뒤에 학습과 평가로 나누면, 평가 데이터의 정보가 이미 학습 쪽에 스며든 상태가 됩니다. 이것을 데이터 누수라고 부르고, 시험 성적은 좋아 보이는데 실제 운영에서 무너지는 전형적인 원인입니다.

범주형 변수도 숫자로 바꿔야 합니다. 각 범주를 0과 1의 새 열로 펼치는 원-핫 인코딩과, 범주에 번호를 매기는 레이블 인코딩이 있습니다. 서울에 1, 부산에 2, 대구에 3을 붙이면 모델은 대구가 서울의 세 배라고 오해할 수 있으니, 순서가 없는 범주에는 원-핫이 안전합니다. 다만 범주가 수천 개면 열이 수천 개로 늘어나 차원의 저주로 되돌아가죠.

한쪽으로 쏠린 데이터

정상 거래 999건에 사기 1건인 데이터를 생각해 보죠. 모델이 아무것도 배우지 않고 전부 정상이라고 찍어도 정확도는 99.9퍼센트입니다. 정확도가 아무 의미 없어지는 이 상황을 정확도 역설이라고 부릅니다. 처리 방법은 셋입니다.

과소표집(언더샘플링)은 많은 쪽을 덜어 냅니다. 빠르지만 멀쩡한 데이터를 버리므로 정보 손실이 있습니다. 과대표집(오버샘플링)은 적은 쪽을 늘립니다. 단순 복제는 같은 점이 겹겹이 쌓여 과대적합을 부르기 쉽죠. 그래서 나온 것이 SMOTE입니다. 소수 클래스의 점과 그 이웃 사이를 잇고 그 선 위의 새로운 점을 합성해 냅니다. 복사가 아니라 보간이라는 것이 요점입니다.

여기서도 순서가 중요합니다. SMOTE는 학습 데이터에만 적용합니다. 나누기 전에 합성하면 평가 데이터에 학습 데이터에서 만들어진 쌍둥이가 섞여 들어가 성능이 부풀려집니다. 샘플링 대신 소수 클래스에 가중치를 더 주거나, 분류 임곗값을 조정하는 방법도 있습니다.

인출 문제

문제 1. SMOTE에 대한 설명으로 옳은 것은?
기존 점을 복사하는 것이 아니라 이웃과의 사이에 없던 점을 만들어 낸다는 점이 SMOTE의 핵심입니다. 단순 복제는 동일한 점이 중복되어 과대적합 위험이 크고, 다수 클래스 제거는 과소표집에 해당합니다.
문제 2. 전체 데이터로 표준화를 수행한 뒤 학습용과 평가용으로 분할하면 생기는 문제는?
평균과 표준편차를 전체에서 계산하면 그 안에 평가 데이터의 정보가 들어갑니다. 결과적으로 평가 성적이 실제보다 좋게 나오고 운영 환경에서 성능이 떨어집니다. 기준값은 학습 데이터에서만 구해 평가 데이터에 적용해야 합니다.
문제 3. 거주 도시처럼 순서가 없는 범주형 변수를 레이블 인코딩으로 1, 2, 3을 부여했을 때의 문제는?
순서가 없는 범주에 번호를 붙이면 3이 1보다 크다는 관계가 생겨 버립니다. 이를 피하려면 각 범주를 별도의 0과 1 열로 펼치는 원-핫 인코딩을 씁니다. 다만 범주 수가 많으면 열이 급격히 늘어납니다.
문제 4. 요약변수와 파생변수의 구분으로 가장 적절한 것은?
고객별 총 구매 금액이나 방문 횟수처럼 계산 규칙이 정해진 집계값이 요약변수입니다. 그 값들을 근거로 우수 고객 여부를 정의하는 것처럼 분석자의 기준이 개입하면 파생변수가 됩니다.

더 풀기

출제기준의 세세항목을 따라 이 강의 범위에서 새로 낸 문제입니다. 불균형 데이터 처리도 여기에 함께 담았습니다.

묶음 1

문제 1. 최소최대 정규화의 결과로 옳은 것은?
최솟값을 0, 최댓값을 1로 놓고 그 사이에 배치합니다. 이상값이 있으면 나머지 값이 좁은 구간에 몰리는 약점이 있습니다.
문제 2. 표준화가 최소최대 정규화보다 이상값에 덜 민감한 이유로 가장 알맞은 것은?
최소최대 방식은 극단값 하나가 전체 범위를 정해 버립니다. 표준화는 전체 분포의 요약값을 씁니다.
문제 3. 로그 변환을 적용하기 어려운 경우로 가장 알맞은 것은?
로그는 양수에만 정의됩니다. 그래서 1을 더한 뒤 취하거나 다른 변환을 씁니다.
문제 4. 박스콕스 변환의 목적으로 가장 알맞은 것은?
데이터에서 변환 모수를 추정해 정규성에 가장 가까운 변환을 고르는 방법입니다.
문제 5. 이산화의 장단점으로 옳은 것은?
구간으로 묶으면 설명하기 쉬워지는 대신 구간 내 차이가 사라집니다.
문제 6. 등폭 구간화와 등빈도 구간화의 차이로 옳은 것은?
치우친 분포에서는 등폭이 한 구간에 대부분을 몰아넣으므로 등빈도가 나은 경우가 많습니다.
문제 7. 원핫 인코딩에 대한 설명으로 옳은 것은?
순서가 없는 범주에 정수를 주면 없는 대소 관계를 만들게 되므로 각 범주를 별도 열로 펼칩니다.
문제 8. 범주의 가짓수가 매우 많을 때 원핫 인코딩의 문제로 가장 알맞은 것은?
고유 범주가 수천 개면 열도 수천 개가 됩니다. 빈도 인코딩이나 목표값 인코딩, 임베딩으로 대응합니다.
문제 9. 목표값 인코딩에서 주의해야 할 점으로 가장 알맞은 것은?
목표를 이용해 만든 값이므로 전체 데이터로 계산하면 성능이 부풀려집니다.
문제 10. 순서형 범주에 적합한 인코딩으로 가장 알맞은 것은?
하, 중, 상처럼 순서가 있으면 정수 부여가 의미를 보존합니다. 순서가 없는 범주에 쓰면 잘못된 가정이 생깁니다.
문제 11. 파생변수 생성의 예로 보기 어려운 것은?
학습률은 모델의 설정입니다. 나머지는 기존 변수에서 새로운 의미를 뽑는 파생변수 생성입니다.
문제 12. 파생변수를 만들 때 가장 경계해야 할 것으로 가장 알맞은 것은?
결과가 확정된 뒤의 정보를 넣으면 검증 성능은 좋아 보여도 실제로는 쓸 수 없는 모형이 됩니다.

묶음 2

문제 1. 불균형 데이터에서 정확도를 성능 지표로 쓰면 안 되는 이유로 가장 알맞은 것은?
양성이 1퍼센트인 데이터에서 전부 음성이라 답해도 정확도는 99퍼센트입니다. 재현율과 정밀도, F1을 함께 봅니다.
문제 2. 언더샘플링에 대한 설명으로 옳은 것은?
다수 쪽을 덜어 내는 방식입니다. 계산이 가벼워지지만 정보 손실이 생깁니다.
문제 3. 오버샘플링의 단점으로 가장 알맞은 것은?
단순 복제는 새로운 정보를 주지 않으면서 그 사례에 모형을 과하게 맞추게 만듭니다.
문제 4. SMOTE의 원리로 옳은 것은?
이웃 사이의 선분 위에 새 점을 만들어 다양성을 더합니다. 다만 경계가 흐린 영역에서는 잡음을 키울 수 있습니다.
문제 5. 토멕 링크를 활용한 언더샘플링의 아이디어로 가장 알맞은 것은?
경계에 붙어 혼란을 주는 다수 사례를 제거해 클래스 경계를 선명하게 만듭니다.
문제 6. 불균형 데이터에 대응하는 방법 가운데 데이터를 건드리지 않는 접근은?
학습 시 소수 클래스의 오분류에 더 큰 벌점을 주거나 판정 임계값을 옮기는 방식입니다.
문제 7. 불균형 데이터에서 임계값을 낮추면 일반적으로 나타나는 변화는?
양성으로 판정하는 범위를 넓히므로 놓치는 것은 줄지만 잘못 잡는 것도 늡니다.
문제 8. 리샘플링을 적용해야 하는 데이터 범위로 옳은 것은?
평가가 현실의 분포를 반영해야 하므로 검증과 시험 데이터는 손대지 않습니다.
문제 9. 정규화와 표준화를 훈련과 시험 데이터에 적용하는 올바른 방식은?
시험 데이터의 통계량을 쓰면 정보 누출이 됩니다. 기준은 언제나 훈련 데이터에서 나옵니다.
문제 10. 스케일링이 특히 중요한 알고리즘으로 보기 어려운 것은?
트리는 각 변수의 분할 지점만 보므로 단위에 영향을 받지 않습니다. 나머지는 거리나 분산에 의존합니다.
문제 11. 왜도가 큰 변수를 다룰 때 우선 고려할 변환으로 가장 알맞은 것은?
표준화는 위치와 척도만 바꿀 뿐 모양을 바꾸지 못합니다. 치우침을 줄이려면 비선형 변환이 필요합니다.
문제 12. 변수 변환 후에도 반드시 확인해야 할 것으로 가장 알맞은 것은?
통계적으로 좋아졌어도 설명할 수 없는 값이 되면 활용이 어렵습니다.

묶음 3

문제 1. 파생변수 생성에서 도메인 지식이 중요한 이유로 가장 알맞은 것은?
체질량지수처럼 의미 있는 조합은 업무 지식에서 나옵니다. 무작정 조합하면 잡음만 늘어납니다.
문제 2. 시간 변수에서 뽑을 수 있는 파생변수로 보기 어려운 것은?
이름은 시간 정보에서 나오지 않습니다. 나머지는 시각에서 파생되는 대표적 변수입니다.
문제 3. 집계 기반 파생변수의 예로 가장 알맞은 것은?
기간이나 그룹 단위로 요약해 만든 값이 집계 파생변수입니다.
문제 4. 비율 형태의 파생변수를 만들 때 주의할 점으로 가장 알맞은 것은?
분모가 작은 소수 사례에서 극단값이 만들어집니다. 하한을 두거나 평활화를 적용합니다.
문제 5. 데이터 변환 순서로 가장 자연스러운 것은?
결측과 이상값이 남아 있으면 스케일링 기준값 자체가 왜곡됩니다.
문제 6. 로버스트 스케일링이 표준화와 다른 점으로 옳은 것은?
극단값이 많은 데이터에서 표준화보다 안정적으로 작동합니다.
문제 7. 다항 특성을 추가할 때 생기는 위험으로 가장 알맞은 것은?
차수를 올리면 조합이 폭증합니다. 규제와 검증으로 통제해야 합니다.
문제 8. 상호작용 항을 넣는 이유로 가장 알맞은 것은?
광고 효과가 계절에 따라 달라지는 식의 관계는 상호작용 항으로 표현합니다.
문제 9. 데이터 변환 결과를 재현하기 위해 반드시 저장해야 하는 것은?
평균과 표준편차, 구간 경계, 인코딩 사전 같은 기준값이 있어야 새 데이터에 같은 변환을 적용할 수 있습니다.
문제 10. 학습에는 없던 새로운 범주가 예측 시점에 들어왔을 때의 대응으로 가장 알맞은 것은?
운영에서는 반드시 생기는 상황이므로 인코딩 단계에서 미리 대비해 두어야 합니다.
문제 11. 불균형이 매우 심한 문제에서 평가 지표로 특히 유용한 것은?
소수 클래스에 초점을 맞추는 지표라 불균형 상황에서 정보가 많습니다. 회귀 지표는 애초에 적용 대상이 아닙니다.
문제 12. 리샘플링 없이 불균형을 다루는 알고리즘 수준의 방법으로 가장 알맞은 것은?
소수 클래스를 틀렸을 때 더 큰 벌점을 주어 학습 방향을 바꾸는 방식입니다.

이전: 3강 변수 선택과 차원 축소 · 다음: 5강 기초통계량과 탐색적 분석

모던지 · 궁금하면 모던지 GitHub · 2026-09-10