25.05.19 코딩 공부 시작

코딩 척척석박사 분들 피드백 환영합니다.

공대생이 코딩에서 살아남기

강의자료/머신러닝의 이해와 라이브러리 활용

5강. 회귀, 분류 모델링 심화 및 코드(07.01) ☆☆

코딩 아가 2025. 7. 2. 10:29

의사결정나무란?(Decision Tree, DT)

전체 자료를 몇 개의 소집단으로 분류하거나 예측을 수행하는 분석 방법

(장점) 쉽고 해석 가능, 다중분류/회귀 모두 적용 가능, 스케일링 불필요

(단점) 과적합 발생, 불안정성

  • sklearn.tree.DecisionTreeClassifier
  • sklearn.tree.DecisionTreeRegressor

[기본용어 설명]

  • 루트 노드(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 다수)를 표현

랜덤포레스트란?(Random Forest, RF)

여러개의 의사결정나무를 만들어 다수결에 따라 결론 도출 >> DT의 단점 보안

(장점) 과적합 방지, 스케일링 불필요, 변수 중요도 > 모델 해석 특징 파악

(단점) 비용, 해석 어려움(앙상블)

  • sklearn.ensemble.RandomForestClassifer
  • sklearn.ensemble.RandomForestRegressor

배깅(Bagging)의 원리

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

최근접 이웃(KNN)

확인할 주변 데이터 K개를 선정 후에 거리 기준으로 가장 많은 것으로 예측

(장점) 직관적(이해쉬움), 모집단 고려X, 회귀/분류 가능

(단점) 계산 복잡, 거리 기반이라 피처의 표준화 필요

  • sklearn.neighbors.KNeighborsClassifier
  • sklearn.neighbors.KNeighborsRegressor

[기본 용어 정리]

  • 파라미터: 머신러닝 모델의 학습 과정에서 추정하는 내부 변수 (자동 결정)
  • 하이퍼 파라미터: 데이터 과학자가 모신러닝 모델의 학습 과정에서 관리하는 외부 구성변수
  • 유클리드 거리: 두 좌표의 직선 거리

부스팅 알고리즘

여러 개의 약한 학습기(weak learner)을 학습하면서 잘못 예측한 데이터에 가중치를 부여하여 오류 개선

1. Gradient Boosting Model

가중치 업데이트 > 경사하강법

  • sklearn.ensemble.GradientBoostingClassifier
  • sklearn.ensemble.GradientBoostingRegressor

2. XGBoost(pip install xgboost)

트리기반 앙상블 기법 > Kaggle의 상위 알고리즘

(장점) 병렬학습 가능 > 빠른 속도

  • xgboost.XGBRegressor
  • xgboost.XGBRegressor

3. LightGBM(pip install lightbm)

(장점) 학습시간이 짧고 메모리 사용량 적음

(단점) 작은데이터에는 과적합 발생

  • lightgbm.LGBMClassifier
  • lightgbm.LGBMRegressor