AI 부트캠프 7주 : Applied Predictive Modeling
코드스테이츠와 함께하는 ‘AI 부트캠프’ 7주차
주간회고
더 공부가 필요한 부분
강의에서 배운 모델과 해석방법, 시각화 밖에도 어떠한 방법들이 있는지 알아보겠다.
5F 회고
-
사실(Fact)
특성으로 모델을 해석하는 방법, 특히 모델이 타겟을 어떻게 예측하는지를 시각화하고 해석하는 방법에 대하여 학습하였다. -
느낌(Feeling)
그림그리기를 예로 들면, 모델의 성능을 높이는 과정이 얼마나 정교하게 스케치를 하는가였다면, 모델을 해석하는 과정은 그림에 색깔을 입히는 과정으로 느껴졌다. 모델을 어떻게 해석하는지에 따라서 모델의 색깔이 바뀌는 느낌?! -
교훈(Finding)
데이터분석의 궁극적인 목적이 인사이트를 얻는 것이라고 한다면 모델을 해석하는 것이야말로 데이터분석의 핵심이라고 할 수 있는 것 같다. - 향후 행동(Future action)
모델의 성능을 높이는 것 뿐만 아니라 모델이 무엇을 말하고자 하는지, 모델을 해석하는 과정도 중요하게 다루어야겠다. - 피드백(Feedback)
N231 : Interpretable ML - I
학습 목표🚩
- 🌱 Level 1 : Lecture Note 에 있는 주요 개념을 설명할 수 있으며 예제 코드를 이해하고 응용하여 과제를 수행할 수 있다.
- Feature Importance
- MDI 기반 Feature Importance에 대해 이해하고, 장점 및 단점을 설명할 수 있다.
- Permutation Importance
- Permutation Importance를 통해 Drop-Column Importance의 문제점을 어떻게 해결할 수 있는지 이해한다.
- Permutaiton Importance의 장점 및 단점을 설명할 수 있다.
- eli5 라이브러리를 사용하여 Permutation Importance를 계산하고 시각화할 수 있다.
- Permutation Importance를 통해 중요한 특성들만 선택하여 모델을 학습할 수 있다.
- Feature Importance
- 🔝 Level 2 : Lecture Note 에 있는 개념 중 자신이 모르는 것을 구분해 낼 수 있으며 메타인지를 기반으로 자기 학습 계획을 세울 수 있다.
- 오늘 배운 내용 중 아는 개념과 모르는 개념을 구분해서 readme.md 에 기록할 수 있다. → N231 노트 마무리 학습 후 아래 질문에 답해보세요의 질문에 답을 해보고 추가 학습이 필요한 질문을 기록할 수 있다.
- 이후에 모르는 개념을 학습하기 위해 추가 학습 계획을 스스로 세우고 실행할 수 있다.
- 🔥 Level 3 : Lecture Note에 있는 주요 개념과 코드를 연결하여 설명할 수 있으며, 이를 바탕으로 코드를 구현하고 도전 과제를 수행할 수 있다.
- 새로운 데이터에 대하여 타겟과 문제에 적합한 모델을 직접 선택하여 학습할 수 있고, 이 과정에서 Permutation Importance를 통해 중요한 특성만 학습하여 모델 성능을 향상시킬 수 있다.
키워드🔑
- 특성중요도
- Mean decrease impurity
- Drop-Column Importance
- Permutation Importance
- eli5
새로 배운 개념📑
- Mean decrease impurity
- 트리 기반 모델의 각 step에서 특정 피쳐에 의해 노드가 분할될 때 감소되는 불순도의 양
- feature_importances_ 메써드를 사용할 때 계산되는 특성중요도(Feature Importance)가 바로 이것임
- 빠르고 간편하게 계산이 가능하다는 장점이 있음
- 단점, 높은 카디널리티에 높은 특성중요도가 부여됨
- Drop-Column Importance
- 특정한 특성을 제거하고 모델을 학습 한 후, 모든 특성을 사용한 모델의 성능과 비교하여 하락한 성능의 양
- 각 특성을 제거 할 때마다 재학습을 해야하기 때문에 속도가 느림
- Permutation Importance
- 전체 특성으로 모델을 학습 한 뒤, 성능을 평가하는 단계에서 각 특성에 노이즈를 주어 해당 특성의 중요도를 인위적으로 낮추어 성능이 얼마나 감소하는지 계산
- 노이즈를 주는 가장 간단한 방법은 특성값을 섞는 것(Shuffle, Permutation)
- 장점, 재학습이 필요없음
- 장점, 모든 모델 사용 가능
- 장점, high cardinality 특성에 덜 민감함
- 단점, 강한 상관관계가 있는 특성이 있는 경우 잘못된 계산을 할 수 있음
- black box model : 해석불가능한 ML 모델
N232 : Interpretable ML - II
학습 목표🚩
- 🌱 Level 1 : Lecture Note 에 있는 주요 개념을 설명할 수 있으며 예제 코드를 이해하고 응용하여 과제를 수행할 수 있다.
- ICE Plot / PDP
- 특성 중요도와 PDP 간의 차이를 이해하고 목적에 맞게 사용할 수 있다.
- ICE Plot의 개념을 이해하고 구현 및 해석할 수 있다.
- PDP의 개념을 이해하고 구현할 수 있으며 PDP의 특징에 유의하여 해석할 수 있다.
- 모델 해석 범위에 따른 모델 해석 방법
- Model-Specific과 Model-Agnostic의 차이를 이해하고 예시를 들어 설명할 수 있다.
- Global과 Local의 차이를 이해하고 예시를 들어 설명할 수 있다.
- ICE Plot / PDP
- 🔝 Level 2 : Lecture Note 에 있는 개념 중 자신이 모르는 것을 구분해 낼 수 있으며 메타인지를 기반으로 자기 학습 계획을 세울 수 있다.
- 오늘 배운 내용 중 아는 개념과 모르는 개념을 구분해서 readme.md 에 기록할 수 있다. → N232 노트 마무리 학습 후 아래 질문에 답해보세요의 질문에 답을 해보고 추가 학습이 필요한 질문을 기록할 수 있다.
- 이후에 모르는 개념을 학습하기 위해 추가 학습 계획을 스스로 세우고 실행할 수 있다.
- 🔥 Level 3 : Lecture Note에 있는 주요 개념과 코드를 연결하여 설명할 수 있으며, 이를 바탕으로 코드를 구현하고 도전 과제를 수행할 수 있다.
- 새로운 데이터에 대하여 모델링을 수행하고 PDP를 사용해서 모델을 해석하여 인사이트를 도출할 수 있다.
키워드🔑
- 개별 예측
- 평균 예측
- 예측 시각화
새로 배운 개념📑
- Individual Conditional Expectation(ICE) Plot
- 특정 관측치의 특정 특성 값을 변화시킬 때 모델의 예측값이 어떻게 변하는지 시각화
- 이상치 분석
- Partial Dependence Plot (PDP)
- 모든 관측치의 특정 특성 값을 변화시킬 때 모델의 예측값이 어떻게 변하는지 시각화
- 특정 특성에 대한 전체적인 데이터의 추세를 파악
- 머신러닝 모델 해석의 분류
- Model-Specific : 해당 모델에 종속
- Model-Agnostic : 모든 모델에 범용적으로 적용 가능
- Local : 특정한 관측치 중심
- Global : 전체 관측치(평균)
N233 : ML Problem Framing
학습 목표🚩
- 🌱 Level 1 : Lecture Note 에 있는 주요 개념을 설명할 수 있으며 예제 코드를 이해하고 응용하여 과제를 수행할 수 있다.
- 머신러닝 문제의 특성을 이해하고 내가 풀고자 하는 문제에 ML을 적용하는 것이 적합할지 판단할 수 있다.
- 풀고자 하는 문제와 목적에 맞게 머신러닝 문제(회귀 or 분류)를 정의할 수 있다.
- 머신러닝 문제의 타겟을 적절히 선택/조작할 수 있다.
- 정보의 누수(Data Leakage)가 발생하는 경우를 이해하고 이를 예방하기 위한 전처리 과정을 수행할 수 있다.
- 상황에 맞는 검증지표를 사용할 수 있다.
- 🔝 Level 2 : Lecture Note 에 있는 개념 중 자신이 모르는 것을 구분해 낼 수 있으며 메타인지를 기반으로 자기 학습 계획을 세울 수 있다.
- 오늘 배운 내용 중 아는 개념과 모르는 개념을 구분해서 readme.md 에 기록할 수 있다. → N233 노트 마무리 학습 후 아래 질문에 답해보세요의 질문에 답을 해보고 추가 학습이 필요한 질문을 기록할 수 있다.
- 이후에 모르는 개념을 학습하기 위해 추가 학습 계획을 스스로 세우고 실행할 수 있다.
- 🔥 Level 3 : Lecture Note에 있는 주요 개념과 코드를 연결하여 설명할 수 있으며, 이를 바탕으로 프로젝트를 기획할 수 있다.
키워드🔑
- 머신러닝의 문제
- 정보 누수(Data Leakage)
- 평가지표
새로 배운 개념📑
- 정보 누수(Data Leakage)
- 별다른 작업을 하지 않았음에도 100%에 가까운 일반화 성능을 얻은 경우 정보 누수(Data Leakage)를 의심
- 학습 데이터가 예측 시 못 쓰는 피쳐를 반영하는 경우(Column axis)
- 학습시 타겟정보를 담고있는 특성으로 학습하는 경우
- 학습 과정에서 평가 데이터의 정보가 활용되는 경우(Row axis)
- 학습 데이터와 검증, 평가데이터를 완전하게 분리되지 않은 경우
N234 : Special Classification Problems
학습 목표🚩
- 🌱 Level 1 : Lecture Note 에 있는 주요 개념을 설명할 수 있으며 예제 코드를 이해하고 응용하여 과제를 수행할 수 있다.
- Imbalanced Target
- 분류 문제의 타겟이 불균형할 때 적절한 평가지표를 사용해서 모델의 성능을 평가할 수 있다.
- Target Balancing Methods
- class_weight, undersampling, oversampling 기법을 사용해서 타겟 분포의 균형을 맞춰줄 수 있다.
- Train 데이터에만 under / oversamping을 적용해야함을 이해하고 구현할 수 있다.
- Imbalanced Target
- 🔝 Level 2 : Lecture Note 에 있는 개념 중 자신이 모르는 것을 구분해 낼 수 있으며 메타인지를 기반으로 자기 학습 계획을 세울 수 있다.
- 오늘 배운 내용 중 아는 개념과 모르는 개념을 구분해서 readme.md 에 기록할 수 있다. → N234 노트 마무리 학습 후 아래 질문에 답해보세요의 질문에 답을 해보고 추가 학습이 필요한 질문을 기록할 수 있다.
- 이후에 모르는 개념을 학습하기 위해 추가 학습 계획을 스스로 세우고 실행할 수 있다.
- 🔥 Level 3 : Lecture Note에 있는 주요 개념과 코드를 연결하여 설명할 수 있으며, 프로젝트에 적용할 수 있다.
- 프로젝트에 사용할 데이터의 불균형 문제를 진단하고 균형을 맞춰주는 기법을 적용할 수 있다.
- 🚀 Level 4 : Reference 내용을 설명할 수 있고 심화 내용을 이해하기 위해 추가 학습을 진행할 수 있다.
- 지금까지 배운 선형모델과 트리 기반 모델로 다중 클래스 분류 (Multi-class Classification) 문제를 해결하기 위한 모델링을 수행할 수 있다.
키워드🔑
- 타겟불균형, Undersampling, Oversampling, imblearn
새로 배운 개념📑
- Imbalanced Target Distribution
- 분류문제에서 타겟이 불균형할 경우
- Class Weight 사용
- xgboost.scale_pos_weight 파라미터 : 타겟0 / 타겟1
- sklearn.class_weight = ‘balanced’
- Undersampling 사용
- imblearn.RandomUnderSampler()
- Oversampling 사용
- imblearn.SMOTE()
- Oversampling + Undersapmling 사용
- imblearn.SMOTEENN()
- imblearn.SMOTETomek()
- 앙상블 기법 사용
- imblearn.BalancedBaggingClassifier()
- 평가지표는 accuracy, F1, AUC 등을 골고루 보아야 함
- confusion matrix 확인 추천
댓글남기기