## #RMSE
Root Mean Squared Error (RMSE)
\(\sqrt{\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는 최대우도추정을 사용하여 자동으로 주성분의 수를 선택합니다.- 이 방법은 주어진 데이터에 가장 적합한 차원의 수를 자동으로 결정하려고 할 때 유용합니다.
- 작동 원리:
- 데이터에 가장 잘 맞는 확률 모델을 가정합니다.
- 모델의 파라미터를 조정하여 데이터의 우도(likelihood)를 최대화합니다.
- 목적:
- 데이터를 가장 잘 설명하는 모델의 파라미터를 찾아, 모델의 성능을 개선하려는 목적으로 사용됩니다.