머신러닝 심화: 회귀, 분류 모델링 심화

2024. 8. 16. 20:25·✨Today I Learned
목차
  1. 20240816 TIL
  2. 1. 의사결정나무
  3. 2. 랜덤 포레스트
  4. 3. 최근접 이웃 K-Nearest Neighbor(KNN)
  5. 4. 부스팅 알고리즘

20240816 TIL

1. 의사결정나무

  • 의사결정규칙을 나무 구조로 나타내어 전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법

<예시>

더보기

성별 기준으로 의사결정나무 시각화

 

  • 루트 노드(Root Node): 의사결정나무의 시작점. 최초의 분할조건
  • 리프 노드(Leaf Node): 루트 노드로부터 파생된 중간 혹은 최종 노드
  • 분류기준(criteria): sex는 여성인 경우 0, 남성인 경우 1로 인코딩. 여성인 경우 좌측 노드로, 남성인 경우 우측 노드로 분류
  • 불순도(impurity)
    • 불순도 측정 방법 중 하나 인 지니 계수는 0과 1사이 값으로 0이 완벽한 순도(모든 샘플이 하나의 클래스), 1은 완전한 불순도(노드의 샘플의 균등하게 분포) 됨을 나타냄
    • 리프 노드로 갈수록 불순도가 작아지는(한쪽으로 클래스가 분류가 잘되는)방향으로 나무가 자람
  • 샘플(samples): 해당 노드의 샘플 개수(891개의 관측치)
  • 값(value): Y변수에 대한 배열. 549명이 죽었고(Y = 0), 342명이 살았음(Y = 1)
  • 클래스(class)
    • 가장 많은 샘플을 차지하는 클래스를 표현
    • 위에서는 주황색(Y = 0 다수), 파란색(Y=1 다수)를 표현

 

장점:

  1. 쉽고 해석하기 용이
  2. 다중분류와 회귀에 모두 적용 가능
  3. 이상치에 견고하며 데이터 스케일링이 불필요

단점:

  1. 나무가 성장을 너무 많이 하면 과대 적합의 오류에 빠질 수 있음
  2. 훈련 데이터에 민감하게 반응-> 작은 변화가 노이즈에도 나무의 구조가 크게 달라짐(불안정성)

 

2. 랜덤 포레스트

  • 나무를 여러 개 만들어 숲을 만드는 것

▶ 배깅(Bagging)

머신러닝은 데이터의 부족이 문제 --> 이를 해결하기 위한 Bootstrapping + Aggregating 방법론

  • Bootstrapping: 데이터를 복원 추출해서 유사하지만 다른 데이터 집단을 생성하는 것
  • Aggregating: 데이터의 예측,분류 결과를 합치는 것
  • Ensemble(앙상블): 여러 개의 모델을 만들어 결과를 합치는 것

 

▶ 트리를 포레스트로 만들기

여러 개의 데이터 샘플에서 각자 의사결정트리를 만들어 다수결 법칙에 따라 결론 내림

 

장점:

  1. 배깅과정을 통해 과적합 피할 수 있음
  2. 이상치에 견고하며 데이터 스케일링이 불필요
  3. 변수 중요도를 추출하여 모델 해석에 중요한 특징 파악 가능

단점:

  1. 컴퓨터 리소스 비용 큼
  2. 앙상블 적용으로 해석 어려움

 

3. 최근접 이웃 K-Nearest Neighbor(KNN)

  • 주변의 데이터를 보고 내가 알고 싶은 데이터 예측하는 방식

 

▶ 파라미터

  • 머신러넹 모델이 학습 과정에서 추정하는 내부 변수이며 자동으로 결정되는 값

▶ 하이퍼 파라미터

  • 데이터 과학자가 기계 학습 모델훈련을 관리하는데 사용하는 외부 구성변수이며 모델 학습과정이나 구조에 영향 미침

▶ 유클리드 거리

  • 거리 개념은 머신러닝에서 데이터간의 유사도를 측정할 때 자주 등장하는 개념
  • 거리 기반의 알고리즘이기 때문에 단위의 영향을 크게 받아 표준화가 반드시 수반되어야 함

장점:

  1. 이해하기 쉽고 직관적
  2. 모집단의 가정이나 형태 고려하지 않음
  3. 회귀, 분류 모두 가능

단점:

  1. 차원 수가 많을수록 계산량 많아짐
  2. 거리 기반의 알고리즘이기 때문에 피처의 표준화 필요

 

4. 부스팅 알고리즘

  • 어러 개의 약한 학습기를 순차적으로 학습하면서 잘못 예측한 데이터에 가중치를 부여하여 오류를 개선해나가는 학습 방식

 

 

▶ 종류

(1) Gradient Boosting Model - 가중치 업데이트를 경사하강법 방법 통해 진행

  • Python 라이브러리
    • sklearn.ensemble.GradientBoostingClassifier
    • sklearn.ensemble.GradientBoostingRegressor

(2) XGBoost - 트리기반 앙상블 기법, 병렬학습이 가능해 속도 빠름

  • Python 라이브러리
    • xgboost.XGBRegressor
    • xgboost.XGBRegressor

(3) LightGBM - XG보다 학습시간 짧고 메모리 샤용량 작음, 작은 데이터의 경우 과적합 발생

  • Python 라이브러리
    • lightgbm.LGBMClassifier
    • lightgbm.LGBMRegressor

'✨Today I Learned' 카테고리의 다른 글

[태블로] 지표 특강2  (1) 2024.09.06
[태블로] 지표 특강  (10) 2024.09.04
머신러닝 심화 : EDA  (2) 2024.08.14
머신러닝 기초: 로지스틱 회귀  (1) 2024.08.13
머신러닝 기초 : 회귀분석 기초, 심화  (2) 2024.08.09
  1. 20240816 TIL
  2. 1. 의사결정나무
  3. 2. 랜덤 포레스트
  4. 3. 최근접 이웃 K-Nearest Neighbor(KNN)
  5. 4. 부스팅 알고리즘
'✨Today I Learned' 카테고리의 다른 글
  • [태블로] 지표 특강2
  • [태블로] 지표 특강
  • 머신러닝 심화 : EDA
  • 머신러닝 기초: 로지스틱 회귀
임빵빵
임빵빵
헤맨 만큼 내 땅
임빵빵
mj.space
임빵빵
전체
오늘
어제
  • 분류 전체보기 (156)
    • 아티클스터디 (14)
    • ✨Today I Learned (41)
      • MySQL (11)
      • Python (15)
    • 이번 주 돌아보기 (11)
    • 자격증 (9)
      • ADsP (8)
      • SQLD (1)
    • CODEKATA (44)
    • Project (11)
    • Intern (0)
    • Marketing (26)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

링크

공지사항

인기 글

태그

wil
내일배움카드
CodeKata
회귀분석
자격증
programmers
사전캠프
ADsP
태블로
SQL
머신러닝
아티클스터디
파이썬
Eda
데이터 전처리
데이터 문해력
프로그래머스
오블완
pandas
기초
아티클
코드카타
데이터 리터러시
데이터분석가
심화프로젝트
python
전처리
스파르타 코딩클럽
스파르타코딩클럽
데이터분석

최근 댓글

최근 글

hELLO· Designed By정상우.v4.6.1
임빵빵
머신러닝 심화: 회귀, 분류 모델링 심화
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.