본문 바로가기

데이터분석11

[ML] 비지도학습 / 군집화 / K-means K-평균은 군집화에서 일반적으로 사용되는 알고리즘입니다. K-평균은 군집 중심점이라는 특정한 임의의 지점을 선택해 해당 중심에 가장 가까운 포인트들을 선택하는 군집화 기법입니다. 위 사진처럼 임의의 점에서 가까운 점들을 군집화하고 그 군집의 중심점을 찾아 그 중심점에 가까운 점들을 다시 군집화하는 순서를 거쳐 중심점을 이동했는데 데이터의 중심점 소속 변경이 없어질 때 군집화를 종료합니다. K-평균의 장점 1. 일반적인 군집화에서 가장 많이 사용된다 2. 알고리즘이 쉽고 간결하다 K-평균의 단점 1. 군집화 정확도가 떨어진다. (PCA적용) 2. 반복횟수가 많을 경우 수행시간이 느리다. 3. 군집 개수 설정을 가이드하기 어렵다. 사이킷런 K-평균 주요 파라미터 1. n_cluster : 군집의 개수, 즉 .. 2021. 7. 30.
[ML] 데이터 전처리 - SMOTE 오버 샘플링 언더 샘플링과 오버 샘플링 언더샘플링 - 많은 레이블을 가진 데이터 세트를 적은 레이블을 가진 데이터 세트 수준으로 감소시킴 오버샘플링 - 적은 레이블을 가진 데이터 세트를 많은 레이블을 가진 데이터 세트 수준으로 증식시킴 * 오버 샘플링 방식이 예측 성능상 더 유리한 경우가 많아 주로 사용됨 SMOTE(Synthetic Minority Over-sampling Technique) SMOTE은 적은 데이터 세트에 있는 개별 데이터들의 K 최근접 이웃을 찾아서 이 데이터와 K개의 이웃들의 차이를 일정 값으로 만들어서 기존 데이터와 약간 차이가 나는 새로운 데이터들을 생성하는 방식입니다. SMOTE을 구현한 대표적인 파이썬 패키지인 imbalanced-learn은 아나콘다 프롬프트를 관리자 권한으로 실행하고.. 2021. 7. 24.
[ML] 지도학습/분류 GBM(Gradient Boosting Machine) GBM이란? GBM은 AdaBoost와 개별 약한 학습기(weak learner)가 순차적으로 오류 값에 대해 가중치를 부여한 예측 결정 기준을 모두 결합해 예측을 수행한다는 점에서 유사하나, 가중치 업데이트를 경사 하강법(Gradient Descent)를 이용하는 것이 큰 차이입니다. AdaBoost는 이전에 잘못 분류한 데이터에 가중치를 더 많이 주고, GBM은 각 관측치마다 잔차를 구하고, 이 잔차에 첫 번째 약한 학습기를 적합시킵니다. 적합된 결과에 따라 잔차의 예측값 (마지막 노드 (leaf)에 속한 잔차들의 평균)을 구하고 잔차 예측값 * 학습률을 이전 예측값과 더해 새롭게 예측값을 업데이트합니다 의 순서를 통해 가중치를 업데이트하게 됩니다. GBM 하이퍼 파라미터 트리 기반 파라미터는 결정트.. 2021. 7. 23.
[ML] 지도학습/분류 랜덤 포레스트(RandomForest) 랜덤 포레스트란? 랜덤포레스트는 배깅의 대표적인 알고리즘으로, 앙상블 알고리즘 중 비교적 빠른 수행속도를 가지고 있으며, 높은 예측 성능을 보이고 있습니다. 기반 알고리즘은 결정 트리로서, 결정 트리의 쉽고 직관적인 장점을 그대로 가지고 있습니다. 위와 같이 랜덤 포레스트는 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 중첩되게 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 됩니다. 랜덤 포레스트의 하이퍼 파라미터 1. n_estimators : 결정 트리의 개수를 지정하고, 디폴트는 10개입니다. 2. max_features : 결정 트리와 같으나 디폴트가 "None"이 아니라 "auto"="sprt"와 같습니다. 3. max.. 2021. 7. 23.
[ML] 앙상블 학습의 종류 앙상블 학습이란? 앙상블 학습이란 여러 개의 Classification을 생성하고 그 예측을 여러 방법으로 결합함으로써 보다 정확한 최종 예측을 도출하는 기법을 말합니다. 앙상블 학습의 목표는 다양한 분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것입니다. 앙상블 학습의 종류 1. 배깅(Bagging) - 각각의 분류기가 모두 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 다르게 가져가면서 학습을 수행해 보팅을 수행하는 것입니다. - 개별 분류기에 할당된 학습 데이터는 원본 학습 데이터를 샘플링해 추출하는데, 이렇게 개별 분류기에게 데이터를 샘플링해서 추출하는 방식을 부트스트래핑(Bootstrapping) 분할 방식이라고 합니다. - 교차 검증과 다르게 데이터 세트 간.. 2021. 7. 22.
[ML] 데이터 전처리 - 원-핫 인코딩(pd.get_dummies) 머신러닝을 위한 전처리의 기본사항 1. 결측값이 허용되지 않는다 2. 문자열 값을 입력 값으로 허용하지 않는다. (카테고리형, 텍스트형) 원 - 핫 인코딩이란? 원 - 핫 인코딩은 피처 값의 유형에 따라 새로운 피처를 추가해 고유 값에 해당하는 칼럼에만 1을 표시하고 나머지 칼럼에는 0을 표시하는 방식입니다. 피처값이 카테고리형일 경우, 인코딩을 통해 숫자형으로 바꾸어 줄 수 있습니다. 타이타닉 예제 데이터를 통해 알아보겠습니다. 예시를 보기 위해 카테고리 값을 골라내고, 전체 데이터프레임에서 카테고리형과 숫자형 피처가 섞여있을 때 pd.get_dummies()를 적용하면 어떻게 작용하는지 알아보기위해 숫자형 피처도 하나 선정 후 적용시켜 보겠습니다. 숫자형 피처가 섞여있을 경우에도 카테고리형에만 적용되.. 2021. 7. 21.
[ML] GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 같이 GridSearchCV란 교차검증을 기반으로 하이퍼 파라미터의 최적 값을 찾게 해주는 모듈입니다. 이 모듈은 cross_validation을 위한 학습/테스트 세트로 자동으로 분할한 뒤에 하이퍼 파라미터 그리드에 기술된 모든 파라미터를 순차적으로 적용해 최적의 파라미터를 찾을 수 있게 해줍니다. 붗꽃 품종 예측 예제를 통해 살펴보겠습니다. 위 params에 정리된 하이퍼 파라미터들의 경우의 수에 따라 6가지 조합이 나오고, 각 조합마다의 교차 검증(cv = 3)을 하여 평균 정확도(설정된 score)를 계산합니다. 위의 경우 4번 5번 행의 조합이 공동 1위이고, 이 때 평균 검증 정확도는 0.975로 계산되었습니다. GridSearchCV 주요 파라미터 1. estimator : classifier, .. 2021. 7. 21.
[ML] 분류모델의 성능 평가 지표 Part3. F1_score, ROC_curve and AUC 1. F1 score F1 score란 정밀도와 재현율을 결합에 어느 한 쪽으로 치우치지 않는 수치를 나타낼 때 상대적으로 높은 값을 가지게 되는 지표입니다. 위의 F1_score공식을 보면 알 수 있듯이 F1_score는 정밀도와 재현도의 가중 평균입니다. F1 score는 sklearn.metrics의 f1_score 모듈을 통해 반환할 수 있습니다. 다음은 임곗값 조절에 따른 f1_score의 변화입니다. 정밀도와 재현율이 극단적으로 차이날 수록 f1_score의 값이 감소함을 알 수 있습니다. 2. ROC곡선과 AUC ROC곡선은 FPR이 변할 때 TPR이 어떻게 변하는지 나타내는 곡선이며, 머신러닝 이진 분류 모델의 예측 선응을 판단하는 중요한 평가 지표입니다. TPR은 재현율이고 민감도라고도 .. 2021. 7. 7.
[ML] 분류모델의 성능 평가 지표 Part.2 정밀도/재현율 트레이드오프(Trade-off) 정밀도/재현율 트레이드오프(Trade-off), F1_score, ROC_curve and AUC 지금까지 오차행렬의 값을 이용해 정확도, 재현율, 정밀도 등을 살펴보았는데, 재현율 또는 정밀도가 특별히 강조돼야하는 경우가 있다는 것을 예시를 통해 알 수 있었습니다. 이런 경우 분류의 결정 임곗값(Threshold)를 조정해 두 지표를 조정할 수 있는데, 둘은 상호보완적인 관계이기 때문에 어느 한 쪽을 강제로 높이면 다른 하나의 수치는 떨어지기 쉽습니다. 이를 정밀도/재현율 Trade-off라고 부릅니다. 1. 정밀도/재현율 트레이드오프(Trade-off) Scikit-learn의 분류 알고리즘은 예측 데이터가 어느 레이블에 속하는지 계산하기 위해 개별 레이블별로 결정 확률을 구합니다. 일반적으로 이진 .. 2021. 7. 7.