본문 바로가기
파이썬/머신러닝-지도학습

파이썬 머신러닝 지도학습 - 앙상블 -Random forest(랜덤 포레스트) (분류, 회귀)

by 큰고양2 2023. 9. 17.

Random forest

특성을 무작위로 선택하고, 샘플링도 랜덤(샘플링은 부트스트랩)으로 지정해

여러 종류의 decision tree를 만들어낸 다음 모델들의 결과를 통해 최종 값을 선정

->분류의 경우 다수결에 따라 결정, 회귀 문제의 경우 평균

 

모델링

#분류
from sklearn.ensemble import RandomForestClassifier
#회귀
from sklearn.ensemble import RandomForestRegressor

코드로 임포트 한 다음

#분류
model = RandomForestClassifier(n_estimators= ,criterion =  , max_depth= ,min_samples_split= , min_samples_leaf = , max_features , random_state = )
#회귀
model = RandomForestRegressor(n_estimators= ,criterion =  , max_depth= ,min_samples_split= , min_samples_leaf = , max_features , random_state = )

로 모델을 선언한다

각각 파라미터는

  1. criterion: 분할 품질을 측정하는 기능을 지정  ,  "mse"(평균 제곱 오차), "friedman_mse"(Friedman의 평균 제곱 오차), "mae"(평균 절대 오차), 기본값= "mse"
  2. max_depth: 트리의 최대 깊이를 지정 (기본값 = None)
  3. min_samples_split: 노드를 분할하기 위해 필요한 최소 샘플 수를 지정 (기본값=2)
  4. min_samples_leaf: 리프 노드에 필요한 최소 샘플 수를 지정 (기본값 =1)
  5. max_features : 각각의 분기점에서 고려해야 할 feature들의 수 (기본값=None).
  6. random_state : 난수 발생 시드
  7. n_estimators : 만들어질 decision tree의 수 , (기본값=100)

이다 만약 기본 설정을 그대로 쓸 생각이라면 그냥 함수명()으로 선언해도 된다

학습 및 예측

model.fit(x_train, y_train)

fit매소드로 학습을 시킬 수 있다

이후

y_pred = model.predict(x_test)

코드를 사용하여 완성된 모델에 x_test를 넣어 예측값을 생성 할 수 있다

 

평가

from sklearn.metrics import *

코드로 평가 함수들을 임포트 한 다음

https://bigcat5312.tistory.com/77

 

머신러닝 지도학습 - 회귀와 분류, 분석도구

회귀(Regression) 이미 결과값이 있는 데이터를 사용하여 연관성을 찾아 연속적인 숫자를 예측해 내는 것 ex) 집값 분석도구 평가도구 LinearRegression KNeighborsRegressor DecisionTreeRegressor RandomForestRegressor XG

bigcat5312.tistory.com

게시글을 참고하여 원하는 평가함수(y_test , y_pred)를 사용해 평가 할 수 있다