내일배움 본캠프

[내일배움 본캠프]머신러닝 알고리즘 종류와 특징

hyeon-ji 2026. 6. 26. 20:39

☆ 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되면 오류 해결 완!