Home Sesac 혼공 머신러닝+딥러닝 정리
Post
Cancel

Sesac 혼공 머신러닝+딥러닝 정리

## #RMSE

Root Mean Squared Error (RMSE)

\(\sqrt{\frac{1}{n}\sum_{i=1}^{n}((y-\widehat{y})^2)}\)

  • 해석:
    • 예측 오차의 크기를 직관적으로 해석하기 쉽게 만드
    • 값이 낮을수록 모델의 성능이 좋다 #MSE

      Mean Squared Error(MSE)

      \(\frac{1}{n}\sum_{i=1}^{n}((y-\widehat{y})^2)\)

  • 해석:
    • MSE는 예측 오차의 제곱 평균
    • 값이 낮을수록 모델의 성능이 좋다

#R2

$R^2$ (결정 계수)

\(R^2 = 1-\tfrac{오차^2}{편차^2} = 1-\tfrac{\sum (예측값 - 실제값)^2}{\sum (실제값평균-실제값)^2}\)

  • 해석:
    • 값이 0과 1 사이에 있으며, 1에 가까울수록 모델이 데이터의 변동성을 잘 설명한다는 것을 의미
    • 반면, 0에 가까울수록 모델의 설명력이 떨어진다는 것을 의미합니다.
  • MSE는 예측 오차의 제곱 평균을 나타내며, 값이 낮을수록 좋다
  • RMSE는 MSE의 제곱근으로, 예측 오차의 실제 크기를 나타낸다.
  • **$R^2$는 모델이 데이터의 변동성을 얼마나 잘 설명하는지를 나타내는 지표로, 1에 가까울수록 좋다.

#비용함수

로지스틱 회귀의 비용 함수:

\[J(\theta) = -\frac{1}{m} \sum_{i=1}^{m} \left[ y^{(i)} \log(h_\theta(x^{(i)})) + (1 - y^{(i)}) \log(1 - h_\theta(x^{(i)})) \right]\] \[h_\theta(x) = \frac{1}{1 + e^{-\theta^T x}}\]

정규화(regularization) 기법

  • 불순물 추가 하여 과적합을 막는다 \((y-(W_{1}X_{1} + W_{2}X_{2}\cdots +W_{0})) + \lambda\) $\lambda$ : 불순물

#Ridge

릿지(Ridge) 회귀:

  • 정규화 항: $L2​$ 노름(norm)의 제곱, 즉 모든 계수의 제곱합입니다.
  • 목적 함수(Objective Function): \(J(\Theta )=MSE(\Theta)+\lambda \sum_{i=1}^{n}{\Theta_{i}^2 }\)

#Lasso

라소(Lasso) 회귀:

  • 정규화 항: $L1​$ 노름, 즉 모든 계수의 절대값의 합입니다.
  • 목적 함수(Objective Function): \(J(\Theta )=MSE(\Theta)+\lambda \sum_{i=1}^{n}\left |{\Theta_{i}} \right |\)

  • 릿지와 라소는 선형 회귀 모델에 정규화를 추가하여 과적합 방지
  • 릿지는 $L_{2}$ 정규화를 사용하여 계수를 작게 만들지만 0으로 만들지는 않는다
  • 라소는 $L_{1}$​ 정규화를 사용하여 계수를 0으로 만들 수 있어, 불필요한 특성을 자동으로 제거하는 효과가 있다

모델 파라미터 정리

회귀(Regression)

결정 트리 (Decision Tree)

  • max_depth: 트리의 최대 깊이. 너무 높으면 과적합의 위험이 있다
  • criterion: 분할 품질을 측정하는 기준. ‘gini’ 또는 ‘entropy’를 사용
  • splitter: 분할을 수행하는 전략. ‘best’ 또는 ‘random’

앙상블(Ensemble)

배깅(Bagging, Bootstrap)

랜덤포레스트 (Random Forest)
  • n_estimators: 앙상블에 사용할 결정 트리의 수 (default: 100)
  • max_depth: 각 트리의 최대 깊이 (default: None, 가능한 값: 정수)
  • random_state: 재현 가능성을 위한 랜덤 시드 (default: None)
