☆ To Do List ☆
- AI진단퀴즈
- 머신러닝 심화 챕터 2수강
- 자소서 작성
- TIL 작성 및 제출
🤖 에이타니
F-statistic과 p-value
● F-statistic
F-statistic은 회귀모형 전체가 통계적으로 유의한지 평가하는 지표이다. 즉, 독립변수들이 종속변수를 설명하는 데 의미가 있는지를 확인하는 역할을 한다.
일반적으로 F-statistic 값이 클수록 모델의 설명력이 높을 가능성이 크며, 함께 제공되는 p-value를 통해 최종적으로 유의성을 판단한다.
● p-value
p-value는 귀무가설이 참이라는 가정하에 현재와 같거나 더 극단적인 결과가 나타날 확률을 의미한다.
일반적으로 다음과 같이 해석한다.
- p-value < 0.05 : 통계적으로 유의하며, 귀무가설을 기각한다.
- p-value ≥ 0.05 : 통계적으로 유의하지 않으며, 귀무가설을 기각하지 않는다.
즉, p-value가 작을수록 현재 분석 결과가 우연히 발생했을 가능성이 낮다고 판단한다.
🖥️ 머신러닝
■ 의사결정나무(Decision Tree)
의사결정나무(Decision Tree)는 데이터를 조건에 따라 반복적으로 분할하여 결과를 예측하는 알고리즘이다. 사람의 의사결정 과정처럼 나무(Tree) 형태로 분류가 이루어지며, 분류(Classification)와 회귀(Regression) 모두 사용할 수 있다.
● 의사결정나무의 특징
- 데이터를 조건에 따라 반복적으로 분할하여 예측
- 데이터 스케일링이 필요하지 않음
- 변수 중요도를 확인할 수 있음
● 장점
- 구조가 직관적이고 해석이 쉬움
- 분류와 회귀 모두 적용 가능
- 이상치의 영향을 비교적 적게 받음
● 단점
- 과적합(Overfitting)이 발생하기 쉬움
- 데이터 변화에 따라 모델 구조가 크게 달라질 수 있음
▶ Python 함수
from sklearn.tree import DecisionTreeClassifier
from sklearn.tree import DecisionTreeRegressor
■ 랜덤포레스트(Random Forest)
랜덤포레스트(Random Forest)는 여러 개의 의사결정나무를 학습시킨 뒤 결과를 종합하여 최종 예측을 수행하는 앙상블 알고리즘이다.
Bagging(Bootstrap Aggregating) 기법을 사용하여 서로 다른 데이터로 여러 개의 트리를 생성하고, 각 트리의 예측 결과를 종합하여 최종 결과를 결정한다.
● Bagging(Bootstrap Aggregating)
- Bootstrapping : 데이터를 복원추출하여 여러 개의 학습 데이터를 생성
- Aggregating : 여러 모델의 예측 결과를 종합하여 최종 결과를 결정
● 장점
- 과적합을 효과적으로 방지할 수 있음
- 높은 예측 성능을 보임
- 변수 중요도를 확인할 수 있음
- 데이터 스케일링이 필요하지 않음
● 단점
- 모델 구조를 해석하기 어려움
- 학습 시간과 메모리 사용량이 증가
▶ Python 함수
from sklearn.ensemble import RandomForestClassifier
from sklearn.ensemble import RandomForestRegressor
■ K-최근접 이웃(K-Nearest Neighbor, KNN)
KNN은 새로운 데이터와 가장 가까운 K개의 데이터를 찾은 후, 가장 많이 속한 클래스로 예측하는 거리 기반 알고리즘이다.
데이터 간 거리를 계산하기 때문에 변수의 단위를 맞추기 위한 표준화(Standardization) 과정이 필요하다.
● 장점
- 원리가 단순하고 이해하기 쉬움
- 별도의 복잡한 학습 과정이 없음
- 분류와 회귀 모두 가능
● 단점
- 데이터가 많을수록 예측 속도가 느려짐
- 변수 스케일의 영향을 크게 받음
- 차원이 높아질수록 성능이 저하될 수 있음
▶ Python 함수
from sklearn.neighbors import KNeighborsClassifier
from sklearn.neighbors import KNeighborsRegressor
■ 하이퍼파라미터(Hyperparameter)
하이퍼파라미터(Hyperparameter)는 모델을 학습하기 전에 사용자가 직접 설정하는 값으로, 모델의 구조와 성능에 영향을 미친다.
대표적인 예시는 다음과 같다.
- Decision Tree : max_depth
- Random Forest : n_estimators
- KNN : n_neighbors
적절한 하이퍼파라미터를 설정하면 모델의 예측 성능을 더욱 향상시킬 수 있다.
■ 부스팅(Boosting)
부스팅(Boosting)은 여러 개의 약한 학습기(Weak Learner)를 순차적으로 학습시키면서 이전 모델의 오차를 보완하는 앙상블 기법이다.
학습을 반복할수록 잘못 예측한 데이터에 더 큰 가중치를 부여하여 모델의 성능을 개선한다.
● Gradient Boosting Machine(GBM)
Gradient Boosting은 이전 모델의 오차를 경사하강법(Gradient Descent)을 이용하여 순차적으로 줄여나가는 부스팅 알고리즘이다.
▶ 특징
- 이전 모델의 오차를 반복적으로 보완
- 높은 예측 성능
- 학습 속도가 비교적 느림
▶ Python 함수
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.ensemble import GradientBoostingRegressor
● XGBoost
XGBoost는 Gradient Boosting을 개선한 알고리즘으로, 빠른 학습 속도와 높은 예측 성능을 제공한다.
▶ 특징
- 병렬 학습 지원
- 과적합 방지 기능 제공
- 다양한 데이터 분석 대회에서 많이 활용
▶ Python 함수
from xgboost import XGBClassifier
from xgboost import XGBRegressor
● LightGBM
LightGBM은 XGBoost를 개선한 알고리즘으로, 학습 속도가 빠르고 메모리 사용량이 적은 것이 특징이다.
▶ 특징
- 학습 속도가 매우 빠름
- 대용량 데이터에 적합
- 메모리 사용량이 적음
- 데이터가 적은 경우 과적합이 발생할 수 있음
▶ Python 함수
from lightgbm import LGBMClassifier
from lightgbm import LGBMRegressor
※ Mac에서 XGBoost 오류 해결
머신러닝 실습 중 XGBoost를 import하는 과정에서 아래와 같은 오류가 발생했다.
from xgboost import XGBClassifier
▶ 발생한 오류
XGBoostError:
Library not loaded: @rpath/libomp.dylib
→ 오류 원인
Mac에서 XGBoost는 OpenMP(libomp) 라이브러리를 사용한다.
하지만 해당 라이브러리가 설치되어 있지 않으면 XGBoost를 import하는 과정에서 위와 같은 오류가 발생한다.
→ 해결 방법
1. Homebrew 설치 여부 확인
터미널에서 아래 명령어를 입력한다.
brew --version
만약 아래와 같은 메시지가 출력된다면 Homebrew가 설치되어 있지 않은 상태이다.
command not found: brew
2. Homebrew 설치
아래 명령어를 입력하여 Homebrew를 설치한다.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
3. Homebrew PATH 등록
설치가 완료되면 아래 명령어를 순서대로 한 줄씩 입력한다.
echo >> ~/.zprofile
echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv zsh)"
4. Homebrew 설치 확인
brew --version
Homebrew 버전이 출력되면 정상적으로 설치된거다.
5. libomp 설치
brew install libomp
6. libomp 설치 확인
brew list | grep libomp
libomp가 출력되면 정상적으로 설치된거다.
7. 커널 재시작 후 다시 실행
Jupyter Notebook 또는 VS Code의 커널을 재시작한 뒤 다시 실행한다.
from xgboost import XGBClassifier
정상적으로 import되면 오류 해결 완!
'내일배움 본캠프' 카테고리의 다른 글
| [내일배움 본캠프]개인과제 시작. (1) | 2026.06.30 |
|---|---|
| [내일배움 본캠프]K-Means 군집화란? 비지도학습 핵심 개념 정리! (0) | 2026.06.29 |
| [내일배움 본캠프] 과적합이란? (0) | 2026.06.25 |
| [내일배움 본캠프]EDA와 데이터 전처리 (0) | 2026.06.24 |
| [내일배움 본캠프] 통계에서 재현성의 중요성 (0) | 2026.06.23 |