이상치란 다른 데이터들과는 매우 다른 특성을 가진 포인트를 말합니다.
이상치의 의미와 영향
이상치는 데이터 세트의 나머지 부분과 비정상적으로 차이가 나는 데이터 포인트입니다. 이상치는 여러 가지 이유로 발생할 수 있습니다:
- 측정 오류
- 데이터 입력 실수
- 데이터 수집 과정에서의 문제
- 실제 변동성 (예: 경제적 이벤트, 자연 재해 등)
SVM에서 이상치는 결정 경계(분류를 위해 그려지는 선)에 큰 영향을 미칠 수 있습니다. 특히 SVM은 최대 마진을 찾는 모델이기 때문에, 이상치가 경계 근처에 위치하면 그 경계가 이상치에 의해 크게 왜곡될 수 있습니다. 이는 결국 모델의 일반화 능력을 저하시키며, 새로운 데이터에 대한 예측력이 떨어지는 원인이 됩니다.
이상치 탐지 방법
이상치를 탐지하는 방법은 여러 가지가 있습니다. 대표적인 몇 가지 방법은 다음과 같습니다:
- 통계적 방법:
- Z-점수: 데이터 포인트의 Z-점수는 해당 데이터가 평균에서 얼마나 멀리 떨어져 있는지를 표준편차 단위로 나타냅니다. 일반적으로 Z-점수가 ±3 이상인 경우, 그 데이터 포인트는 이상치로 간주될 수 있습니다.
- IQR(Interquartile Range): IQR은 데이터의 25번째 백분위수(Q1)와 75번째 백분위수(Q3)의 차이입니다. 이상치는 Q1보다 1.5IQR 이하이거나 Q3보다 1.5IQR 이상인 경우로 정의될 수 있습니다.
- 시각적 방법:
- 박스 플롯: 박스 플롯은 데이터의 분포를 보여주며, 이상치를 쉽게 식별할 수 있게 해줍니다. 박스 바깥에 위치한 점들이 이상치일 가능성이 높습니다.
- 산점도: 데이터 포인트들의 분포를 그래픽으로 나타내어 이상치를 시각적으로 파악할 수 있습니다.
이상치 처리 방법
SVM에서 이상치의 영향을 줄이기 위한 몇 가지 방법이 있습니다:
1. 핵심트릭 (Kernel Trick)
핵심트릭은 SVM에서 데이터가 선형적으로 구분되지 않는 경우에 사용하는 기법입니다. 즉, 데이터가 복잡하게 얽혀 있어 단순한 직선이나 평면으로는 구분하기 어려울 때 유용합니다. 핵심트릭은 원래 데이터를 고차원 공간으로 매핑하여, 이 높은 차원에서는 데이터를 선형으로 분리할 수 있게 해줍니다. 이 고차원 매핑은 실제로 데이터를 변환하지 않고도, 커널 함수라는 수학적 도구를 사용하여 고차원에서의 내적을 계산함으로써 효과적으로 수행됩니다. 대표적인 커널로는 선형 커널, 다항식 커널, RBF(방사 기저 함수) 커널 등이 있습니다.
2. 재표본화 (Resampling)
재표본화는 데이터 세트의 균형을 맞추거나 모델의 일반화 능력을 향상시키기 위해 사용하는 기법입니다. 특히 클래스 불균형이 심한 데이터 세트에서 유용하게 사용됩니다. 기본적인 두 가지 방법은 오버샘플링과 언더샘플링입니다:
- 오버샘플링: 소수 클래스의 샘플을 늘려서 다수 클래스의 샘플 수와 맞춥니다. 예를 들어, 특정 클래스의 예제를 복제하거나 변형하여 추가합니다.
- 언더샘플링: 다수 클래스의 샘플을 줄여서 소수 클래스의 샘플 수와 맞춥니다. 이는 일부 데이터를 제거함으로써 수행됩니다.
재표본화는 모델이 특정 클래스에 치우치지 않고 고르게 학습할 수 있도록 도와주며, 이로 인해 분류 성능이 향상될 수 있습니다.
3. 비용민감학습 (Cost-Sensitive Learning)
비용민감학습은 다양한 오류가 서로 다른 비용을 가지고 있다고 보고, 이를 모델 학습에 반영하는 방법입니다. 일반적인 학습 알고리즘은 모든 오류를 동일하게 취급하지만, 비용민감학습에서는 더 큰 문제를 일으킬 수 있는 오류에 더 높은 비용을 부과합니다. 예를 들어, 의료 진단에서 건강한 사람을 아프다고 잘못 판단하는 것보다, 실제로 아픈 사람을 건강하다고 잘못 판단하는 것이 더 큰 문제를 일으킬 수 있습니다. 이러한 상황에서 비용민감학습을 적용하면, 모델이 더 중요한 오류를 줄이도록 조정할 수 있습니다.
4. Soft Margin SVM의 기본 개념
SVM은 데이터를 가장 잘 나누는 선(또는 평면)을 찾아내는 방법입니다. 이 선을 경계선이라고 하며, 이 경계선은 각 데이터 그룹(클래스)을 가장 멀리 떨어트려 놓습니다. 하지만 실제 데이터에는 노이즈나 이상치가 포함되어 있어, 완벽하게 모든 데이터를 오류 없이 분류하는 것은 어려울 수 있습니다.
슬랙 변수(Slack Variable)
Soft Margin SVM에서는 이 문제를 해결하기 위해 "슬랙 변수"라는 개념을 도입합니다. 슬랙 변수는 각 데이터 포인트가 경계선을 얼마나 위반할 수 있는지를 허용하는 매개변수입니다. 간단히 말해, 데이터 포인트가 경계선을 약간 넘어가도 되는 '유연성'을 제공합니다.
작동 방식
예를 들어, 데이터 포인트가 경계선 바로 옆에 있거나, 심지어 반대편에 조금 걸쳐있어도 이를 완전히 오류로 처리하지 않고, 일정 수준까지는 허용할 수 있습니다. 이 때 슬랙 변수가 크면 클수록 더 많은 오류를 허용하게 되고, 그 결과 모델은 이상치나 노이즈에 덜 민감해집니다. 반대로 슬랙 변수가 작으면 경계선 위반을 적게 허용하게 되어, 모델은 더 엄격해지지만 이상치에 민감해질 수 있습니다.
이점
이 방식의 장점은 데이터의 작은 노이즈나 이상치에 모델이 과민반응하지 않도록 해주기 때문에, 실제 세계의 복잡하고 잡음이 많은 데이터에 대해 더 잘 작동할 수 있다는 것입니다. 모델이 너무 '엄격하지 않게' 유연하게 데이터를 처리할 수 있도록 도와줍니다.
슬랙 변수 vs 비용 변수
Soft Margin SVM에서의 슬랙 변수(slack variable)와 비용 변수(Cost Parameter, 흔히 CC로 표기됩니다)는 관련이 있지만 다릅니다. 이 둘은 모두 이상치를 다루는 방식을 조절하지만, 그 역할과 조절하는 방식이 서로 다릅니다.
슬랙 변수 (Slack Variable)
슬랙 변수는 각 데이터 포인트가 결정 경계를 어기고 (즉, 잘못 분류되는 것을) 얼마나 허용할 것인지를 나타내는 값입니다. 즉, 각 데이터 포인트에 대해 개별적으로 적용되며, 각 데이터 포인트가 얼마나 경계선을 넘어설 수 있는지를 나타냅니다. 이 변수들은 모델이 데이터 포인트들을 완벽하게 분류하지 못하는 경우의 비용을 계산하는 데 사용됩니다.
비용 변수 (Cost Parameter, CC)
비용 변수 CC는 모델이 슬랙 변수를 얼마나 중요하게 여기는지를 결정합니다. CC의 값이 클수록 모델은 오분류를 덜 허용하려고 하며, 슬랙 변수의 합계를 최소화하기 위해 더 많은 노력을 기울입니다. 즉, 각 데이터 포인트가 경계선을 넘는 것을 더 엄격하게 제한합니다. 반면에 CC가 낮을 경우, 모델은 오분류를 더 많이 허용하게 되어 더 넓은 마진을 가지게 되고, 이상치에 덜 민감해집니다.
관계
슬랙 변수는 각 데이터 포인트의 오류 허용 정도를 개별적으로 설정하는 반면, CC는 이러한 오류들이 전체 모델에 미치는 영향을 조절하는 전역적인 매개변수입니다. CC의 값을 조절함으로써, 모델의 일반화 능력과 오버피팅(과적합) 경향 사이의 균형을 조정할 수 있습니다.
'AI' 카테고리의 다른 글
파인튜닝과 RAG 차이, 언제 fine-tunning을 사용하고 RAG를 사용하나 (4) | 2024.09.24 |
---|---|
엔비디아 딥러닝 기초교육 수료 (7) | 2024.09.18 |
학습 모델 종류와 특징 (0) | 2024.08.01 |
SVM(Support vector machine) (0) | 2024.07.26 |
머신러닝 알고리즘 종류 - K-최근접 이웃 알고리즘 (K-Nearest Neighbors, KNN) (0) | 2024.07.24 |