사망년/머신러닝

분류

stop-zero 2023. 12. 7. 01:50

(머신러닝 기말고사 공부)

분류를 위한 회귀

분류는 데이터를 정해진 몇 개의 클래스 중 하나로 분류하는 문제이다. 문제를 해결하기 위해 주어진 학습 데이터에서 입력 데이터와 해당하는 출력 레이블 사이의 관계를 찾아내는 것이 목표이다. 보통 분류 작업을 위한 학습 데이터는 쌍으로 이루어져 있다. 각각의 쌍은 입력 데이터(특성들의 값)와 그에 해당하는 출력 클래스(레이블)로 이루어져 있다. 

분류기는 이러한 학습된 모델을 이용하여 데이터를 분류하는 프로그램이며, 주어진 입력 데이터를 이용하여 적절한 클래스 또는 레이블을 할당한다. 

 

로지스틱 회귀

로지스틱 회귀는 주어진 입력 특성들을 사용하여 특정 클래스에 속할 확률을 추정한다. 이름에는 회귀라는 용어가 포함되어 있지만, 이진 분류를 위한 모델이다. 로지스틱 함수를 이용하여 0과 1 사이의 값을 변환하여 추정값을 측정하고 입력 데이터가 특정 클래스에 속할 확률을 측정한다. 

 

소프트맥스 회귀

다중 클래스 분류를 위한 모델로, 입력 데이터를 받아 각 클래스에 속할 확률을 추정한다. 입려 데이터가 주어지면, 각 클래스에 해당하는 점수를 계산하고 소프트맥스 함수를 사용하여 이 점수들을 확률값으로 변환한다. 소프트맥스 함수는 입력된 각 클래스의 점수에 대한 확률값을 계산하는 데 사용된다. 

소프트맥스 함수는 입력된 클래스 점수들을 정규화하여 클래스에 속할 확률로 변환한다. 이때, 소프트맥스의 출력값은 0과 1사이의 확률값으로, 모든 클래스의 확률 값의 합은 1이 된다. 따라서 각 클래스에 대한 추정 확률을 얻는다. 모델은 주어진 입력에 대해 각 클래스에 속할 확률을 예측하고, 최종적으로 가장 높은 확률을 가진 클래스를 해당 샘플의 예측 클래스로 선택한다. 

모델을 학습시키기 위해서는 주어진 학습 데이터셋에 대해 손실 함수를 최소화하는 파라미터를 찾아야 한다. 이때, 범주형 교차 엔트로피 비용 함수를 사용하여 학습을 수행한다. 이 함수는 실제 클래스와 예측된 클래스 간의 오차를 계산한다. 

 

+이진 분류 할거냐? 로지스틱, 다중 분류 = 소프트맥스

 

결정 트리

특정 클래스에 대한 판단 규칙을 나타내기 위해 트리 구조를 사용하는 지식 표현 방식이다. 이진 트리로서, 내부 노드는 특정 특성에 대한 테스트를 나타내고, 간선은 테스트 결과나 특성 값으로 이루어져 있다. 단말 노드는 각 클래스의 분류 값을 가진다.

결정 트리는 학습 데이터의 각 특성을 임계값을 기준으로 나누어 분류를 수행한다. 이를 위해 CART(Classifiaction and Regression Tree) 알고리즘이 사용된다. 이 알고리즘은 각 단계에서 최적의 특성과 해당 특성의 임계값을 찾아 두 개의 서브셋으로 데이터를 나누는 작업을 반복한다. 이때 서브셋은 순수도를 최대화하는 방향으로 분할된다. 같은 방식으로 서브셋을 다시 서브셋의 서브셋으로 나누는 작업을 반복하는데 미리 정의된 최대 깊이가 되거나 불순도를 줄이는 분할을 찾을 수 없을 때 멈춘다. 

지니 불순도와 엔트로피는 결정 트리 알고리즘에서 노드를 분할하기 위한 기준이다. 

  • 지니 불순도: 빠른 계산, 이진 분류에 효과적, 균형 잡힌 트리 구성, 효과적인 기본값
  • 엔트로피: 약간 더 복잡한 트리, 높은 계산 비용, 데이터 균형을 중요하게 고려

 

결정 트리의 규제는 과대적합을 방지하기 위한 요소이다. 규제를 위해 다양한 하이퍼파라미터를 조어할 수 있으며 이를 통해 모델의 자유도를 제한하여 과적합을 방지할 수 있다. 

1. 하이퍼파라미터 조정

  • 최대 깊이(max_depth), 분할되기 위한 최소 샘플 수(min_sample_split), 단말 노드가 가져야 할 최소 샘플 수(min_samples_leaf) 등을 조정하여 모델의 복잡성을 제어한다.
  • min_*증가 또는 max_* 감소로 규제를 강화할 수 있다.

2. 가지치기(Pruning)

  • 학습된 결정 트리에서 불필요한 노드를 제거하여 모델의 복잡성을 줄인다.
  • 불순도를 높이는 것이 통계적으로 큰 효과가 없는 노드는 반복적으로 삭제하여 모델을 단순화한다.