엑스트라트리 (Extra Trees)
  • n_estimators: 생성할 트리의 수 (default: 100)
  • max_features: 각 트리에서 분할에 사용할 특성의 최대 수 (default: ‘auto’, 가능한 값: ‘auto’, ‘sqrt’, ‘log2’)
  • bootstrap: 무작위로 데이터를 샘플링할 것인지 여부 (default: False)

부스트(Boost)

그레이디언트 부스팅 (Gradient Boosting)
  • learning_rate: 학습률 (default: 0.1)
  • n_estimators: 부스팅 단계의 수 (default: 100)
  • subsample: 각 부스팅 단계에서 사용할 훈련 샘플의 비율 (default: 1.0, 가능한 값: 0~1 사이의 실수)
히스토그램 기반 부스팅 (Histogram-based Boosting)
  • learning_rate: 학습률 (default: 0.1)
  • max_iter: 최대 반복 횟수 (default: 100)
  • max_leaf_nodes: 각 트리에서의 최대 리프 노드 수 (default: 31)
XGBoost
  • eta: 학습률 (default: 0.3)
  • max_depth: 트리의 최대 깊이 (default: 6)
  • subsample: 훈련 데이터의 하위 샘플 비율 (default: 1)
LightGBM
  • learning_rate: 학습률 (default: 0.1)
  • num_leaves: 하나의 트리가 가질 수 있는 최대 리프의 수 (default: 31)
  • max_depth: 트리의 최대 깊이 (default: -1, 의미: 제한 없음)

분류(Classification)

K-means 클러스터링 (K-means Clustering)

  • n_clusters: 군집의 수를 결정하는 파라미터 (default: 8)
  • init: 초기 중심점의 설정 방법 (default: ‘k-means++’)
  • n_init: 중심 초기화를 몇 번 반복할지 결정 (default: 10)
  • max_iter: 알고리즘의 최대 반복 횟수 (default: 300)
  • tol: 수렴 조건을 판단하기 위한 허용 오차 (default: 1×10−41×10−4)
  • precompute_distances: 거리 계산을 미리 할지 결정 (default: ‘auto’)
  • verbose: 상세한 정보 출력 여부 (default: 0)
  • random_state: 결과의 재현성을 위한 랜덤 시드 (default: None)
  • copy_x: 데이터를 복사할지 여부 (default: True)
  • n_jobs: 병렬 처리를 위한 CPU 코어 수 (default: None)
  • algorithm: 사용할 K-means 알고리즘 버전 (default: ‘auto’)

주성분 분석 (Principal Component Analysis, PCA)

  • n_components: 주성분의 수를 결정하는 파라미터 (default: None, 가능한 값: 정수, ‘mle’, 0-1 사이의 실수)
  • svd_solver: SVD (Singular Value Decomposition) 해결 방법 (default: ‘auto’, 가능한 값: ‘auto’, ‘full’, ‘arpack’, ‘randomized’)
  • whiten: 주성분을 희석화할지 여부, 일반적으로 클러스터링이나 분류에서 유용 (default: False)
  • tol: SVD를 위한 허용 오차 (default: 0.0, svd_solver가 ‘arpack’일 경우에 사용)
  • random_state: 결과의 재현성을 위한 랜덤 시드 (default: None)
MLE (Maximum Likelihood Estimation, 최대우도추정)
  • 정의: MLE는 주어진 데이터를 가장 잘 설명하는 확률 분포의 파라미터를 찾는 통계적 방법입니다.
  • PCA에서의 역할:
    • n_components에 ‘mle’를 설정하면, PCA는 최대우도추정을 사용하여 자동으로 주성분의 수를 선택합니다.
    • 이 방법은 주어진 데이터에 가장 적합한 차원의 수를 자동으로 결정하려고 할 때 유용합니다.
  • 작동 원리:
    1. 데이터에 가장 잘 맞는 확률 모델을 가정합니다.
    2. 모델의 파라미터를 조정하여 데이터의 우도(likelihood)를 최대화합니다.
  • 목적:
    • 데이터를 가장 잘 설명하는 모델의 파라미터를 찾아, 모델의 성능을 개선하려는 목적으로 사용됩니다.
This post is licensed under CC BY 4.0 by the author.

[SeSAC]혼공 머신러닝+딥러닝 Ch5. 트리 알고리즘

[SeSAC]혼공 머신러닝+딥러닝 Ch6. 비지도 학습