혼자 공부하는 머신러닝+딥러닝
오늘은 4주차!
설날에 할머니가 만들어주신 맛있는 집밥을 잔뜩 먹었다
힘이 솟아오른다!!!
오오오오오오오옷!!!!!


숙제
이런 건 역시 손글씨로 써야 제맛이지
챕터 5에서는 결정트리, 교차 검증과 그리드 서치, 트리의 앙상블에 대한 내용에 대해 배운다.
검증 세트: 하이퍼파라미터 튜닝을 위해 모델을 평가할 때, 테스트 세트를 사용하지 않기 위해 훈련 세트에서 다시 떼어 낸 테이터 세트.
교차 검증: 훈련 세트를 여러 폴드로 나눈 다음 한 폴드가 검증 세트의 역할을 하고 나머지 폴드에서는 모델을 훈련함. 교차 검증은 이런 식으로 모든 폴드에 대해 검증 점수를 얻어 평균하는 방법.
그리드 서치: 하이퍼파라미터 탐색을 잦동화해 주는 도구. 탐색할 매개변수를 나열하면 교차 검증을 수행하여 가장 좋은 검증 점수의 매개변수 조합을 선택함. 마지막으로 이 매개변수 조합으로 최종 모델을 훈련함.
랜덤 서치: 연속된 매개변수 값을 탐색할 때 유용. 탐색할 값을 직접 나열하는 것이 아닌 탐색 값을 샘플링할 수 있는 확률 분포 객체를 전달함. 지정된 횟수만큼 샘플링하여 교차 검증을 수행하기 때문에 시스템 자원이 허락하는 만큼 탐색량을 조절할 수 있음.
scikit-learn
cross_validata(): 교차 검증을 수행하는 함수. 첫 번째 매개변수에 교차 검증을 수행할 모델 객체를 전달. 두 번째와 세 번째 매개변수에 특성과 타깃 데이터를 전달.
scoring 매개변수에 검증에 사용할 평가 지표를 지정할 수 있음.
cv 매개변수에 교차 검증 폴드 수나 스플리터 객체를 지정할 수 있음. 기본값은 5.
회귀일 때는 KFold 클래스를 사용하고, 분류일 때는 StratifiedKFold 클래스를 사용하여 5-폴드 교차 검증을 수행함.
n_jobs 매개변수는 교차 검증을 수행할 때 사용할 CPU 코어 수를 지정. 기본값은 1로 하나의 코어를 사용함. -1로 지정하면 시스템에 있는 모든 코어를 사용함.
return_train_score 매개변수를 True로 지정하면 훈련 세트의 점수도 반환함. 기본값은 False.
GridSearchCV: 교차 검증으로 하이퍼파라미터 탐색을 수행. 최상의 모델을 찾은 후 훈련 세트 전체를 사용해 최종 모델을 훈련. 첫 번째 매개변수에 그리드 서치를 수행할 모델 객체를 전달. 두 번째 매개변수에 탐색할 모델의 매개변수와 값을 전달.
매개변수는 cross_validata() 함수와 동일.
RandomizedSearchCV: 교차 검증으로 랜덤한 하이퍼파라미터 탐색을 수행. 최상의 모델을 찾은 후 훈련 세트 전체를 사용해 최종 모델을 훈련.
매개변수는 cross_validata() 함수와 동일.
앙상블 학습: 더 좋은 예측 결과를 만들기 위해 여러 개의 모델을 훈련하는 머신러닝 알고리즘.
랜덤 포레스트: 대표적인 결정 트리 기반의 앙상블 학습 방법. 부트스트랩 샘플을 사용하고 랜덤하게 일부 특성을 선택하여 트리를 만드는 것이 특징.
엑스트라 트리: 랜덤 포레스트와 비슷하게 결정 트리를 사용하여 앙상블 모델을 만들지만 부트스트랩 샘플을 사용하지 않음. 대신 랜덤하게 노드를 분할해 과대적합을 감소시킴.
그레이디언트 부스팅: 랜덤 포레스트나 엑스트라 트리와 달리 결정 트리를 연속적으로 추가하여 손실 함수를 최소화하는 앙상블 방법. 이런 이유로 훈련 속도가 조금 느리지만 더 좋은 성능을 기대할 수 있음. 그레이디언트 부스팅의 속도를 개선한 것이 히스토그램 기반 그레이디언트 부스팅이며 안정적인 결과와 높은 성능으로 매우 인기가 높음.
scikit-learn
RandomForestClassifier: 랜덤 포레스트 분류 클래스.
ExtraTreesClassifier: 엑스트라 트리 분류 클래스.
GradientBoostingClassifier: 그레이디언트 부스팅 분류 클래스.
HistGradientBoostingClassifier: 히스토그램 기반 그레이디언트 부스팅 분류 클래스.
그레이디언트 부스팅을 보고 느낀 점..
머신러닝을 할 땐
항상 이러한 딜레마에 빠져
고민 해야겠구나..
속도가 빠르면 성능이 나쁘고
성능이 좋으면 속도가 느리고..
쉽지 않군..

그리고 교차 검증이라는 방법.. 너무 천재적인 것 같다..
저런 생각 어떻게 하는거지?

'혼공단 13기 머신러닝+딥러닝' 카테고리의 다른 글
[혼공머신] 6주차_딥러닝 (0) | 2025.02.22 |
---|---|
[혼공머신] 5주차_챕터6. 비지도 학습 (0) | 2025.02.15 |
[혼공머신] 3주차_챕터4. 다양한 분류 알고리즘 (0) | 2025.01.21 |
[혼공머신] 2주차_챕터3. 회귀 알고리즘과 모델 규제(어려워요잉ㅠㅠ) (0) | 2025.01.15 |
[혼공머신] 1주차_시작이 반이다!!!! (0) | 2025.01.06 |