3. 회귀에 대한 결정 트리

  • 회귀를 위한 결정 트리에서는 불순도 대신 평균 제곱 오차(MSE)를 최소화하여 분할한다.
  • 각 노드에 있는 학습 샘플들이 목표 값의 평균을 계산하고, 이를 통해 노드를 분할한다. 

장점

  • 직관적인 방식으로 이해하기 쉽다. = 화이트 박스
  • 특성 스케일링이나 데이터 전처리가 거의 필요하지 않다.
  • 분류와 회귀 문제에 모두 적용 가능하며, 예측 속도가 빠르다. 

단점

  • 과대적합을 방지하기 위해 적절한 규제가 필요하다
  • 데이터의 작은 변화에 매우 민감할 수 있고, 이로 인해 불안정성을 가진다. 

 

앙상블 학습

여러 개의 예측기를 결합하여 개별 예측기보다 더 좋은 성능을 얻는 기법이다. 이를 통해 앙상블 학습은 단일 예측기보다 더 강력한 성능을 보장할 수 있다. 

랜덤 포레스트

  • 여러 개의 결정 트리 분류기를 만들어 그 결과를 종합하는 방식이다. 각 트리는 학습 집합에서 무작위로 선택된 서브셋으로 학습하고, 각 트리의 예측을 종합하여 가장 많은 선택을 받은 클래스로 최종 예측을 한다.

강성 투표

  • 각 분류기의 예측 결과를 모아서 가장 많이 선택된 클래스를 최종 예측으로 선택한다. (=다수결)
  • 모든 분류기가 약한 학습기일지라도 충분히 많고 다양하다면 앙상블은 강한 학습기가 될 수 있다.

연성 투표

  • 각 분류기의 예측 결과가 클래스의 확률로 나온다면, 이 확률들을 평균으로 하여 확률이 가장 높은 클래스를 선택한다.
  • 보통 강성 투표보다 더 높은 성능을 보인다. 

 

배깅

중복을 허용하여 샘플링하는 방법이다. 한 예측기를 위해 같은 학습 샘플이 여러 번 샘플링 될 수 있다 개별 예측기는 원본 학습 집합보다 훨씬 크게 편향되어 있지만, 종합 점수를 통과하면 편향과 분산이 모두 감소한다.

페이스팅: 중복을 허용하지 않고 샘플링을 진행한다, 같은 학습 샘플이 여러 예측기에 각각 사용될 수 있다. 

모든 예측기의 예측을 종합하여 새로운 샘플에 대해 예측한다. 분류의 경우에는 통계적 최빈값(다수결)을 사용하고, 회귀의 경우에는 평균을 사용한다. 

배깅과 페이스팅은 원본 데이터셋을 이용해 하나의 예측기를 학습시킬 때에 비해, 편향을 비슷하지만 분산은 줄어든다. 배깅은 페이스팅보다 학습하는 서브셋의 다양성이 더 높기에 편햔은 조금 더 높지만 분산은 낮아진다. 일반적으로 배깅 모델이 더 많이 선호되는 경향이 있다.

 

랜덤 포레스트

일반적으로 결정 트리에서는 각 노드를 분할할 대 전체 특성들 중에서 최적의 특성을 선택하여 분할을 수행한다. 그러나 배깅 또는 페이스팅을 적용한 결정 트리인 경우, 특성을 분할할 때 전체 특성들이 아니라 무작위로 선택한 특성들의 서브셋 중에서 최적의 특성을 찾는다. 이것은 무작위성을 주입하여 트리를 더 다양하게 만들지만 다양성은 편향을 조금 희생시키지만 분산을 낮추는 효과가 있다.(=더 나은 모델)

랜덤 포레스트는 많은 수의 트리에서 만든 예측을 종합하여 평가하며, 이로써 개별적인 결정 트리의 불안정성을 극복하고 더욱 강력한 모델을 형성한다.

 

부스팅

부스팅은 여러 개의 약한 학습기를 연결하여 강한 학습기를 만든 앙상블 방법이다. 이전 모델의 오류를 보완하면서 순차적으로 학습을 진행하여 전체적인 성능을 높인다. (AdaBoost, Gradient Boosting)

배깅은 병렬적으로(독립적으로) 여러 예측기를 학습시키는 방식으로, 예측기는 독립적으로 학습하고, 마지막에 예측기들의 결과를 종합하여 최종 예측을 수행합니다. 부스팅과는 달리 독립적인 예측기를 만드는 것이 아니라 순차적으로 묶어서 강한 학습기를 형성합니다.

(부스팅 - 직렬 연결, 배깅 - 병렬 연결)

'사망년 > 머신러닝' 카테고리의 다른 글

비지도 학습  (1) 2023.12.07
서울시 공공자전거 수요 예측을 위한 데이터 수집 및 통합 과정  (2) 2023.12.02
04_회귀(Regression)  (0) 2023.09.22
02_학습과 평가  (0) 2023.09.21
01_머신러닝 개요  (0) 2023.08.31