본문 바로가기

Machine Learning71

[앙상블] 랜덤 포레스트 랜덤 포레스트란? 배깅(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.
[교차 검증] K-폴드 교차 검증 교차 검증 교차검증은 여러 세트로 구성된 학습 데이터 세트와 검증 데이터 세트에서 학습과 평가를 수행하는 것이다. 각 세트에서 수행한 평가 결과에 따라 하이퍼 파라미터 튜닝 등의 모델 최적화를 더욱 손쉽게 할 수 있다. 대부분의 ML 모델의 성능 평가는 (1)교차 검증 기반의 1차 평가 후, (2)테스트 데이터 세트에 적용해 평가하는 프로세스이다. 교차 검증을 통해 과적합 문제도 개선할 수 있다. K-폴드 교차 검증 가장 보편적으로 사용되는 교차 검증 기법 K개의 데이터 폴드 세트를 만들어서, K번만큼 각 폴드 세트에 학습과 검증 평가를 반복적으로 수행하는 방법 위 예시 이미지에서는 5번의 교차 검증 결과를 평균한 결과로 예측을 수행하게 된다. 📑 예제 1. 5개의 폴드 세트로 iris 데이터 분리 kf.. 2023. 8. 17.
728x90