본문 바로가기

ALL100

[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] 지도학습/분류 결정트리 Decision Tree 1. 결정 트리란(Decision Tree)? 결정 트리란 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내 Tree기반의 "분류 규칙"을 만들고, 이 규칙을 통해 최대한 균일도가 높은(과적합 고려) 결정 클래스를 만드는 분류기법입니다. 2. 결정 트리의 구조 (1) 규칙 노드(Decision Node) : 규칙 조건을 표시한 노드입니다. (2) 리프 노드(Leaf Node) : 결정된 클래스 값을 표시한 노드입니다. 3. 균일도란? 균일도란 한 데이터 세트 내의 데이터들이 같은 성향을 나타내는 정도입니다. 예를 들어 위와 같은 데이터 세트가 있다면, C가 제일 균일도가 높은 데이터 세트일 것입니다. 트리를 분할할 때 최대한 균일한 데이터 세트를 구성할 수 있도록 분할하는 것이 필요합니다. 4. 결정 트.. 2021. 7. 13.
[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.
[ML] 분류모델의 성능 평가 지표 Part.1 오차행렬과 정확도,정밀도,재현율 머신러닝의 프로세스는 데이터 가공/변환 -> 모델 학습/예측 -> 평가(Evaluation)로 구성됩니다. 분류모델에서의 특정 성능 평가 지표를 특정 모델에 중요하다고 할 순 있으나, 한 지표만을 보고 평가했다가는 잘못된 결과에 빠질 수 있습니다. 따라서 여러가지 지표들의 특성을 이해해야합니다. 분류는 결정 클래스 값 종류의 유형에 따라 이진분류와 여러 개의 결정 클래스 값을 가지는 멀티 분류 나뉠 수 있습니다. 본 글에서 볼 성능 지표는 모두 적용되는 지표이지만, 이진 분류에서 더욱 중요하게 강조되는 지표입니다. 지표에 대해 하나하나 정리한 후, 지표를 불러오는 코드를 마지막 순서로 작성하겠습니다! 1. 오차행렬(confusion matrix) 오차행렬이란? - 학습된 분류 모델이 예측을 수행하면서 얼.. 2021. 7. 6.
[ML] 사이킷런(Scikit-learn)으로 머신러닝 맛보기(붓꽃 품종 예측) 사이킷런이란? - 파이썬 머신러닝 라이브러리 중 가장 많이 사용되는 라이브러리로, 많은 데이터 분석가가 의존하는 대표적인 파이썬 ML 라이브러리다. 사이킷런의 특징 - 쉽고 파이썬스러운 API를 제공한다. - 머신러닝을 위한 매우 다양한 알고리즘과 개발을 위한 편리한 프레임워크와 API를 제공한다. - 오랜 기간 실전 환경에서 검증됐으며, 매우 많은 환경에서 사용되는 성숙한 라이브러리이다. 붗꽃 데이터 세트로 분류 예측하기 프로세스 1. 데이터 세트 분리 : 데이터를 학습 데이터와 테스트 데이터로 분리한다 2. 모델 학습 : 학습 데이터를 기반으로 ML 알고리즘을 적용해 모델을 학습시킨다. 3. 예측 수행 : 학습된 ML모뎅릉 이용해 테스트 데이터의 분류를 예측한다. 4. 평가 : 이렇게 예측된 결괏값과.. 2021. 7. 6.