본문 바로가기

AI_basic/ML16

[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.