Classification과 Regression은 머신러닝에서 예측하고자 하는 문제의 유형에 따라 사용하는 두 가지 주요 방법이다.
Classification(분류)
Classification은 데이터가 특정 카테고리나 클래스에 속하는지 예측하는 방법이다. 예를 들어, 이메일을 스팸 또는 정상으로 분류하거나, 고양이와 개 이미지를 분류하는 것이 있다.
출력값이 이산적(discrete)으로 특정 클래스 중 하나로 분류된다. 또한 모델의 학습 결과로 확률 값 또는 특정 클래스를 예측하게 된다.
사용되는 알고리즘에는 로지스틱 회귀, 의사결정 나무, 서포트 벡터 머신(SVM), 랜덤 포레스트, 신경망 등이 있다.
예시
- 스팸 이메일 필터링: 이메일이 스팸인지 아닌지 0 또는 1로 구분
- 이미지 분류: 입력된 이미지가 어떤 카테고리에 속하는지 예측
Regression(회귀)
Regression은 연속적인 숫자 값을 예측하는 방법으로, 주로 특정 입력 변수에 따라 정량적인 값을 예측하는 데 사용된다. 예를 들어, 내일의 주식 가격이나 주택 가격을 예측하는 것이 Regression이다.
일반적으로 출력값이 연속적(continuous)으로 특정 범위 내의 값을 가질 수 있다.
딥러닝에선 학습 안정성과 손실 함수의 다양성의 측면에서도 회귀적인 방식을 사용한다. 최적화와 일반화 성능을 높이기 위해 회귀 손실(MSE, MAE 등)을 기반으로 하는 방법은 여전히 중요하다. 예를 들어, GAN(생성적 적대 신경망)이나 VAE(변분 오토인코더) 같은 모델은 회귀적인 손실 함수로 학습 안정성을 높이고, 다양한 손실 조합으로 학습한다.
사용되는 알고리즘에는 선형 회귀, 다항 회귀, 서포트 벡터 회귀(SVR), 랜덤 포레스트 회귀, 신경망 등이 있다.
예시
- 주택 가격 예측: 주택 크기, 위치 등의 정보를 기반으로 가격을 예측
- 온도 예측: 기상 데이터로 다음 날의 온도를 예측
주요 차이점
속성 | Classification | Regression |
출력값 | 이산적 클래스 (ex: 스팸 vs 정상) | 연속적인 숫자 (ex: 가격, 온도) |
문제 유형 | 카테고리 분류 | 값 예측 |
알고리즘 예시 | 로지스틱 회귀, SVM, 결정 트리 | 선형 회귀, 다항 회귀, SVR |
손실 함수 예시 | 크로스 엔트로피, 이진 교차 엔트로피 | 평균 제곱 오차, 평균 절대 오차 |
위와 같이 Classification과 Regression의 차이에 대해 알아보았다.
최근 회귀와 분류의 경계가 흐려지고 있다 느껴진다. 문제는 단순히 분류나 회귀에 국한되지 않고 두 가지가 함께 필요한 경우가 많다. 예를 들어, 객체 검출은 객체의 존재 여부(분류)와 객체 위치의 좌표 예측(회귀)을 포함한다.
언어 모델에서도 다음 단어의 로짓(logit) 계산은 회귀 방식으로 수행되며, 이를 Softmax를 통해 확률로 변환하여 분류 결과를 얻는다.
그럼 만약 연속적 문제에서 Classification을 사용하거나 이산적 문제에서 Regression을 사용하면 어떻게 될까?
연속적 문제에 분류를 사용하는 경우
case: 나이대나 가격대를 구간으로 나눠 구간별 예측하는 경우
장점
- 간단한 설계 가능: 연속적인 값을 구간으로 나누어 학습시키면 다중 클래스 분류 문제로 설계가 가능하여, 분류 모델이나 Softmax를 사용할 수 있다.
- 설명력 증가: 구간별로 분류되므로, 예측값의 범위를 이해하기 쉬울 수 있다. 예를 들어, "1020대, 2030대"처럼 결과가 해석 가능한 구간으로 나오는 경우.
단점
- 정밀도 손실: 연속적 예측을 구간으로 단순화하면, 특정한 값이 아닌 구간별 결과만 제공되어 정밀도가 떨어질 수 있다.
- 경계 문제 발생: 구간 경계선에 가까운 예측은 실제 값과 크게 다를 수 있다. 예를 들어, 실제 값이 19.9인데 20~30대에 분류되는 경우 오차가 커질 수 있다.
- 클래스 불균형: 값의 분포에 따라 특정 구간이 데이터의 대부분을 차지하는 경우, 학습에 불균형이 생겨 모델이 정확히 학습하기 어려워질 수 있다.
이산적 문제에 회귀를 사용하는 경우
case: 개나 고양이 종류처럼 명확히 나뉜 카테고리를 연속값으로 예측
장점
- 연속적인 출력을 통해 확률적 해석 가능: 회귀 모델이 특정 클래스에 대한 연속적 출력을 제공하므로, 값이 특정 임계값에 가까워지는 정도로 클래스에 대한 확신 정도를 유추할 수 있다.
- 순서 정보 유지: 일부 이산적인 문제에서 순서가 있는 경우(예: 상품 등급) 회귀가 순서를 더 잘 반영할 수 있다.
단점
- 정확한 분류가 어려움: 회귀 모델은 클래스를 정확히 나누는 데 최적화되지 않으므로 정확한 분류가 어려울 수 있다. 예를 들어, "0.9"에 가까운 값을 개로, "0.1"에 가까운 값을 고양이로 분류해야 하는데, 확신이 떨어진다.
- 과적합 위험: 이산적 문제에 대해 회귀 모델이 값을 맞추기 위해 지나치게 조정되면 특정 값에 과적합될 수 있다.
- 해석의 어려움: 연속값을 이산적 결과로 해석해야 하기 때문에 해석이 어렵고, 경우에 따라 임계값을 설정하는 등의 추가적인 처리가 필요하다.