본문 바로가기
이슈, 관심사/기타

[독서] 데이터 과학자 원칙

by 장찐 2023. 8. 26.

📚 독서 - 데이터 과학자 원칙 

  저자 : 권정민, 권시현, 김영민, 김진환, 박준석 저 외 4명 정

  출판사 : 골든래빗 (2023년 06월 01일)

 


📌 p94 

🏷️주니어 데분이 흔히 하는 실수와 함정 

 

- ML을 사용할 때에는 문제 정의가 중요하다. 많은 시간과 도메인 지식을 투자해서 문제를 정확하게 정의해야 한다. 때로는 ML로 해결할 필요가 없다는 결론이 나올 수도 있다. 사용자 유입이 목표라면, 추천 알고리즘 보다는 훌륭한 사용자 경험이 더 효과적일 수도 있다. 

 

-ML을 사용할 수 없을 때에는 사용하지 마세요 : 

ML은 복잡한 학습 패턴이 존재하고 충분한 데이터의 수집이 가능하며, 예측으로 발생하는 비용이 낮을 때에 사용하는 것이 적절하다. 

ex) 중요 정책을 결정할 때에는 ML이 적절하지 않음 

 

- 사용하더라도 처음부터 ML을 사용하지 마세요 : 

데이터를 활용한 예측이 처음이라면 휴리스틱으로 시작하는 것이 좋다. ML은 잠재적인 오류를 발견하기 어렵다. 추천 알고리즘 도입한다면 우선 인기도 기반으로 추천해서 베잇으라인을 얻고 ML을 추후에 도입하는 것이 좋다. 

 

- 단순하고 관찰 및 개선가능한 성과지표 설정 : 

ML의 목표는 비즈니스 목표와 일치해야 하며, 명확하고 측정이 쉬워야 한다. 또한, 여러 가지 목표를 동시에 충족하려 하기 보다 가장 중요한 목표 지표를 웃너적으로 채택해야 한다. 

 

- Selection Bias 조심하기 : 

관측된 데이터로만 모델링을 할 경우에 선택 편향을 마주할 수 있다. 

 

 

🏷️• Feature Engeneering 팁 

- 가짜 상관관계가 있는 피쳐 사용하지 말기. 데이터 상에서는 목표변수와 피쳐가 상관관계가 있어 보이지만, 실제로는 상관관계가 없을수도 있음 

- 피쳐를 선정할 때, 사람 작업자가 판단하는 기준을 파악하고 그것을 피쳐로 정량화 하는 방법 고민해보기 (기존 휴리스틱 --> 피쳐) 

- 피쳐 형태를 변형하거나 다른 것과 결합하는 것은 데이터 과학자 개인의 노하우이며, 때로는 효과 없거나 미신일 수도 있다. 

- 성능에 영향을 주지 않는 중요하지 않은 피쳐는 주기적으로 제거해야 한다. 피쳐가 많을수록 데이터 누수 가능성이 높아지고 연산 비용이 증가하며, 많은 업데이트를 필요로 한다. 

 

🏷️- Data Leakage 의심하기 : 예측 성능이 높다면 데이터 누수를 의심해봐야 한다. 데이터 누수가 발생할 수 있는 주요한 상황은 아래와 같다. 

 → 시간적인 순서가 있는 데이터를 무작위 데이터셋으로 분할한 경우 (시간축에 따라서 분할해야 함) 

→ 데이터셋 분할 이전에 정규화, 피쳐선택, 결측값 대체 등의 작업을 한 경우. 반드시 train set을 이용해서 피쳐를 선택해야 함. 

→ 분할 전 중복 데이터를 처리하지 않아서, train과 test에 동일한 데이터가 존재하는 경우 

→ 테스트 데이털르 자주 참조해서 최적 모델을 결정하는 경우 

 

 

🏷️ 모델의 예측력기 좋다고 해서 반드시 비즈니스 성과가 증대되지는 않는다. 오프라인에서 모델의 성능을 평가할 때에는 적절한 지표와 방식으로 비즈니스 목적에 맞게 수행해야 한다. 

→ 이진 분류 문제에서 위양성/위음성 trade off 고려 

