본문 바로가기

Machine Learning/scikit-learn24

[앙상블] GBM(Gradient Boosting Machine) 부스팅이란? 부스팅 알고리즘은 여러 개의 약한 학습기를 순차적으로 학습&예측하면서 잘못 예측한 데이터에 가중치를 부여하며 오류를 개선해 나감 부스팅의 대표적인 알고리즘 AdaBoost(에이다부스트) : 오류 데이터에 가중치를 부여하면서 부스팅을 수행하는 대표적인 알고리즘 GBM(그래디언트 부스트) : 가중치 업데이트를 경사 하강법을 이용하는 것이 에이다부스트와 차이 XGBoost, LightGBM 의 패키지가 있음 GBM 분류와 회귀 모두 가능 사이킷런의 GradientBoostingClassifier 클래스 사용 순차적인 예측 오류 보정을 통해 학습을 수행하므로, 멀티 CPU 코어 시스템을 사용하더라도 병렬 처리가 지원되지 않아서 대용량 데이터의 경우 학습 시간이 매우 많이 필요함. 아래 예제로 간단히.. 2023. 8. 22.
[앙상블] 랜덤 포레스트 랜덤 포레스트란? 배깅(Bagging)은 같은 알고리즘으로 여러 개 분류기를 만들어 보팅으로 최종 결정하는 알고리즘 배깅의 대표 알고리즘은 랜덤 포레스트 랜덤 포레스트 특징 높은 예측 성능을 보이며, 기반 알고리즘은 결정 트리임 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행 ➡ 모든 분류기가 보팅을 통해 예측 결정 개별 트리가 학습하는 데이터 세트는 전체 데이터에서 일부가 중첩되게 샘플링된 데이터 세트 ➡ 즉, 부트스트래핑 분할 이렇게 뽑힌 서브세트의 데이터 건수는 전체 데이터 건수와 동일하지만, 일부 데이터가 중첩되는 것 n_estimator로 하이퍼 파라미터를 부여하여 데이터 서브세트 개수를 결정 예를 들어 n_estimator = 3이면.. 2023. 8. 22.
[앙상블] 앙상블의 개념과 보팅(하드보팅 vs. 소프트 보팅) 앙상블 학습이란? 여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것 대부분의 정형 데이터 분류 시에는 앙상블이 뛰어난 성능을 보임 결정 트리 알고리즘의 단점(과적합 위험)을 극복하여 편향-분산 트레이드오프의 효과를 극대화함 앙상블 학습의 유형 보팅 : 서로 다른 알고리즘을 가진 분류기를 결합 소프트 보팅과 하드 보팅이 있음 일반적으로 소프트 보팅이 적용됨 배깅 : 분류기가 모두 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 다르게 하여 학습 ➡ 그 후, 보팅 대표적인 배깅 방식 : 랜덤 포레스트 알고리즘 배깅은 개별 분류기에 할당된 학습 데이터를 원본 학습데이터에서 추출 ➡ 이 방식을 부트스트래핑 분.. 2023. 8. 22.
결정 트리 실습 - 사용자 행동 인식 데이터 분류 예제 🧑🏻‍💻 예제 설명 스마트폰 센서를 장착한 30명의 행동데이터를 수집 결정 트리를 이용해 어떠한 동작인지 예측 데이터 불러오기 : feature.txt 파일 로드 피처 인덱스와 피처명을 가지고 있으므로 이를 DataFrame으로 로딩하여, 피처 명칭 확인 import pandas as pd DATA_PATH = '/content/drive/MyDrive/data' feature_name_df = pd.read_csv(DATA_PATH + '/human_activity/features.txt',sep='\s+', header=None,names=['column_index','column_name']) feature_name_df.head(1) 피처명 index 제거 후, 피처만 따로 저장 피처명 : 인체의.. 2023. 8. 21.
[분류 알고리즘(앙상블)] 결정 트리(Decision Tree) ✔ 분류란? 학습 데이터로 주어진 데이터의 피처와 레이블값(결정 값, 클래스 값)을 머신러닝 알고리즘으로 학습해 모델을 생성하고 이렇게 생성된 모델에 새로운 데이터 값이 주어졌을 때 미지의 레이블 값을 예측하는 것이다. 분류를 구현하는 알고리즘 나이브 베이즈 로지스틸 회귀 결정 트리 서포트 벡터 머신 최소 근접 알고리즘 신경망 앙상블 이 중, 이미지, 영상, 음성, NLP 영역에서 신경망에 기반한 딥러닝이 머신러닝계를 선도하고 있지만, 이를 제외한 정형 데이터의 예측 분석 영역에서는 👉 앙상블이 매우 높은 예측 성능으로 인해 많은 분석가와 데이터 과학자들에게 애용되고 있다. ✔ 앙상블이란? 서로 다른/또는 같은 알고리즘을 단순 결합한 형태도 있음 (대부분 동일한 알고리즘을 결합) 일반적으로 배깅과 부스팅.. 2023. 8. 21.
[이진 분류_성능 평가 지표] 정밀도 / 재현율 정밀도와 재현율은 Positive 데이터 세트의 예측 성능에 좀 더 초점을 맞춘 평가 지표 # 정밀도 Positive 예측 성능을 더욱 정밀하게 측정하기 위한 평가 지표로, 양성 예측도라고도 불림 예측을 Positive로 한 대상 중에 실제 값도 Positive로 일치한 데이터 비율 사이킷런의 API는 다음과 같다 from sklearn.metrics import precision_score # 재현율 실제 값이 Positive인 대상 중에 예측도 Positive로 일치한 데이터 비율 민감도 또는 TPR(True Positive Rate)라고도 불림 사이킷런의 API는 다음과 같다 from sklearn.metrics import recall_score 🔍 정밀도와 재현율은 언제 중요할까? 재현율이 중요.. 2023. 8. 20.
[분류_성능 평가 지표] 정확도와 오차 행렬(이진 분류) 💜 분류의 성능평가 지표 정확도 오차행렬 정밀도 재현율 F1 스코어 ROC AUC 👉 분류는 결정 클래스 값 종류의 유형에 따라 - 긍정/부정과 같이 2개 결괏값만 가지는 '이진 분류'와 - 여러 개의 결정 클래스 값을 가지는 '멀티 분류'가 있다. 👉 위 지표들은 특히 '이진 분류'에서 중요한 지표이다. 💜 가장 직관적인 '정확도' 실제 데이터에서 예측 데이터가 얼마나 같은지를 판단하는 지표 전체 예측 데이터 건 수 중 예측 결과가 동일한 데이터 건수 비율 단, 불균형한 레이블 데이터 세트에서는 성능 수치로 사용할 수 없음 데이터 분포도가 균일하지 않은 경우, 대충 예측해도 정확도가 높아져버리는 현상 발생 이러한 문제를 극복하기 위해 여러 가지 분류지표와 함께 적용하여 ML 모델 성능을 평가해야 한다!.. 2023. 8. 18.
[GridSearchCV] 교차 검증 & 하이퍼 파라미터 튜닝을 한 번에 GridSearchCV 역할 ▶︎ 교차 검증을 기반으로 하이퍼 파라미터의 최적 값을 찾게 해줌 - 데이터 세트를 학습/테스트 세트로 자동 분할 - 하이퍼 파라미터 그리드에 기술된 파라미터를 순차적으로 적용 - 학습과 평가까지 수행 👉 즉, cross-validation을 위한 학습/테스트 세트로 자동으로 분할한 뒤, 하이퍼 파라미터 그리드에 기술된 모든 파라미터를 순차적으로 적용해 최적의 파라미터를 찾을 수 있게 해준다. 사이킷런은 GridSearchCV 를 이용해 Classifier나 Regressor와 같은 알고리즘에 사용되는 하이퍼 파라미터를 순차적으로 입력하면서 편리하게 최적의 파라미터를 도출할 수 있다 최고 성능을 가지는 파라미터 조합을 찾기 위해, 파라미터의 집합을 만들고 순차 적용하며 최적화.. 2023. 8. 17.
[교차 검증] Stratified K 폴드 Stratified K 폴드 Stratified K 폴드는 불균형한 분포도를 가진 레이블 데이터 집합을 위한 K 폴드 방식이다 불균형한 분포도를 가진 데이터 집합은 특정 레이블 값이 특이하게 많거나 매우 적어서 값의 분포가 한 쪽으로 치우치는 것을 말한다. Stratified K 폴드는 K 폴드가 레이블 데이터 집합이 원본 데이터 집합의 레이블 분포를 학습 및 테스트 세트에 제대로 분배하지 못하는 경우의 문제를 해결해준다 따라서, 왜곡된 레이블 데이터 세트에서 분류를 할 때는, 반드시 Stratified K 폴드를 사용해야한다. 일반적인 분류에서도 Stratified K 폴드를 사용하며 회귀에서는 지원되지 않는다.(분포 측정이 불필요하기 때문) 📑 동작 방식 1. 원본 데이터의 레이블 분포를 먼저 고려 .. 2023. 8. 17.
728x90