#1. CRISP데이터 마이닝 프로세스, 사용 시나리오, 누설
*초심자가 독학한 것을 기록한 것입니다. 오류가 있을 수 있습니다.
1. CRISP 데이터 마이닝 프로세스란?
데이터 마이닝을 위한 프로세스로는 CRISP가 있다. 문제의 구조를 파악해 일관성, 반복 가능성, 객관성을 유지할 수 있게 도와준다. (55)
반복되는 프로세스는 예외가 아니라 일반적인 과정이다. 맨 처음 해결하지 못했다고 해서 실패한 것이 아니다. 이 프로세스는 데이터를 탐구하는 성격이 지배적이다. 실패를 했더라도 이는 데이터를 더 잘 이해하게 되는 계기가 되며, 이후의 시도에는 더 많은 정보를 이용해서 연구를 수행할 수 있게 된다. 프로세스는 크게 비즈니스 이해-데이터이해-데이터 준비-모델링평가-배치 로 구성되어 있다.
[1] 비즈니스 이해
사전에 명확히 정의된 데이터 마이닝 문제로 시작하는 비즈니스 프로젝트는 거의 없다. 문제를 파악하고 재정의하는 과정을 거쳐 해결책을 도출한다. 이는 반복되는 과정 속에서 반복되는 과정이다. (옆의 그림과 같이 비즈니스 이해와 데이터 이해 과정이 반복된다) 이 과정에서는 분석가의 창의성과 전문지식이 중요하다. 데이터 분석팀에는 다양한 배경지식과 전문지식을 가진 사람들로 구성되어야 하는데, 비즈니스를 창의적이고 효과적으로 정의하는데 도움이 되기 때문이다. 데이터 분석가는 비즈니스 문제를 다양한 도구를 사용해 더 작은 문제들로 분할해서 정의하기도 한다.
이 단계에서 데이터 분석팀은 모델의 사용 시나리오에 대해 신중하게 생각해야 한다. "우리가 하려는 일이 정확히 무엇인가"와 같이 시나리오에 대해 토의하는 시간을 가져야 한다. 시나리오에 대해 고민하다보면 기업의 성격, 보유 데이터 자산 등의 여러 조건에 따라 실제 비즈니스가 필요로 하는 목적에 맞게 사용 시나리오를 수정하게 된다. 이때 비즈니스 문제를 구조화하면 비즈니스 문제를 분석 공학의 관점으로 체계적으로 처리할 수 있다.
[2] 데이터 이해
문제에 정확히 부합하는 데이터가 존재하는 경우는 거의 없다. 기업이 보유하고 있는 이력 데이터는 당장 해결해야 하는 비즈니스 문제와 연관 없이, 즉 목적 없이 수집된 데이터일 가능성이 높다. 데이터의 성격에 따라 상응하는 비용도 다르다. 무료로 얻을 수 있는 정보도 있고 상당한 투자를 통해 얻어야 하는 데이터도 있다. 데이터를 얻기 위한 별도의 프로젝트를 진행해야 할 수도 있다. 따라서 데이터 과학자는 데이터마다 가지고 있는 장단점과 비용을 비교해서 투자 여부를 결정해야 한다. 데이터에 대한 이해도가 높아짐에 따라 해결책은 점차 개선되며, 점차 여러 업무로 세분화되기도 한다. 같은 시나리오인 것 같아 보여도 자세하게 살펴보면 상황과 조건이 다르다. 따라서 데이터를 이해하기 위해서는 비즈니스 문제를 제대로 파악한 후 사용 가능한 데이터 구조를 찾아내고 데이터 마이닝 작업을 수행해야 한다.
[3] 데이터 준비
데이터를 사용하기 위해서는 데이터를 집어넣을 도구가 요구하는 조건을 만족해야 한다. 이를 위해 데이터를 테이블 형태로 바꾸고 널값을 유추해서 채우는 등 데이터를 변형시켜야 한다. 데이터 과학자는 변수를 정의하기 위해 많은 시간을 투자하게 된다. 어떤 변수를 선택하느냐에 따라 방향성이 달라지고 품질도가 결정되기 때문이다.
데이터 준비 과정에서는 누설Leak를 주의해야 한다. 누설은 이력 데이터에서 수집한 변수를 통해 타겟 변수에 대한 정보를 알 수 있는 경우를 의미하는데, 이력 데이터에서는 변숫값을 알 수 있지만 모델을 적용해 의사 결정해야 할 때는 알 수 없는 상황을 말한다.
[4] 모델링
여러 모델링 기법에 대해서는 다른 글들을 통해 구체적으로 다룰 것이다.
[5] 평가
평가 단계에서 데이터 과학자는 모델의 신뢰도를 측정하고 검증한다. 데이터 세트를 평가하다보면 패턴 속의 오류를 발견할 수 있다. 따라서 평가 단계에서 데이터 과학자는 모델과 데이터의 패턴이 진정한 규칙성을 가지고 있는지, 특정 데이터 세트에서만 볼 수 있는 성질이 아닌지(과적합화 된 것이 아닌지) 확인한다. 실전에 모델을 배치하기 이전에 실험실에서 모델을 확인하고 평가하는 것이 좋다. 그리고 모델을 평가하는 것도 중요하지만, 모델이 비즈니스 목적에 부합하는지 자체도 검증해야 한다. 데이터 과학은 비즈니스 의사 결정을 돕기 위한 것이므로 비즈니스 문제를 실질적으로 해결할 수 있어야 한다. 어떤 모델은 실험실에서는 검증이 완료되었더라도 실전에서는 사용 불가능한 상태일 수도 있다.
데이터 마이닝 결과는 양적인 방법과 질적인 방법으로 평가한다. 모델의 배치 여부는 비즈니스 관계자들이 결정하는데, 이를 위해 데이터 과학자는 프로젝트 이해관계자 모두가 이해할 수 있는 모델을 만들어야 한다. 복잡한 수학 공식으로 모델을 설명하면 관계자들은 모델의 정당성과 실효성을 제대로 판단할 수 없을 것이다.
평과 과정은 모델 개발 과정의 일부로 편입될 수 있다. 모델을 개발하고 실험실 테스트 과정을 거쳐 검증을 완료했다면, 운용 시스템이 임의로 추출한 객체를 대상으로 모델을 적용해볼 수 있을 것이다. 임의 추출 실험에 대한 내용은 론 코하비가 공저한 논문을 참조하자. (아래 별도로 서술해놓았다.) 임의 추출 실험을 통해 데이터 과학팀은 외부 환경이 바뀔 때 모델의 성능이 저하되는 지 여부를 확인할 수 있다.
[5.1] Controlled Experiments on the Web
공부 하는 김에..영어 논문 읽는 것도 연습할 겸..책에서 언급된 논문들을 찾아보았다.
(1) https://ai.stanford.edu/~ronnyk/2007GuideControlledExperiments.pdf 2007년 자료
(2) https://ai.stanford.edu/~ronnyk/2009controlledExperimentsOnTheWebSurvey.pdf 2009년 자료
(3) https://notes.stephenholiday.com/Five-Puzzling-Outcomes.pdf 2012년 자료
(1) Practical Guide to Controlled Experiments on the Web: Listen to Your Customer not to the HiPPO
프로젝트 최고 후원자의 요구에 따라 움직이는 것이 아니라 고객의 행동양식, 요구사항을 반영해 제품을 개발해야지 상품의 ROI가 개선된다고 강조. 신속한 평가를 거쳐 고객의 요구를 파악하고 이를 상품에 즉각 반영하기 위해 controlled experiments를 수행해야 하며, 여기에는 임의 추출 실험, AB테스트, 실험군/대조군 실험,prarlle flight(?검색결과가 없음) 등이 속해있다. 보통 '기존'의 그룹과 '새로운 요소가 추가된' 그룹으로 분류해 실험한다. 매트릭스Metrics를 수집한 후 통계적으로 유의미한 차이가 있는지 확인한다.
- Controlled ecperiments have hreat ROI and that building the appropriae infrastructure can accerlerate innovation.
- Controlled experiments provide a methodology to reliably evaluate ideas. (...) this experimental design methodology tests for casual relationships.
(1) 읽고 기초 통계 지식의 중요성을 뼈져리게 느끼는 중..경영통계응용 수업때 딴짓하지 말걸....공부..해야겠지..?그래..
[6] 배치
일반적으로 모델을 실제 시스템에 배치하려면 기존 운용 시스템과의 호환을 위해 모델을 다시 코딩해야 한다. 그러나 이는 비용이 많이 들어가므로 데이터 과학팀은 모델의 프로토타입을 만들고 평가 후 개발 단계로 넘긴다. 배치 성공 여부와 상관없이 프로세스는 비즈니스 이해 관계로 돌아가곤 한다. 비즈니스 문제에 대한 이해도가 깊어졌기 때문에 더 나은 해결책을 고안해낼 수 있기 때문이다. 한 차례 프로세스를 거치면 성능 향상에 대한 새로운 아이디어를 떠올릴 수 있다. 반대로 배치가 실패했더라도 처음부터 다시 시작되는 것은 아니다. 프로세스 자체가 탐구하는 성향이 강하기 때문에 새로운 사실을 발견하거나 막히는 문제가 발생하면 이전 단계로 되돌아갈 수 있어야 한다.
2. 사용 시나리오란?
사용자 시나리오란, 사용자들이 특정 시스템이나 환경에서 어떤 목적으로 어떻게 활동할 것인지에 대해 구상해놓은 스토리보드와 같다. 사용자의 행동 동기, 니즈, 불편함(barriers)을 이해하고 설계된 디자인을 어떻게 사용할지 파악한다. 사용자 중심의 사고를 위한 도구인 것이다. User Scenario와 User Story는 비슷한듯 다른 용어인데, 후자는 특정 사용자의 관점에서 시나리오를 구상해보는 것을 의미한다. 사소한 디테일에 집중하며, 사용자에게 공감하는 것empathize이 중요하다. 특정 개인의 삶에 집중하는 것이기 때문에 관찰과 집중 인터뷰 등이 동반된다. 개인적인 이야기를 알아야 하는 것이다. 반면에 사용자 시나리오는 이보다 간결하고 명확하다. 사용자가 어떤 경험을 할 것인지, 어떤 방식으로 행동할 것인지에 집중한다. 디자인 띵킹 프로세스에서 일반적으로 사용된다.
사용자 시나리오를 구상하면서 정의해야 하는 것들은 다음과 같다.
더 자세한 내용은 아래 링크를 참조하면 된다.
https://www.interaction-design.org/literature/topics/user-scenarios
1. 고객이 누구인가?
2. 고객이 이루고자 하는 목표는 무엇인가?
3. 그들이 목표를 이루기 위해 반드시 해야 하는 일들에는 무엇이 있나?
4. 고객들이 제시된 디자인을 어떻게 받아들일 것인가? (Context of use)
(1) 고객들은 상품을 주로 어떤 환경 속에서 사용하나?
(2) 상품을 사용할때 마주할 수 있는 장애물에는 뭐가 있는가?
사용자 시나리오는 기술적 배경지식이 없는 이들도 프로세스를 이해할 수 있어야 한다. 현실성을 재고하기 위해서 사용자 중심의 사고방식을 매 순간 명심하면서 구현해야 한다. 너무 좁은 상황에? 매몰되지 말자. 상품을 접할 고객들의 배경지식, 문화적 배경, 경험은 천차만별이다. 숲을 보려고 하자. 그치만 나무도 봐야한다.(말인지 방구인지?)
## 이전에 디자인 띵킹에 대한 책을 읽은 적이 있는데, 온통 사용자 시나리오에 대한 이야기였던 것으로 기억한다. 언젠가 다시 읽어봐야지 했던 책인데, 그때 다시 돌아와 사용자 시나리오에 대해 더 다뤄보아야겠다. 인터넷에 찾아보니 여러 템플릿이 있는 것으로 보인다.
3. 데이터 마이닝 프로세스에서 누설Leak이란? - Data Leakage
데이터를 준비하는 과정에서 주의해야 할 것으로 '누설'이 있다. 모델을 만들고 검증하는 과정을 거치기 위해 데이터 과학자는 모집단을 훈련 데이터와 시험 데이터로 나눈다. 그러나 시험 데이터 세트의 지식이 모델을 훈련시키는 과정에 유입되면, 교차 검증의 결과는 신뢰할 수 없게 된다. 예측 성능이 비정상적으로 향상될 수 있기 때문이다. 간단히 말하면, 모델이 원칙상으로는 알 수도 없고 접근할 수도 없는 정보를 알게 되면, 그것이 누설이다.
- 훈련 데이터 세트로 모델링을 하고 시험 데이터로 교차검증을 진행하는데, 시험 데이터 세트가 훈련 중에 유입되버리면 모델은 지나치게 낙관적인 결과를 도출할 수 있다.
- 데이터 준비 과정은 훈련 데이터셋에만 핏fit되어야 한다. 시험 데이터가 개입할 여지가 없어야 한다! 오직 훈련 데이터의 로우 데이터를 사용해야 한다. 데이터를 나누고(훈련과 시험 데이터셋으로), 훈련 데이터셋에 따라 데이터를 준비하고, 모델링 절차를 거쳐서 최종적으로 모델을 평가해야 한다.
더 자세한 정보는 https://machinelearningmastery.com/data-preparation-without-data-leakage/ 를 확인하면 된다.
## 사실 책에서 읽은 내용은 아직 이해가 잘 되지 않았다. "이력 데이터에서는 변숫값을 알 수 있지만 모델을 적용해 실제로 의사결정해야 하는 순간에는 알 수 없는 상황(p.59)"..이게 도대체 머선말인고?
## 아하..이력 데이터에서는 정보량이 많은 변수를 사용해서 예측하고자 하는 타겟 변수를 알아낼 수 있지만 실제 상황에서는 예측이 불가능한 상황을 이야기 하는 것일 수도 있겠다. (책에서 쓰인 말과 별반 다를 것 없는 것 같지만..ㅋㅋ)맨 위에서 설명된 내용과 결이 조금 다른 것 같다. 내가 이해한 바에 따르면..모델링 할 때는 변수를 통해 타겟변수를 예측하는 것까지 가능했어! 근데 그 변숫값을 알아내는 것이 현실세계에서는 예측이 의미없어지는 시점에서야 가능해! 그러면 그 모델은 쓸모가 없어지는 것이야! 그러니 이런 누설 데이터(타겟 변수를 예측 가능한 정보이지만 실제 의사결정 상황에서는 무의미한 정보)가 존재하면 모델의 성능은 나락으로 떨어지는 것이겠구나..?!
## 이 개념이 의미하는 것을 분명하게 알게 되는 날이 오겠지~!
'배우는 것 > Maching Learning' 카테고리의 다른 글
#6. 파이썬 기본지식 공부(1) (0) | 2021.12.21 |
---|---|
#5. 지도학습에서의 과적합화 (0) | 2021.12.20 |
#4. 얼렁뚱땅 주피터로 맛보기학습 (0) | 2021.12.19 |
#3. 분류 트리, 트리 구조 모델, 분할정복법, 논리문 (0) | 2021.12.19 |
#2. 감독 학습, 정보를 전달하는 속성, 엔트로피, 정보증가량(IG) (0) | 2021.12.17 |