→ 클래스 불균형 상황에서 적절한 평가지표 사용 (이진분류 시 클래스 불균형이 크다면, 정확도나 AUC가 아닌 F1 Score, Cohen's Kappa, MCC 등을 사용) 

→ 데이터 하위 집합별로 성능 평가 필요. 특정 그룹에서는 모델의 성능이 매우 떨어질 수 있다. 

 

 

🏷️ 다양한 기준으로 모델 평가하기 

→ 예측 값의 분포를 확인하고, 오류 분석을 통해서 예측한 샘플에 일관된 패턴이 없는지 확인. 이 과정에서는 예측 사례를 직접 눈으로 보면서 평가하는 것이 매우 유용함 

→  테스트셋에 임의의 잡음이나 변화분을 주입해서 얼마나 강건한지 확인해보기

→  모델에 인구통계학적ㅇ니 편향이 존재하지 않는지 확인해보기 (ex. 성별, 학력, 거주지 등에 의해서 결과가 편향되지 않는지). 직접 민감 정보 값을 변경해보면서 출력값 변경을 확인해봐야함.

→ 모델의 설명력 vs 예측력을 평가할 때, 직접 값을 넣어보면서 확인해봐야 함. (ex. 일반적으로 부동산 가격 예측 시, 해당 물건지와 초등학교의 거리를 좁히면 예측 가격이 상승해야함) 

 

 


📌 p129

너무나 공감가는 이미지

🏷️ 현실 데이터 프로젝트에서는 위와 같이 다양한 문제를 마주하게 된다. 이를 해결하기 위해서는 다음과 같은 능력을 키워야 한다. 

(1) 데이터 품질이 별로임 → 데이터를 만들어 가는 경험을 쌓기 위해서 데이터 수집 과정, 품질, 관리체계, 거버넌스에 대해서 공부해야 함 

(2) 가설이 이미 정해져 있음 → 동일한 데이터를 다른 관점에서도 접근 시도하기 

(3) 첨 보는 툴 → 빠르게 학습하기 (이거 말고는 답이 없음)

 

🏷️ 데이터 분석을 통해 좋은 인사이트를 만들어 내는 것은 크게 2가지 방향이 있다. 

(1) 데이터에서 나타나는 맥락을 잘 발견하는 것

(2) 데이터에서 나타나지 않는 맥락을 발견하는 것 

 

🏷️데이터 분석가 커뮤니티를 통해 정보공유 활동을 하는 것은 중요하다. 회사 조직이라는 우물에서 벗어나서 우물 밖에서 나와 공감해줄 수 있는 사람들과 교류해야 한다. 하지만 커뮤니티에서 공유되는 사례들은 대부분 '잘된 결과 중에서도 잘도니 결과'들을 최대한으로 정리한 것이다. 그런 사례가 성공하기 위한 조건이나 시행착오를 얕게 다루는 경우가 많기 때문에 유의해야 한다. 

 


📌 p174

🏷️  회사 안에서 물어볼 사람이 적으면 회사 바깥에서 자문을 구하면 된다. 나의 업무와 관련된 발표나 자료를 찾아보고, 해당 콘텐츠를 작성한 사람을 페이스북, 슬라이드쉐어, 링크드인에서 찾아서 친구 추가를 했다. 그리고 공유 자료가 도움이 되었다고 감사 인사를 하면서 말을 걸었고 관계를 쌓기 시작했다. 이러한 관계는 이후에 업무에서 중간중간 막히는 부분을 만났을 때 조언을 얻으면서 많은 도움이 되었다.

 

🏷️ 스페셜리스트 vs 제너럴리스트 

면접 시에는 스페셜리스트를 찾는 것 같지만, 실제 업무를 하게 되면 회사가 필요한 일을 하게 되기 때문에 제너럴리스트로서 역할을 수행하기도 한다 → 스페셜리스트이면서 여러 업무를 할 줄 아는 사람이 될 필요가 있음 자신이 잡부의 역할을 한다고 생각하지 말고, 여러 경험을 통해서 고유한 강점을 만든다고 생각해야 한다. 그 과정에서 하나를 깊게 팔 수 있으면 깊게 파고, 여러 가지를 경험할 수 있으면 다양하게 경험해봐야 한다. 

댓글