경기도미래기술학교 AI개발자 부트캠프 52일차 TIL- 머신러닝 공부 계속. randomforestclassifier 등

2023. 7. 19. 21:17python

반응형
LogisticRegression(solver='liblinear')

이건 뭔지 모르겠는데..?

 

from sklearn.model_selection import train_test_split

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

stratify를 쓰면 학습데이터와 트레이닝, 테스트의 분포가 원래 데이터와 동일하도록 학습시키는 것.

뭔가 치우친 데이터에 적용할 때 특히 유용하다. 임의로 20% 뽑았을 때 잘 안나올 수도 있으니까 이것을 사용한다.

 

 

과적합 : 트레이닝 데이터가 테스트에 비해 학습이 잘되긴 하는데, 새로운 값이 들어오면 잘 안맞는 경우가 있음.

 

앙상블 : 여러 개의 Classifier(분류기)를 생성해서 더 좋은 결과를 추출하기 위한 것. 단일 모델의 약점을 여러 모델로 결합해 보완한다.

유형은 보팅, 배깅, 부스팅으로 구분할 수 있다.

randomforest와 부스팅이 대표적인 알고리즘.

 

보팅(Voting) : 여러 Classifier의 투표를 통해 최종 예측을 정함.

하드 보팅은 다수결. (3,4,3,2)로 나오면 3으로 결정.

소프트 보팅은 각각의 확률을 평균함. (0.7/0.3)의 확률, (0.2,0.6)의 확률을 더해서 분류기대로 나눔.

 

배깅(Bagging) : 보팅이랑 비슷한데 원본 데이터에서 샘플링을 한다. 샘플링 표본 수가 서로 다름.

 

 

랜덤 포레스트! 

배깅 방식이다. 전체 학습 데이터 중에 샘플링을 한다. 각각 서브 세트는 다 다르다. 각각 학습한 값들을 소프트 보팅을 하여 최종 값을 결정한다.

 

부트스트래핑 : 여러 개의 데이터 셋을 중첩되게 분리하는 것.

n_estimators : 서브세트의 갯수를 나타내는 하이퍼 파라미터. 결정트리의 갯수. default는 100개임.

 

max_features : 피처의 갯수를 정할 수 있다. default는 auto인데 제곱근이다. (total feature : 9개면 3개만 참조한다.) 각각 분류기마다 3개씩 랜덤으로 가져가는거임.

 

max_depth : 최대 깊이.

 

class_weight : 기울어진 타겟값일 때 가중치를 조정하는 것.

등등 있음.

 

oob_score : 랜덤 요소값을 남겨두고 나머지를 학습시킨 다음 남겨둔 값으로 테스트 하는 것.

 

https://scikit-learn.org/stable/modules/generated/sklearn.ensemble.RandomForestClassifier.html

 

sklearn.ensemble.RandomForestClassifier

Examples using sklearn.ensemble.RandomForestClassifier: Release Highlights for scikit-learn 0.24 Release Highlights for scikit-learn 0.22 Comparison of Calibration of Classifiers Probability Calibr...

scikit-learn.org

 

 

 

728x90