변수를 늘릴수록 모델이 똑똑해질 것 같지만 반대입니다. 차원이 늘면 데이터가 흩어지고, 흩어진 공간에서는 가깝다는 말이 뜻을 잃습니다.
풀고 시작
문제 1. 모델을 학습시키지 않고 상관계수나 카이제곱 통계량만으로 변수를 걸러 내는 방식은?
모델과 무관하게 통계량으로 미리 거르는 것이 필터입니다. 래퍼는 실제 모델 성능을 반복 측정해 조합을 찾고, 임베디드는 학습 과정 자체에 변수 선택이 들어 있습니다. 주성분 분석은 선택이 아니라 새 변수를 만드는 축소입니다.
차원이 늘면 세상은 텅 빕니다
1957년, 리처드 벨만이 동적 계획법을 다룬 책에서 차원의 저주라는 말을 만듭니다. 직관에 반하는 현상이라 예로 잡는 것이 빠릅니다.
한 변수를 열 구간으로 나눈다고 해 보죠. 각 구간에 데이터를 열 개씩 채우려면 백 개가 필요합니다. 변수가 둘이면 칸이 백 개라 천 개가 필요하고, 셋이면 만 개죠. 변수 하나가 늘 때마다 필요한 데이터가 곱하기로 늘어납니다. 현실의 데이터는 그렇게 늘지 않으니, 차원이 높아질수록 공간은 텅 비고 모든 점이 서로 멀어집니다. 가장 가까운 이웃과 가장 먼 이웃의 거리 차이가 줄어들면서 거리에 기대는 알고리즘이 먼저 무너지죠.
그래서 변수를 줄여야 합니다. 줄이는 방법에는 성격이 다른 두 갈래가 있습니다. 고를 것인가, 새로 만들 것인가.
고르는 쪽: 변수 선택
방식
어떻게
예
필터
모델 없이 통계량으로 미리 거름
상관계수, 카이제곱, 정보 이득, 분산
래퍼
변수 조합을 바꿔 가며 모델 성능으로 평가
전진 선택, 후진 제거, 단계적 선택
임베디드
학습 과정 안에서 자동으로 걸러짐
라쏘, 릿지, 의사결정나무
래퍼의 세 방법은 이름 그대로입니다. 아무것도 없는 상태에서 도움이 되는 변수를 하나씩 넣는 것이 전진 선택, 전부 넣고 쓸모없는 것을 하나씩 빼는 것이 후진 제거, 넣었다 뺐다를 오가는 것이 단계적 선택이죠. 모델을 매번 학습시키므로 정확하지만 느립니다.
임베디드의 대표는 라쏘입니다. 회귀 계수의 절댓값 합에 벌점을 매기는데, 그 벌점 구조 때문에 쓸모없는 변수의 계수가 정확히 0이 됩니다. 학습을 마치면 변수 선택이 이미 끝나 있는 셈이죠. 반면 릿지는 계수를 0에 가깝게 줄이기만 하고 0으로 만들지는 않습니다. 이 차이는 4과목 3강에서 다시 나옵니다.
만드는 쪽: 차원 축소
주성분 분석(PCA)은 원래 변수들을 조합해 새 축을 만듭니다. 첫 번째 축은 데이터가 가장 넓게 퍼진 방향으로 잡고, 두 번째 축은 첫 축과 직각을 이루면서 남은 분산을 가장 많이 설명하는 방향으로 잡습니다. 이렇게 만든 주성분 몇 개만 남기면 정보를 대부분 지키면서 차원이 줄죠.
기억할 성질이 셋입니다. 주성분끼리는 서로 직교하며 상관이 없고, 앞쪽 주성분일수록 설명하는 분산이 큽니다. 그리고 변수의 단위에 휘둘리므로 보통 표준화를 먼저 합니다. 몇 개를 남길지는 누적 설명 분산 비율이나 고윳값이 꺾이는 지점을 보고 정합니다.
선형판별분석(LDA)은 목적이 다릅니다. PCA는 정답을 보지 않고 그저 잘 퍼진 방향을 찾지만, LDA는 클래스를 잘 갈라 주는 방향을 찾습니다. 집단 간 분산은 크게, 집단 내 분산은 작게 만드는 축이죠. 그래서 PCA는 비지도, LDA는 지도 기법으로 분류됩니다.
축소의 대가는 분명합니다. 해석력을 잃습니다. 주성분 1번이 무엇인지 설명하려면 원래 변수들의 가중치를 다시 읽어야 하고, 그마저 깔끔한 이름이 붙지 않을 때가 많습니다. 모델 성능이 목적이면 축소가, 어떤 변수가 중요한지를 보고해야 하면 선택이 유리합니다.
인출 문제
문제 1. 주성분 분석의 성질로 옳지 않은 것은?
주성분은 원래 변수들의 선형결합으로 새로 만들어진 축입니다. 원래 변수 중 일부를 남기는 것은 변수 선택이며, 이 차이 때문에 주성분 분석은 해석력을 잃는 대신 차원을 효과적으로 줄입니다.
문제 2. 라쏘가 변수 선택 효과를 갖는 이유는?
계수의 절댓값 합에 벌점을 주는 구조에서는 일부 계수가 0에 정확히 도달합니다. 계수가 0이면 그 변수는 모델에서 빠진 것과 같으므로 학습이 끝나는 순간 선택도 끝납니다. 릿지는 0에 가깝게 줄일 뿐 0으로 만들지는 않습니다.
문제 3. PCA와 LDA의 차이로 옳은 것은?
PCA는 정답 라벨을 보지 않고 데이터가 가장 넓게 퍼진 방향을 찾는 비지도 기법이고, LDA는 집단 간 분산을 키우고 집단 내 분산을 줄이는 방향을 찾는 지도 기법입니다. 둘 다 차원 축소에 쓰입니다.
문제 4. 차원의 저주가 거리 기반 알고리즘에 특히 문제가 되는 이유는?
고차원에서는 공간이 비어 가면서 가장 가까운 이웃과 가장 먼 이웃의 거리가 비슷해집니다. 계산량 증가도 사실이지만 본질적인 문제는 거리라는 척도 자체가 변별력을 잃는다는 점입니다.
더 풀기
출제기준의 세세항목을 따라 이 강의 범위에서 새로 낸 문제입니다. 모의고사도 여기에서 뽑습니다.
묶음 1
문제 1. 차원의 저주가 뜻하는 현상으로 가장 알맞은 것은?
같은 표본 수로 훨씬 넓은 공간을 덮어야 하므로 이웃이 멀어지고 모형이 과적합되기 쉬워집니다.
문제 2. 변수 선택 방법 가운데 모델을 쓰지 않고 통계량만으로 미리 거르는 방식은?
상관계수나 카이제곱 같은 지표로 사전에 거르는 것이 필터입니다. 빠르지만 변수 조합의 효과는 보지 못합니다.
문제 3. 래퍼 방식의 특징으로 옳은 것은?
성능을 직접 보므로 조합 효과를 반영하지만 계산 비용이 큽니다.
문제 4. 전진 선택법에 대한 설명으로 옳은 것은?
비어 있는 모형에서 시작해 유의한 변수를 더해 갑니다. 반대로 다 넣고 빼는 것이 후진 제거법입니다.
문제 5. 단계적 선택법이 전진 선택법과 다른 점으로 옳은 것은?
추가와 제거를 오가며 조정하기 때문에 전진 선택의 한계를 일부 보완합니다.
문제 6. 임베디드 방식에 해당하는 것은?
라쏘는 학습 과정에서 계수를 0으로 만들어 변수를 자동으로 걸러 냅니다.
문제 7. 계수를 정확히 0으로 만들어 변수 선택 효과를 내는 규제는?
절댓값 벌점을 쓰는 라쏘에서만 계수가 정확히 0이 됩니다. 릿지는 제곱 벌점이라 0에 가깝게 줄이기만 합니다.
문제 8. 주성분분석의 목적으로 가장 알맞은 것은?
정보 손실을 최소화하면서 차원을 줄이는 것이 목적입니다. 예측이나 군집화 자체가 목적은 아닙니다.