728x90
비슷하지만, 점점 어려워지고 많아진다.
오늘은 분류와 로지스틱 회귀를 알아보자.
오늘의 배움 |
|
1. 분류
분류(Classification)는 주어진 데이터를 특정 클래스(또는 레이블)로 나누는 머신러닝의 대표적인 지도 학습 문제 유형이다.
- 분류의 특징
- 출력 값이 연속적인 숫자가 아니라, 유한한 클래스 값으로 제한된다.
- 학습 데이터에 각 데이터 포인트의 정답 레이블이 포함되어 있어야 한다.
- 분류 문제의 유형
- 이진 분류(Binary Classification)
- 데이터가 두 개의 클래스 중 하나에 속한다.
- 예: 이메일 분류(스팸/비스팸), 암 진단(양성/음성) 등
- 다중 분류(Multi-class Classification)
- 데이터가 세 개 이상의 클래스 중 하나에 속한다.
- 예: 꽃의 종류 분류(붓꽃의 세 가지 품종: Setosa, Versicolor, Virginica) 등
- 다중 레이블 분류(Multi-label Classification):
- 하나의 데이터 포인트가 여러 개의 클래스를 동시에 가질 수 있다.
- 예: 영화 장르 분류(코미디, 액션, 드라마) 등
- 다중 출력 분류(Multi-output Classification):
- 하나의 데이터 포인트에 대해 여러 출력 값이 필요하며, 각 출력이 다중 클래스 분류일 수 있다.
- 예: 이미지의 여러 객체를 탐지하고 각 객체에 레이블을 할당하는 것 등
- 이진 분류(Binary Classification)
2. 주요 분류 알고리즘
1) 결정 트리 (Decision Tree)
2) K-최근접 이웃 (K-Nearest Neighbors, KNN)
K-최근접 이웃(K-Nearest Neighbors, KNN)은 지도 학습 기반의 분류 및 회귀 알고리즘으로, 특정 데이터 포인트가 속한 클래스나 값을 결정할 때, 가까운 데이터 포인트들(K개의 이웃)과의 거리를 기준으로 판단한다.
- 거리 기반 분류
- KNN의 기본 원리
- KNN은 새로운 데이터 포인트가 들어왔을 때 가장 가까운 K개의 데이터 포인트를 찾고, 그 이웃의 정보를 사용해 예측을 수행한다.
- 거리 측정 방법
- 유클리드 거리(Euclidean Distance): 두 점 사이의 직선 거리로 가장 많이 사용된다.
- 맨해튼 거리(Manhattan Distance): 절대 거리의 합으로 도시 블록 구조와 유사하다.
- 코사인 유사도(Cosine Similarity): 벡터 간의 방향 유사도를 기반으로 한다.
- 마할라노비스 거리(Mahalanobis Distance): 데이터의 분포를 고려하여 거리 측정을 정규화한다.
- KNN의 기본 원리
- KNN 주요 특징
- 비모수적 방법: KNN은 데이터 분포에 대한 사전 가정을 하지 않는다.
- 메모리 기반 학습: 데이터를 저장한 후 예측 시 가까운 이웃과의 거리를 계산하므로, 학습이 없고 예측 시 시간이 많이 소요될 수 있다.
- 거리에 민감: 데이터 간의 거리 계산에 크게 의존하므로, 데이터 스케일링(정규화, 표준화)이 중요하다.
- 장단점
- 장점
- 알고리즘의 구현이 간단하여 단순하며, 직관적이라 설명이 쉽다.
- 새로운 데이터가 추가되면 학습 과정 없이 바로 사용 가능하다.
- 단점
- 데이터 포인트가 많아지면 거리 계산에 시간이 많이 걸린다. (KD-트리, Ball-트리와 같은 효율적인 검색 알고리즘을 사용해 해결할 수 있다.)
- 차원이 증가하거나 고차원 데이터를 사용하는 경우 거리 계산의 유의미함이 감소하는 차원의 저주(Curse of Dimensionality) 문제가 발생할 수 있따다.
- 장점
* K 값 선택의 중요성
- K 값이란
- KNN에서 가장 가까운 이웃의 개수를 나타내며 알고리즘의 성능에 중요한 영향을 미친다.
- K 값이 작은 경우
- 모델이 너무 민감해진다. (과적합)
- 노이즈 데이터에 영향을 많이 받아 일반화 성능이 떨어진다.
- 예: K=1이면, 가장 가까운 데이터 포인트 하나만 참조하여 예측한다.
- K 값이 큰 경우
- 모델이 과소적합될 위험이 있다.
- 너무 많은 이웃의 정보를 고려하면, 예측 클래스가 전체 데이터의 분포에 의해 왜곡될 수 있다.
- 예: K=n이면, 모든 데이터의 평균을 사용해 예측하므로 분류 모델의 의미가 사라진다.
- 최적의 K 값 선택 방법
- 교차 검증(Cross-Validation): 다양한 K 값을 시도하여 성능(정확도 등)이 가장 좋은 K 값을 선택한다.
- 홀수 값 선택: 데이터가 균등 분포라면 동점 상황을 피하기 위해 K를 홀수로 설정하는 것이 일반적이다.
- 일반적으로 K는 데이터 크기와 분포에 따라 적당히 조정된다.
3. 로지스틱 회귀
로지스틱 회귀(Logistic Regression)는 이진 분류 문제를 해결하기 위해 널리 사용되는 지도 학습 알고리즘이다.
- 로지스틱 함수(시그모이드 함수): 모든 실수 값을 0과 1 사이의 확률로 변환한다.
- 수식 참고
- hθ(x): 입력에 대한 출력 확률
- θ: 모델의 가중치 파라미터
- x: 입력 데이터
- 출력 값의 해석
- hθ(x)는 클래스 1에 속할 확률을 나타낸다.
- 1−hθ(x)는 클래스 0에 속할 확률을 나타낸다.
- 임계값(Threshold, 일반적으로 0.5)을 기준으로 분류
- hθ(x) ≥ 0.5 : 클래스 1로 예측 (양성)
- hθ(x) < 0.5 : 클래스 0으로 예측 (음성)
- 수식 참고
이진 분류기 훈련
- 비용 함수 (Log Loss): 모델의 예측이 실제 레이블과 얼마나 다른지를 측정한다.
- m: 데이터 샘플의 수
- y(i): 실제 레이블 (0 또는 1)
- hθ(x(i)): 예측 확률
- 모델 학습 과정
- 초기화: 가중치 θ를 임의의 값으로 초기화한다.
- 경사 하강법(Gradient Descent): 비용 함수 J(θ)를 최소화하는 θ값을 찾기 위해 반복적으로 업데이트한다.
- η: 학습률 (Learning Rate)
- ∇J(θ): 비용 함수의 기울기
- 예측 : 훈련된 모델을 사용해 입력 데이터에 대해 확률을 계산하고, 임계값을 기준으로 클래스 레이블을 예측한다.
다중 분류 (Multiclass Classification)
- 다중 분류란 로지스틱 회귀를 사용하여 세 개 이상의 클래스에 대한 분류를 수행하는 것이다.
- 예: 숫자 이미지를 0부터 99까지 분류
- 소프트맥스 회귀(Softmax Regression) : 다중 분류 문제에서 로지스틱 회귀를 확장하여 소프트맥스 함수(Softmax Function)를 사용한다.
- P(y=c∣x): 클래스 c에 속할 확률
- K: 클래스의 수
- 원핫 인코딩(One-Hot Encoding)
- 다중 분류 문제의 레이블은 원핫 인코딩 형태로 표현된다.
- 예: 클래스 2 → [0, 0, 1, 0]
- 손실 함수
- 다중 분류에서의 비용 함수는 크로스 엔트로피 손실(Cross-Entropy Loss)를 사용한다.
다중 레이블 분류 (Multilabel Classification)
- 다중 레이블 분류란 하나의 데이터 포인트가 여러 클래스에 동시에 속할 수 있는 문제이다.
- 예: 영화 장르 분류(코미디, 액션, 드라마)
- 로지스틱 회귀의 적용
- 각 레이블에 대해 독립적인 로지스틱 회귀 모델을 학습한다.
- 출력: 각 레이블에 속할 확률 벡터
- 손실 함수 : 각 레이블에 대해 개별적으로 손실을 계산하고, 이를 합산한다.
다중 출력 분류 (Multioutput Classification)
- 다중 출력 분류란 하나의 데이터 포인트에 대해 여러 출력 값을 예측하는 문제이다. 각 출력은 서로 다른 레이블을 가지며, 각 레이블도 다중 클래스일 수 있다.
- 예: 이미지에서 객체의 위치를 예측하고, 각 객체의 클래스까지 식별
- 로지스틱 회귀의 적용
- 각 출력에 대해 독립적인 다중 분류 모델을 학습한다.
- 출력: 각 출력 변수에 대해 클래스 확률 벡터
4. 모델 성능 측정
정확도 (Accuracy)
모델이 예측한 결과와 실제 데이터의 일치도를 나타내는 지표이다.
- 정확도 공식
- TP는 참 긍정(True Positive), TN은 참 부정(True Negative), FP는 거짓 긍정(False Positive), FN은 거짓 부정(False Negative)을 의미한다.
오차 행렬 (confusion matrix)
- 오차 행렬, 혼동 행렬이라고도 불리는 Confusion matrix는 학습된 분류 모델이 예측을 수행하면서 얼마나 헷갈리고 있는지도 함께 보여주는 지표로, 성능 지표로 많이 활용된다.
- 머신 러닝의 목적은 정확한 답을 내는 것에 있는데, 이 표를 활용해 긍정 결과와 부정 결과 중 어떤 것을 더 잘 맞추고 못 맞추는지 확인할 수 있다. (결과값을 집어넣고 어떤 데이터에 대해 더 못 맞추는지를 눈으로 확인할 수 있다.)
- 오차 행렬은 이진분류 모델에서 활용되며, 학습된 분류 모델의 예측 수행 지표를 보여준다.
📝 개념 비교 분석표
개념 | 설명 | 예시 |
분류 | 데이터를 특정 클래스에 나누는 지도 학습 문제 | 스팸 이메일 분류, 꽃의 종류 예측 |
이진 분류 | 두 개의 클래스 중 하나로 분류하는 문제 | 이메일: 스팸 / 비스팸 |
다중 분류 | 세 개 이상의 클래스 중 하나로 분류하는 문제 | 붓꽃 품종 분류 |
KNN | 가까운 K개의 이웃을 기준으로 예측하는 알고리즘 | 사용자 추천 시스템 |
로지스틱 회귀 | 이진 분류 문제를 해결하기 위한 알고리즘 | 질병 진단: 양성 / 음성 |
소프트맥스 회귀 | 다중 분류 문제에 사용되는 로지스틱 회귀의 확장 | 숫자 이미지 분류(0~9) |
정확도 | 예측 결과와 실제 데이터의 일치도를 나타내는 지표 | 모델의 성능 평가 |
오차 행렬 | 모델의 예측 결과를 시각적으로 보여주는 지표 | 긍정 및 부정 결과의 혼동 확인 |
📝 분류 방법 장단점 비교표
분류 방법 | 장점 | 단점 |
결정 트리 (Decision Tree) | - 직관적이고 이해하기 쉬움 - 데이터 전처리 필요 없음 - 비선형 관계를 잘 모델링함 |
- 과적합(overfitting)의 위험이 있음 - 작은 변화에도 모델이 크게 변할 수 있음 |
K-최근접 이웃 (KNN) | - 간단하고 직관적인 알고리즘 - 비모수적 방법으로 데이터 분포에 대한 가정이 없음 - 새로운 데이터 추가 시 학습 과정 필요 없음 |
- 데이터 포인트가 많아지면 계산 속도가 느려짐 - 고차원 데이터에서 성능 저하 (차원의 저주) |
로지스틱 회귀 (Logistic Regression) | - 이진 분류 문제에서 성능이 좋음 - 확률적 해석 가능 - 계산 비용이 낮음 |
- 선형 분리 가능한 데이터에만 적합 - 비선형 문제에 대한 처리 능력이 부족 |
서포트 벡터 머신 (SVM) | - 높은 차원에서도 잘 작동함 - 비선형 데이터 처리 가능 (커널 트릭 사용) |
- 대규모 데이터셋에서 학습 시간이 오래 걸림 - 최적의 커널과 하이퍼파라미터 선택이 어려움 |
랜덤 포레스트 (Random Forest) | - 여러 결정 트리를 조합하여 과적합 방지 - 다양한 데이터셋에 대해 강력한 성능 |
- 해석이 어려움 (블랙박스 모델) - 많은 메모리와 시간이 소요될 수 있음 |
신경망 (Neural Networks) | - 비선형 문제를 잘 처리함 - 대량의 데이터에 대해 높은 성능을 발휘할 수 있음 |
- 많은 데이터와 계산 자원이 필요함 - 과적합의 위험이 있으며, 하이퍼파라미터 조정이 복잡함 |
많아질 수록, 어떤 특징이 있고, 어떨 때 사용하는 것이 좋은지 헷갈려지고 어려워진다. 비교분석을 하며 보는 것이 좀 더 편한 것 같아 비교표를 만들어보았다.
다음에 '결정트리'에 대해 알아보자.
728x90
'Develop > ML·DL' 카테고리의 다른 글
앙상블 학습 및 랜덤 포레스트를 알아보자. (2) | 2025.01.21 |
---|---|
서포트 벡터 머신(SVM)을 알아보자. (2) | 2025.01.21 |
결정 트리를 알아보자. (2) | 2025.01.21 |
머신러닝 모델 선정: 회귀를 알아보자. (4) | 2025.01.19 |
머신 러닝을 알아보자. (feat. 인공지능) (2) | 2025.01.18 |