설명
준지도 학습은 훈련 데이터셋에 레이블이 지정된 샘플과 레이블이 없는 샘플이 혼합된 상황을 다룹니다. Scikit-learn의 `sklearn.semi_supervised` 모듈은 이러한 레이블이 없는 데이터를 활용하도록 설계된 추정기를 제공하여 데이터 분포를 더 잘 이해하고 새롭고 보지 못한 샘플에 대한 일반화 성능을 향상시킵니다. 이러한 기법은 레이블이 지정된 데이터는 부족하지만 레이블이 없는 데이터는 풍부할 때 특히 효과적입니다.
준지도 학습 알고리즘은 성능 향상을 위해 데이터 분포에 대한 가정을 기반으로 한다는 점에 유의해야 합니다. 이 모듈은 자체 학습(Self Training)과 레이블 전파(Label Propagation)의 두 가지 주요 접근 방식을 제공합니다.
Yarowsky의 알고리즘을 기반으로 하는 자체 학습은 `predict_proba`를 지원하는 모든 지도 학습 분류기를 준지도 학습 방식으로 작동하게 합니다. `SelfTrainingClassifier`는 반복적으로 레이블이 없는 샘플에 대한 레이블을 예측하고 이 중 일부를 레이블이 지정된 데이터셋에 추가합니다. 이러한 샘플의 선택은 임계값을 사용하거나 k개의 최적 샘플을 선택하는 등 예측 확률을 기반으로 할 수 있습니다. 이 과정은 모든 샘플에 레이블이 지정되거나 반복에서 새로운 샘플이 선택되지 않을 때까지 계속되며, `max_iter`를 통해 최대 반복 횟수를 제어할 수 있습니다.
레이블 전파는 `LabelPropagation` 및 `LabelSpreading`을 포함한 여러 준지도 그래프 추론 알고리즘을 포괄합니다. 이러한 모델은 모든 입력 데이터 포인트에 걸쳐 유사도 그래프를 구성합니다. 핵심 아이디어는 레이블이 없는 데이터의 구조가 클래스 구조와 일치하여 클래스 레이블이 레이블이 없는 관측치로 전파될 수 있다는 것입니다. `LabelPropagation`은 입력 레이블의 하드 클램핑을 수행하는 반면, `LabelSpreading`은 정규화 속성을 가진 손실 함수를 최소화하여 보다 강력한 접근 방식을 제공하며 노이즈에 더 잘 견딥니다. 두 모델 모두 RBF 및 KNN과 같은 내장 커널 메서드를 지원하여 확장성과 성능에 영향을 미칩니다. RBF 커널은 메모리 집약적일 수 있는 밀집 그래프를 생성하는 반면, KNN 커널은 희소 그래프를 생성하여 메모리 효율성을 높이고 실행 시간을 단축합니다.
이러한 방법은 수동 레이블링이 비용이 많이 들거나 시간이 많이 소요되는 작업에 유용하며, 사용 가능한 풍부한 레이블이 없는 데이터를 활용하여 보다 강력하고 정확한 모델을 만들 수 있습니다. 자체 학습과 레이블 전파 간의 선택은 특정 데이터셋 특성과 레이블이 없는 정보를 활용하려는 접근 방식에 따라 달라집니다.
Scikit-learn 준지도 학습 하이라이트
준지도 분류 지원
일반화 성능 향상을 위해 레이블 없는 데이터 활용
자체 학습 알고리즘 포함
레이블 전파 및 레이블 스프레딩 지원
레이블 전파를 위한 유사도 그래프 구성
RBF 및 KNN 커널 메서드 제공
전파 시 레이블 클램핑 제어 가능
자체 학습을 위한 반복 학습 프로세스
자체 학습을 위한 다양한 지도 학습 분류기에 적용 가능
레이블이 제한된 데이터 시나리오 처리
기본 데이터 분포에 대한 이해 증진
Scikit-learn 준지도 학습 시작하기
모델 접근: `sklearn.semi_supervised`에서 관련 추정기를 가져옵니다.
데이터 준비: 레이블이 지정된 샘플과 레이블이 없는 샘플을 구성합니다.
추정기 구성: 원하는 매개변수로 `SelfTrainingClassifier` 또는 `LabelPropagation`/`LabelSpreading`을 인스턴스화합니다.
모델 훈련: 준비된 데이터셋에 선택한 추정기를 적합시킵니다.
레이블 예측: 훈련된 모델을 사용하여 새 데이터에 대한 레이블을 예측합니다.
성능 평가: 모델 정확도와 일반화 성능을 평가합니다.
Scikit-learn 준지도 학습의 사용 사례
- 텍스트 분류
- 이미지 인식
- 사기 탐지
- 고객 세분화
- 의료 진단
- 음성 인식




