Scikit-Learn 을 이용한 앙상블 학습 방법 탐색

Beginner

This tutorial is from open-source community. Access the source code

소개

이 실습에서는 scikit-learn 을 사용하여 앙상블 방법을 탐색합니다. 앙상블 방법은 여러 모델을 결합하여 단일 모델보다 더 나은 성능을 달성하는 머신 러닝 기법입니다. 특히, 배깅 (Bagging) 과 랜덤 포레스트 (Random Forests) 라는 두 가지 인기 있는 앙상블 방법에 집중할 것입니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습용 Jupyter Notebook에 접근합니다.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.

학습 중 문제가 발생하면 Labby 에 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 가져오기

필요한 라이브러리를 가져오겠습니다.

import numpy as np
from sklearn.ensemble import BaggingClassifier, RandomForestClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split, cross_val_score

데이터 로드

다음으로 load_iris 함수를 사용하여 scikit-learn 에서 아이리스 (iris) 데이터셋을 로드합니다.

data = load_iris()
X, y = data.data, data.target

데이터 분할

scikit-learn 의 train_test_split 함수를 사용하여 데이터를 학습용과 테스트용으로 분할합니다.

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Bagging 분류기 학습

이제 학습 데이터에 Bagging 분류기를 적용합니다. Bagging 분류기는 부트스트랩 샘플링을 사용하여 여러 개의 기본 모델 (종종 의사결정 트리) 을 생성하고, 다수결 투표를 통해 그 예측을 집계하는 앙상블 방법입니다.

bagging = BaggingClassifier(DecisionTreeClassifier(), n_estimators=10)
bagging.fit(X_train, y_train)

Bagging 분류기 평가

score 메서드를 사용하여 테스트 데이터에 대한 정확도 점수를 계산하여 Bagging 분류기를 평가해 보겠습니다.

accuracy = bagging.score(X_test, y_test)
print(f"Bagging Classifier Accuracy: {accuracy}")

랜덤 포레스트 분류기 학습

다음으로, 학습 데이터에 랜덤 포레스트 분류기를 적용합니다. 랜덤 포레스트 분류기도 부트스트랩 샘플링을 사용하여 여러 개의 의사결정 트리를 생성하는 앙상블 방법이지만, 각 분할에서 특징의 부분 집합만 고려하여 추가적인 무작위성을 더합니다.

random_forest = RandomForestClassifier(n_estimators=10)
random_forest.fit(X_train, y_train)

랜덤 포레스트 분류기 평가

테스트 데이터에 대한 정확도 점수를 계산하여 랜덤 포레스트 분류기를 평가해 보겠습니다.

accuracy = random_forest.score(X_test, y_test)
print(f"Random Forest Classifier Accuracy: {accuracy}")

요약

이 실습에서는 scikit-learn 을 사용하여 앙상블 방법을 탐색했습니다. 우리는 아이리스 데이터 세트에 Bagging 분류기와 랜덤 포레스트 분류기를 적용하고 그 성능을 평가했습니다. Bagging 과 랜덤 포레스트와 같은 앙상블 방법은 기계 학습 모델의 예측 성능을 향상시키는 강력한 도구가 될 수 있습니다.