파이썬/scikit-learn

Scikit-learn RandomForest 사용법

remarkable-book 2023. 8. 21. 08:30
반응형

RandomForest 개념 정의

RandomForest

랜덤포레스트(RandomForest)란 머신러닝에서 널리 사용하는 앙상블(Ensemble) 방법 중 하나로 여러 개의 트리를 조합하여 예측하는 모델이다.

 

랜덤포레스트는 부트스트래핑(Bootstrapping)과 배깅(Bagging)을 기반으로한다.

 

부트스트래핑(Bootstrapping)이란 현재 보유하고 있는 데이터 셋으로 다른 데이터 셋틀 만드는 방법이다. 

 

배깅이란 Bootstrap aggregating으로 여러개의 모델을 독립적으로 학습한 후 그 결과를 투표한 결과를 종합하는 방법이다.

 

Scikit-learn RandomForest import

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

sklearn.datasets 모듈에서 load_iris 함수를 사용하여 붓꽃 데이터셋을 로드

sklearn.model_selection 모듈에서 train_test_split 함수를 로드

sklearn.ensemble 모듈에서 RandomForestClassifier 로드

sklearn.metrics 모듈에서 accuracy_score 함수 로드

 

Data load & train test split

data = load_iris() 

X, y = data.data, data.target

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

붓꽃 데이터셋을 X와 y에 할당

X는 학습 데이터

y는 학습 데이터에 대한 클래스 레이블(Labels)

 

반응형

Model

clf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42).fit(X_train, y_train)

n_estimators: 랜덤 포레스트에서 사용할 트리의 개수를 지정하는 매개변수

max_depth:  결정 트리의 최대 깊이를 제한하는 매개변수

random_state: 항상 같은 결과를 얻을 수 있도록 랜덤 시드를 고정

 

fit: X_train과 y_train 학습

 

X_train: 학습 데이터

 

y_train: 학습 데이터에 대한 레이블

 

Predict

y_pred = clf.predict(X_test)

학습된 모델을 사용하여 X_test 데이터에 대한 예측

 

Accuracy

score = accuracy_score(y_test, y_pred)

print('Random Forest Accuracy Score: ', score)

 

accuracy_score: 정확도를 계산하는함수

 

RandomForest 전체 코드

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

data = load_iris() 

X, y = data.data, data.target

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

clf = RandomForestClassifier(n_estimators=100, max_depth=5, random_state=42).fit(X_train, y_train)

y_pred = clf.predict(X_test)

score = accuracy_score(y_test, y_pred)

print('Random Forest Accuracy Score: ', score)

 

 

반응형

'파이썬 > scikit-learn' 카테고리의 다른 글

RandomForest 중요도 시각화  (0) 2023.08.22