2023. 7. 19. 21:17ㆍpython
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
'python' 카테고리의 다른 글
경기도미래기술학교 AI개발자 부트캠프 60일차 TIL- 알고리즘 공부. 딕셔너리를 잘 몰랐다. 재귀 함수. 유클리드 호제법. (0) | 2023.08.01 |
---|---|
파이썬에서 yaml. 디비 정보 등 개인정보 보호하기. (0) | 2023.07.24 |
몽고디비와 파이썬이 SSL 문제로 연결이 안될 때. import certifi (0) | 2023.07.19 |
맥북 크롬 셀레니움이 갑자기 안된다. 115버전 ChromeDriver 해결법.(임시 불끄기) (0) | 2023.07.19 |
경기도미래기술학교 AI개발자 부트캠프 50일차 TIL- Life Expectancy (WHO) 케글 머신러닝 데이터 (0) | 2023.07.17 |