본문 바로가기

머신러닝

[파이썬 머신러닝] 배깅 방식의 랜덤 포레스트 학습

랜덤 포레스트 알고리즘은 앙상블 알고리즘 중에 빠른 수행 속도를 가지고 있다. 장점은 결정 트리의 직관적인 모습을 가지고 있는데 랜덤 포레스트는 여러 개의 결정 트리 분류기가 각각의 데이터를 부트스트랩핑(샘플링)하여 개별적으로 학습을 수행하고 최종적으로 보팅을 통해 예측 결정을 한다.

Pipeline 과 GridSearchCV 를 통해서 랜덤포레스트의 하이퍼 파라미터를 튜닝하여서 학습시켜 보겠다.

www.kaggle.com/teejmahal20/airline-passenger-satisfaction

 

Airline Passenger Satisfaction

What factors lead to customer satisfaction for an Airline?

www.kaggle.com

데이터는 캐글에서 위의 것을 갖고와서 이용하였다.

from sklearn.compose import ColumnTransformer
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import GridSearchCV

num_pipeline = Pipeline(steps=[
                         ('imputer', SimpleImputer(strategy='mean'))
])
rfc = RandomForestClassifier()
parameters = {
            'classifier__max_depth':[None, 1, 2],
            'classifier__min_samples_split':[1, 2]
}
tree_pipeline = Pipeline(steps=[('num_pipeline', num_pipeline),
                                ('classifier', rfc)])
                                
grid_tree2 = GridSearchCV(estimator=tree_pipeline, param_grid=parameters, cv=2, refit=True)

grid_tree2.fit(X_train, y_train)

print('최적 파라미터', grid_tree2.best_estimator_)
print('최적 스코어', grid_tree2.best_score_)

최적 스코어 0.958601440906341로 나왔다.  밑에 결정트리로 학습한 것과 0.1이 높게 나왔다.

rudolf-2434.tistory.com/16

 

머신러닝 분류 Classification 중 Decision Tree(결정 트리)

분류는 데이터를 피쳐값과 타겟 값(레이블 값)으로 나누어서 피쳐에 따라 타겟값의 값을 예측하는 것이다. 기존 데이터들을 이용해서 어떠한 피쳐에서는 어떠한 타겟 값들이 나올 것인가를 학

rudolf-2434.tistory.com