Data Science/2. 기계학습

[n231]Choose Your ML Problem

착한곰돌e 2021. 6. 22. 09:33

■ Key words

  ㆍ타겟 선택과 분포 확인

  ㆍTest - Train data / Target - Feature leakage

  ㆍ상황별 적합한 검증지표(Metrics)

 

■ 주요내용

  ㆍData Scientist 실무 과정

     - 비즈니스 문제 정의 : 실무자들과 대화를 통해 문제점 도출
     - 데이터 수집 : 문제와 관련된 데이터 수집
     - 데이터 문제 해결 : 데이터 처리 및 시각화 / 머신러닝 및 통계 활용
     - 비즈니스 문제 해결 : 데이터 문제 해결을 통해 실무자들과 함께 해결

  ㆍ타겟 선정 : 지도학습(Supervised Learning)에는 문제를 먼저 정의하고, 타겟을 선정해야 한다.

     - 이산형, 순서형, 범주형 타겟 특성도 회귀문제 또는 다중클래스 분류 문제로 볼 수 있음
     - 회귀, 다중클래스분류 문제들도 이진분류 문제로 바꿀 수 있음

  ㆍ정보의 누수(leakage) 확인 : train/validation/test의 정확도가 100%로 나오면 우선 의심해봐야 한다.

     - 타겟변수 외에 예측 시점에 사용할 수 없는 데이터가 포함되어 학습이 이루어 질 경우

       (타겟을 feature engineering 하여 계산된 feature로 학습하는 경우)
     - 훈련데이터와 검증데이터를 완전히 분리하지 못했을 경우

     ⇒ 정보의 누수로 인해 과적합이 발생하여 실제 모델의 성능이 급격하게 떨어질 수 있음

  ㆍ문제에 적합한 평가지표 사용

     - 모델의 목적에 따라 평가하는 지표가 달라져야 함(e. i. 정확도, 정밀도, 재현율, ROC curve, AUC 등)

     - 분류와 회귀 모델에 적용해야 하는 평가지표는 완전히 다름

  ㆍFeature Engineering

     - 불균형 클래스 : feature의 클래스 비율의 차이가 클 경우 scikit-learn의 class_weight 파라미터 적용

        · 데이터가 적은 범주 데이터의 손실을 계산할 때 가중치를 더 곱하여 데이터의 균형을 맞춤
        · 적은 범주 데이터를 추가샘플링(oversampling)하거나 반대로 많은 범주 데이터를 적게 샘플링(undersampling)

     - 타겟의 분포 확인 : 정규분포 / 왜도와 첨도 정도

        · 선형회귀모델은 feature-target 간 선형관계 가정 / feature와 target이 정규분포일 때 좋은 성능을 보임

        ⇒ right-skewed일 때 로그변환(Log-Transform) 적용; scale을 축소하여 정규분포화함.

 

■ Session note

  ㆍDS의 시작은 문제의 정의이다.
  ㆍ전처리와 feature engineering은 한 번에 끝나지 않는다. => goes on and on / back and forth
     - 절차는 있으나, 그 순서가 구분된 것은 아니다. 앞뒤로 왔다갔다 보완하며 다듬어 나가는 것이다.

     e. g. 노인 주거시설 문제 : 데이터 하나에 의존하지 않아도 됨. 여러 출처의 데이터를 merge하여 활용

  ㆍleakage : 타겟을 예측할 수 있는 data가 들어가버린 경우 / 훈련과 검증 데이터가 분리 안 된 경우
     - CV는 leakage가 아니다; 각 훈련/검증셋이 분리되어 있음
  ㆍnp.logical_or : 실행 해보기
  ㆍclass weight : 불균형 sample은 예측력이 떨어지므로, 일반적으로 parameter 조정을 통해 기계적 조정을 한다
  ㆍvalue_counts : 해당 칼럼에 있는 답변의 종류가 나옴 / normalize하면 비율로 나옴
  ㆍ회귀 문제는 정규분포화 / 분류 문제는 정규분포화 불필요(0/1로 나뉘어짐; 비율로 나눠짐)
  ㆍcardinality가 높은 항목이 있을 경우 충분한 data가 있어야 모델이 유효할 것이다
  ㆍ프로젝트나 과제도 내 포트폴리오로 사용할 수 있도록 방향성을 두고 하자
  ? 데이터 분석을 시작할 때
     1. 프로젝트 데이터를 무엇을 선택해야 할 지 모르겠다.
     2. 어떻게 뜯어봐야 할 지 모르겠다
     3. 문제 정의를 어떻게 해야할 지 모르겠다
     4. 데이터 수집을 어떻게 해야할 지 모르겠다
       → 생소한 API 대신 익숙한 csv, json 파일 가져와서 하기

