데이터 과학자 실무 프로세스

yuns_u·2021년 8월 29일
0

1. 비즈니스 문제

실무자들과 대화를 하며 문제를 발견한다.

2. 데이터 문제

문제와 관련된 데이터를 발견한다.

3. 데이터 문제 해결

데이터 처리, 시각화, 머신러닝 및 통계

4. 비즈니스 문제 해결

데이터 문제 해결을 통해 실무자들과 함께 해결.

해야하는 일들

예측해야하는 타겟을 명확하게 정하고 그 분포를 살펴보기

지도학습(Supervised Learning)에서는 예측할 타겟을 먼저 정한다.

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

회귀나 다중클래스 분류 문제들도 이진분류로 바꿀 수 있다.

정보의 누수(Data Leakage)

  1. 타겟 변수 외에 예측 시점에 사용할 수 없는 데이터가 포함되어 학습이 이루어질 경우.
  2. 훈련 데이터와 검증 데이터를 완전히 분리하지 못했을 경우.

위의 경우 정보의 누수가 일어나 과적합을 일으키고 실제 테스트 데이터에서 성능이 급격하게 떨어진다.

정보의 누수를 막는 'train_test_split'의 한계점

sklearn에서 train_test_split이라는 method를 제공해주긴하지만 해당 method는 random subset을 만들어주는 방법이기 때문에 현실에서 사용하기에는 한계점들이 많다.
How (and why) to create a good validation set

데이터가 Time Series인 경우, 예측하고자 하는 날의 데이터를 살펴보면 굳이 머신러닝을 사용할 필요가 없기도 하고 많은 비즈니스 맥락에서 시간열 데이터를 자주 사용하지 않는다고 한다. 또한 내가 예측하고자 하는 데이터가 내가 가지고 있는 훈련 검증 세트와 질적으로 다르다면 train_test_split가 유용하지 않을 것이다.

sklearn이 검증세트도 나누는 method가 없는 이유는 cross-validation을 할 것이라고 가정하기 때문이다. 하지만 cross-validation의 문제는 실제 문제에 적용하기 어렵다는 점에 있다. cross-validation은 데이터를 랜덤으로 뽑을 수 있는 경우에 유용하다.

훈련/ 검증/ 테스트 세트의 역할

  • 훈련 세트는 주어진 모델을 훈련 시키는 데에 사용한다.
  • 검증 세트는 모델을 선택하거나 하이퍼 파라미터를 조정하는 데 사용된다. (예를 들어, 랜덤포레스트와 신경망 중 어떤 모델이 내 문제를 해결하는 데에 좋은가, 랜덤 포레스트를 선택한다면 40개의 결정 트리와 50개의 결정 트리를 가진 모델 중 어떤 것이 적합한가?)
  • 테스트 세트는 예측을 잘 했는지 판단할 때 쓰인다. 만약 내가 충분한 개수의 모델들을 검증했다면 가장 적합한 모델은 어떤 것인지 판단할 수 있고 테스트 세트로서 정말 적합한지, 아닌지 테스트를 해볼 수 있게 된다.

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

profile
💛 공부 블로그 💛

0개의 댓글