1. 개념 정리
- 지도 학습이란 정답이 주어진 데이터를 학습 한 뒤 입력된 데이터의 정답을 예측하는 방식 (회귀, 분류)
- 피쳐(Feature)와 라벨 (label)을 같이 학습시킨다는 점이 가장 큰 특징
- 지도 학습은 시간이 많이 사용되며 메모리 사용량도 높을 수 있음
- 정해진 label을 같이 학습시키기 때문에 데이터셋의 신뢰도가 중요함
- label을 지정해서 학습하기 때문에 결과가 고정적이며 그 이상을 벗어나지 않음
2. 분류
- 말 그대로 분류를 뜻하며 지도학습의 일종
- 데이터를 주어진 범주(class) 안에서 예측
- 패턴 인식이 뛰어나 이미지 인식과 같은 분야에서 많이 사용 (ex. 개와 고양이 분)
- 분류의 종류에는 이진분류(Binary Classification)와 다중분류(Muiti Classification)로 나뉨
2-1. 로지스틱 회귀(Logistic Regression)
- 이름은 회귀지만 분류의 한 요소
- 둘 중의 하나를 결정하는 문제(이진 분류)를 풀기 위한 대표적인 알고리즘
- 독립변수와 종속변수의 선형 관계성을 기반으로 만들어졌으며 이에 따른 결과를 0,1 사이의 확률값으로 변환(시그모이드 함수)
- 학습 속도가 빠르기 때문에 대용량 데이터셋에 적용하기 쉬움
- 분류모델이지만 확률을 구할 수 있음
- 데이터가 복잡해지면 성능이 떨어진다는 단점이 있음
2-2. 서포트 벡터 머신(SVM)
- 클래스들 간의 경계를 나타내는 결정 경계를 찾는 것
- 이 결정 경계는 두 클래스 간의 최대 마진을 갖도록 함
- 이때 마진은 경계와 가장 가까운 데이터 포인트(서포트 벡터)까지의 거리를 의미
- 경계를 찾는 과정에서 최대 마진을 찾으므로 일반화 성능이 높음
2-3. 의사 결정 나무(Decision tree)
- 데이터 특성에 따라 결정 규칙을 학습하고 이를 통해 입력 데이터를 분류 또는 예측하는 모델
- 예측 과정 및 결과에 대한 설명이 가능하므로 근거를 이해하기 쉬움(해석력이 뛰어남)
- 모델 구축이 비교적 빠르며 큰 데이터셋에도 적용 가능
- 과적합 가능성이 높다는 단점이 있음
- 휴리스트 알고리즘에 의해서 계산 순간에만 집중한다는 단점이 존재
- 데이터 구성이 불균형 적이면(민감하면) 성능이 월등하게 떨어짐
- 이를 방지하기 위해 적절한 하이퍼파라미터 튜닝 및 앙상블 기법을 같이 사용하는것이 좋음
2-4. 랜덤 포레스트
- 분류와 회귀에 사용되는 지도학습 알고리즘으로 여러 개의 의사결정나무를 조합한 모델
- 의사결정나무에 배깅(앙상블 기법 중 하나)을 적용하여 만들어진 앙상블 모델 중 하나로 가장 대표적인 모델
- 사용된 배깅 기법은 Bootstrapping 으로 데이터를 반복복원추출 하여 데이터를 재구성 하였음
- 작동 방식
- 데이터의 부트스트랩 샘플 생성
- 랜덤한 특성 선택
- 결정 트리의 생성
- 투표로 예측 수행
- 장점
- 다양한 종류의 데이터에 대해 뛰어난 성능을 보이며 과적합에 강함
- 자체적인 피처 중요도를 알려주는 함수인 predict_proba 사용 가능
- 랜덤 포레스트는 병렬 처리에 용이하며 대규모 데이터셋에 대해서도 효율적으로 처리가능
- 단점
- 여러 개의 결정 트리를 결하반 앙상블 모델이므로 각각의 결정 트리보다는 해석이 여러울 수 있음
- 트리의 개수가 증가하면 모델이 복잡해지고 학습 데이터에 과적합될 가능성이 있음
- Bootstrapping 으로 인해서 OOB 가 발생할 수 있으며 이 수치에 따라서 학습 과정을 재고해야함
3. 앙상블(Ensemble)
- 여러 개의 기본 모델을 활용하여 하나의 새로운 모델을 만들어내는 개념
- 기존 모델의 과적합을 감소시키며 학습 후의 성능이 향상되는 효과를 볼 수 있음
- 대표적으로 보팅, 배깅, 부스팅, 스태킹이 있음
3-1. 보팅(Voting)
- 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식
- 일반적으로 서로 다른 알고리즘을 가진 분류기를 결합하는 것
- 하드 보팅 : 다수결 원칙으로 예측한 결과값들 중 다수의 분류기가 결정한 예측값을 최종 보팅의 결과값으로 선정하는 것
- 소프트 보팅 : 분류기들의 레이블 값 결정 확률을 모두 더하고 이를 평균해서 이들 중 확률이 가장 높은 레이블 값을 최종 보팅 결과값으로 선정
- 분류에서는 둘 다 사용하고 회귀에서는 소프트 보팅만 사용(분류도 일반적으로 소프트 보팅을 사용)
3-2. 배깅(Bagging)
- 모델을 다양하게 만들기 위해 데이터를 재구성
- 샘플을 여러 번 뽑아 각 모델을 학습시켜 결과물 집계
- 학습 데이터가 충분하지 않더라도 충분한 학습효과를 주어 높은 bias(예측값과 실제값의 차이)나 underfitting 문제, 높은 variance로 인한 overfitting문제를 해결하는데 도움이 됨
- 분류와 회귀 모두 사용 가능하며 주로 의사결정나무에서 많이 사용되지만 다른 알고리즘에서도 사용 가능
3-3. 부스팅(Boosting)
- 앞에서 예측한 분류기에서 틀린 부분에 있어 가중치를 부여
- 틀린 부분에 있어서 더 잘 맞출 수 있도록 하는 개념
- 약 검출기들을 여러 개 모아 강 검출기를 생성하는 방법
4. 회귀
- 시계열 데이터를 취급할 때 사용되는 기법
- 입력 변수와 출력 변수(예측하려는 변) 사이의 관계를 모델링하는 기술
- 분류와의 가장 큰 차이점은 연속형 출력 변수의 경우에는 회귀 기술을 사용하고, 범주형 출력 변수의 경우에는 분류 기술을 사용
※ 시계열 데이터 - 시간적인 변화를 연속적으로 관측한 데이터
4-1. 선형 회귀
- 간단하면서도 강력한 통계 기법 중 하나로 주로 연속형 변수의 관계를 설명하고 예측하는데 사용
- 종속 변수와 하나 이상의 독립 변수 간의 선형 관계를 모델링하며 관계를 직선으로 나타냄
- 즉, 독립 변수의 값이 변함에 따라 종속 변수의 값도 일정한 비율로 변화
- 사용되는 분야 : 주택 가격 예측, 광고 비용에 따른 매출액 예측, 기온에 따른 아이스크림 판매량을 예측 등
- 평가 지표 : MSE, MAE, RMSE 중 RMSE를 가장 많이 사용
4-2. 논리 회귀
- 주로 범주형 변수의 결과를 예측하는데 사용하며 이진 분류 문제 또는 다중 클래스 분류를 해결하는데 유용
- 선형 회귀를 사용해서 분류를 예측한다면 제대로 예측하지 못할 경우가 생길 수 있어서 Sigmoid 함수를 사용하여 정확도를 높일 수 있음