혼자 공부하는 머신러닝+딥러닝 4주차

2024. 1. 29. 01:46머신러닝+딥러닝/혼공학습단 11기

728x90

 

혼공단 - 혼공머신, 혼자 공부하는 머신러닝+딥러닝

각 Chapter의 '학습목표'를 바탕으로 내용을 정리했습니다.

 

# 진도 기본 미션 선택 미션
4주차
(1/22 ~ 1/28)
Chapter 05 교차 검증을 그림으로 설명하기 Ch.05(05-3) 앙상블 모델 손코딩
코랩 화면 인증하기

 

 

※ 보내주신 간식은 조만간 바꿔 먹겠습니다. 😀

 

 

□ Chapter 05

성능이 좋고 이해하기 쉬운 트리 알고리즘을 이해

 - 트리 알고리즘: 데이터를 분류하거나 회귀하는 데 사용되는 머신러닝 알고리즘

   . 장점: 다양한 데이터 세트에 대해 좋은 성능, 모델의 구조가 직관적이라 이해가 쉬움

   . 단점: 데이터의 세부 사항을 잘 학습해서 훈련 데이터에 과적합 발생이 쉽고, 데이터를 순차적으로 분할해서 수렴 속도가 느림

 - 트리 알고리즘의 종류

   1) 결정 트리: 예/아니오에 대한 질문을 이어나가면서 정답을 찾아 학습하는 알고리즘. 비교적 예측 과정을 이해하기 쉽고 성능도 뛰어남.

     ※ 불순도: 결정 트리가 최적의 질문을 찾기 위한 기준. 사이킷런은 지니 불순도와 엔트로피 불순도를 제공

      정보 이득: 부모 노드와 자식 노드의 불순도 차이. 결정 트리 알고리즘은 정보 이득이 최대화되도록 학습

      가지치기: 결정 트리의 성장을 제한하는 방법. 제한없이 성장하면 훈련 세트에 과대적합되기 쉽기 때문. 사이킷런은 여러 가지 가지치기 매개변수를 제공

       특성 중요도: 결정 트리에 사용된 특성이 불순도를 감소하는데 기여한 정도를 나타내는 값. 결정 트리의 장점은 특성 중요도를 계산할 수 있는 것

   2) 그  외 '랜덤 포레스트', '엑스트라 트리'가 있으며 앙상블 모델에서 소개

 

알고리즘의 성능을 최대화하기 위한 하이퍼파라미터 튜닝을 이해

1. 하이퍼파라미터: 알고리즘의 성능에 영향을 미치는 매개변수. 이를 적절하게 설정하면 알고리즘의 성능을 최대화 가능

  - 검증 세트: 하이퍼파라미터 튜닝을 위해 모델을 평가할 때, 테스트 세트를 사용하지 않기 위해 훈련 세트에서 다시 떼어 낸 데이터 세트

2. 하이퍼파라미터 튜닝의 방법

  1) 교차 검증: 훈련 세트를 여러 폴드로 나눈 다음 한 폴드가 검증 세트의 역할을 하고 나머지 폴드에서는 모델을 훈련하여, 모든 폴드에 대해 검증 점수를 얻어 평균하는 방법

    - 폴드(fold): 훈련 세트를 여러 개의 부분집합으로 나눈 것을 의미. 보통 k개의 폴드로 나누며, k-fold 교차 검증이라 함

① 훈련 세트를 n개의 폴드로 분할
② n-1개의 폴드를 사용하여 모델을 학습
③ 남은 1개의 폴드를 사용하여 모델의 성능을 평가
④ n번의 반복을 통해 각 하이퍼파라미터 조합에 대한 성능을 평가
⑤ 가장 좋은 성능을 보이는 하이퍼파라미터 조합을 선택

     

  2) 그리드 서치: 하이퍼파라미터 탐색을 자동화해 주는 도구

    - 탐색할 매개변수를 나열하면 교차 검증을 수행하여 가장 좋은 검증 점수의 매개변수 조합을 선택한 후, 이 매개변수 조합으로 최종 모델을 훈련

① 하이퍼파라미터의 범위를 설정
② 범위 내의 모든 가능한 조합을 생성
③ 각 조합에 대해 교차 검증을 수행
④ 가장 좋은 성능을 보이는 조합을 선택


  3) 랜덤 서치: 연속된 매개변수 값을 탐색할 때 유용

    - 탐색할 값을 직접 나열하는 것이 아니고 탐색 값을 샘플링할 수 있는 확률 분포 객체를 전달
    - 지정된 횟수만큼 샘플링하여 교차 검증을 수행하기 때문에 시스템 자원이 허락하는 만큼 탐색량 조절이 가능

① 하이퍼파라미터의 범위를 설정
② 범위 내에서 무작위로 조합을 생성
③ 생성된 조합에 대해 교차 검증을 수행
④ k번의 반복을 통해 가장 좋은 성능을 보이는 조합을 선택

 

여러 트리를 합쳐 일반화 성능을 높일 수 있는 앙상블 모델을 이해

 - 앙상블 학습: 더 좋은 예측 결과를 만들기 위해 여러 개의 모델을 훈련하는 머신러닝 알고리즘

 - 결정 트리의 성능을 높이기 위해 앙상블 모델을 사용한 '랜덤 포레스트', '엑스트라 트리' 등이 존재

   1) 랜덤 포레스트: 대표적인 결정 트리 기반의 앙상블 학습 방법

     . 부트스트랩 샘플을 사용하고 랜덤하게 일부 특성을 선택하여 트리를 만드는 것이 특징

       ※ 부트스트랩: 데이터 세트에서 중복을 허용하여 데이터를 샘플링하는 방식

   2) 엑스트라 트리: 랜덤 포레스트와 비슷하게 결정 트리를 사용하여 앙상블 모델을 만들지만 부트스트랩 샘플을 사용하지 않고, 랜덤하게 노드를 분할해 과대적합을 감소

   3) 그레이디언트 부스팅: 랜덤 포레스트나 엑스트라 트리와 달리 결정 트리를 연속적으로 추가하여 손실 함수를 최소화하는 앙상블 방법. 이런 이유로 훈련 속도가 조금 느리지만 더 좋은 성능을 기대

     . 이 느린 속도를 개선한 것이 히스토그램 기반 그레이디언트 부스팅이며, 안정적인 결과와 높은 성능으로 매우 인기가 높음

 

 

■ 기본 미션

Chapter 05  교차 검증을 그림으로 설명하기

 - 한빛미디어에서 번역한 'Introduction to Machine Learning with Python'(파이썬 라이브러리를 활용한 머신러닝) 도서에서 활용하는 mglearn 라이브러리를 사용하여 그림으로 표현했습니다.

   ※  검증세트 → 일반적인 교차검증 및 Stratified 교차 검증 → 훈련 세트를 섞은 후 4-폴드 교차 검증

 - 실습한 내용을 살펴보려면, 아래 링크를 통해 이동하세요.

https://colab.research.google.com/drive/1tQv8ilpYNWrV5YU8Dq6w62p3GEoBP154?usp=sharing

012
검증세트 → 일반적인 교차검증 및 Stratified 교차 검증 → 훈련 세트를 섞은 후 4-폴드 교차 검증

 

 

■ 선택 미션

Ch.05(05-3) 앙상블 모델 손코딩 코랩 화면 인증하기

 - 실습한 내용을 살펴보려면, 아래 링크를 통해 이동하세요.

https://colab.research.google.com/drive/1bJIssvqXwzrvR6WEg1JuiTbcKsSIv9SF?usp=sharing

 

 

728x90