■ 주요함수

  ㆍ

 

■ Reference

  ㆍ네이버 데이터랩 : https://datalab.naver.com/

 

네이버 데이터랩

네이버의 검색 트렌드 및 급상승검색어 이력, 쇼핑 카테고리별 검색 트렌드 제공

datalab.naver.com

  ㆍ정부 마이크로데이터 통합서비스 : https://mdis.kostat.go.kr/index.do

 

국가통계 마이크로데이터 서비스 시스템

마이크로데이터는 일상의 의사결정에서 부터, 국가 주요정책결정에 이르기까지 다양한 분야에서 활용할 수 있습니다.

mdis.kostat.go.kr

  ㆍ중앙대 통계사이트 종합페이지 : https://researchguide.cau.ac.kr/c.php?g=549836&p=3774670 

 

학술·연구정보가이드: 응용통계학: 데이터베이스/통계사이트

학술·연구정보가이드: 응용통계학: 데이터베이스/통계사이트

researchguide.cau.ac.kr

  ㆍ한국은행 경제통계시스템 : https://ecos.bok.or.kr/

 

한국은행경제통계시스템

 

ecos.bok.or.kr

  ㆍ크롤링 : https://namu.wiki/w/%ED%81%AC%EB%A1%A4%EB%A7%81

  ㆍ데이터 분석 시 로그를 취하는 이유 : https://leebaro.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%B6%84%EC%84%9D-%EC%8B%9C-%EC%8B%9D%EC%97%90-%EB%A1%9C%EA%B7%B8%EB%A5%BC-%EC%B7%A8%ED%95%98%EB%8A%94-%EC%9D%B4%EC%9C%A0

 

데이터 분석 시 식에 로그를 취하는 이유

데이터 분석에서 log의 중요성에 대해서 이야기 해보겠다. 데이터 분석을 하기 위해 log를 취하는 이유는 한마디로 정규성을 높이고 분석(회귀분석 등)에서 정확한 값을 얻기 위함이다. 데이터 간

leebaro.tistory.com

  ㆍHow (and why) to create a good validation set. : https://www.fast.ai/2017/11/13/validation-sets/

 

How (and why) to create a good validation set · fast.ai

How (and why) to create a good validation set Written: 13 Nov 2017 by Rachel Thomas An all-too-common scenario: a seemingly impressive machine learning model is a complete failure when implemented in production. The fallout includes leaders who are now ske

www.fast.ai

  ㆍ Scikit-Learn : https://scikit-learn.org/stable/modules/model_evaluation.html#common-cases-predefined-values

 

3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 0.24.2 documentation

3.3. Metrics and scoring: quantifying the quality of predictions There are 3 different APIs for evaluating the quality of a model’s predictions: Finally, Dummy estimators are useful to get a baseline value of those metrics for random predictions. 3.3.1.

scikit-learn.org

  ㆍ Classification Metrics : https://scikit-learn.org/stable/modules/model_evaluation.html#classification-metrics

 

3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 0.24.2 documentation

3.3. Metrics and scoring: quantifying the quality of predictions There are 3 different APIs for evaluating the quality of a model’s predictions: Finally, Dummy estimators are useful to get a baseline value of those metrics for random predictions. 3.3.1.

scikit-learn.org

  ㆍRegression Metrics : https://scikit-learn.org/stable/modules/model_evaluation.html#regression-metrics

 

3.3. Metrics and scoring: quantifying the quality of predictions — scikit-learn 0.24.2 documentation

3.3. Metrics and scoring: quantifying the quality of predictions There are 3 different APIs for evaluating the quality of a model’s predictions: Finally, Dummy estimators are useful to get a baseline value of those metrics for random predictions. 3.3.1.

scikit-learn.org

  ㆍ Handling imbalanced dataset : https://towardsdatascience.com/handling-imbalanced-datasets-in-deep-learning-f48407a0e758

 

Handling Imbalanced Datasets in Deep Learning

Not all data is perfect. In fact, you’ll be extremely lucky if you ever get a perfectly balanced real-world dataset. Most of the time…

towardsdatascience.com