데이터 과학자의 가설 사고 5장을 읽고 정리해 본 내용이다.
5장에서는 데이터에서 법칙을 발견하고 판별 문제를 다뤄본다. 이 때 의사결정 트리 모델을 적용해 보고 정밀도를 판단해 보는 내용을 다루고 있다.
1. 데이터에서 법칙을 발견한다.
K, L, M씨 의 생존 상황을 예상해 보자. 아마도 조금만 고민하면 정답인지 모르더라도 나름의 규칙으로 답을 낼 수 있을 거라고 예상해 본다. 어떻게 생각했는가? 단순히 여객 클래스 -> 연령대 -> 성별 순서로 살펴 보았다. (타이타닉 영화를 본 경험이 있어 그 부분도 문제 풀이에 한 몫 했다) K씨는 1등 객실이라 생존했을 것으로 예상했다. L씨의 경우 어린이라서 생존, M씨는 3등 객실에 성인이라 사망했을 것으로 예상된다.
사실 어느정도 지식이 있는 상황이기도 하고 데이터의 factor 자체가 많지 않아 어렵지 않게 머릿속으로 계산할 수 있었는데, (인지하지 못한 상황이라도) 어느 정도 순서와 기준에 맞게 예측을 했을 것이다. 그 순서를 구체적으로 한 번 들여다 보자.
- 여객 클래스 별로 생존률이 다를 것이다?
- 현실적으로 1등 객실이면 높은 곳에 위치하여 대피 시간이 길었을 것이고 대피 보트에 탈 수 있었을 확률이 컸을 것이다.
- 데이터를 살펴보면 1등 객실 탑승객은 100% 생존했다.
- 그 외 객실은 사망률이 급증했다.
- 두번째로 (성별이 아닌) 연령대를 보고 어린이의 생존률이 높을 것이다?
- (약간의 경험이 작용) 어린이 또는 여성 우선으로 대피 보트에 먼저 태웠을 것이다. (영화 사례)
- 데이터를 살펴보면 표본(2명)이 적지만 100% 생존했다.
- 성별 또한 어린이처럼 생존률이 높을 것이다? -> 예측불가
- 표본(1명)이 너무 적다.
- 생존한 1명도 1등 객실로 생존에 영향을 주었을 명확한 요인이 있는 것으로 보인다.
- 여성이라서 대피 보트에 먼저 탑승했을 것으로 보이나 확인이 어렵다.
(아주 짧은 시간이지만) 머릿속으로 가설을 세우고 데이터를 확인해 보았다. 그에 맞게 확률 계산을 거쳐 K, L, M씨의 생존을 예측했다. 남성/성인인 경우 대부분 사망을 했기에 아마도 K씨를 사망으로 예측한 경우도 있을 것이다. 이렇게 예측하더라도 틀리지 않을 수 있다. 예측일 뿐 결과가 아니기에 그렇다. 여기서는 명확한 기준에 맞게 가설을 세우고 확인하고 예측하는 과정을 본 것이다. 위와 같은 경우를 판별 문제(A/B 테스트)라고 하는데, 둘 중 한쪽 값을 반드시 추축(생존인지 사망인지)해야 하는 문제이다.
2. 판별 문제를 푸는 의사결정 트리 모델
3. 판별 문제의 정밀도를 평가해 보자.
- True Positive(이하 TP): 올바르게 양성이라고 판정
- False Positive(이하 FP): 사실은 음성이지만 잘못해서 양성이라고 판단 (오답)
- False Negative(이하 FN): 사실은 양성이지만 잘못해서 음성이라고 판단 (오답)
- True Negative(이하 TN): 올바르게 음성이라고 판정
우리가 경계해야 하는 건 오답으로 판정하지 않는 것이지만 현실적으로 어려움이 많다. 실제로 코로나의 경우 False Positive 보다 False Negative 를 더 경계한다. 암검진 같은 경우도 동일하다. 둘 다 문제이긴 하나 굳이 하나를 고르자면 False Negative 를 최소화 하는 방법을 고려해야 한다. 실제로 암인데, 건강하다고 판단하는 실수를 범하면 안 된다. (사람의 생사와 연관이 있는 중대한 문제이기도 하기에 그렇다. 다만 모두 그런 건 아니니 앞 장에서 배웠던 것처럼 데이터의 배경을 잘 이해하고 판단하자)
정밀도를 평가하는 방법
- 정답률: 전체 가운데 올바르게 판단한 비율, (TP+TN)/전체
- 적합률: 양성 혹은 음성이라고 판정한 가운데 정답을 맞힌 비율, TP/(TP+FP)
- 재현율: 실제로 양성 혹은 음성이었던 값의 정받을 맞힌 비율, TP/(TP+FN)
적합률과 재현율은 트레이드오프(trade-off) 관계에 있는 경우가 많다. (코로나 검사의 경우) 오검지를 낮추고 싶다면 적합률로, 놓치는 부분을 낮추고 싶다면 재현율로 평가하면 된다.
4. 의사결정 트리 모델을 활용해보자.
위와 같은 데이터를 기반으로 프리미엄 맥주 구입 여부 예측해 보자. 먼저 데이터를 확인하고 대략적인 가설을 세울 필요가 있다. 표에서 보면 성별, 연령, 취미, 취미에 쓰는 돈, 건강식품 구입 빈도, 좋아하는 음악 장르에 대한 데이터가 있다. 이를 기반으로 몇가지 생각해 볼 수 있다.
- 프리미엄 맥주는 비교적 가격이 높으므로 구매력이 있는(경제적으로 여유가 있는) 사람이 구입하지 않을까?
- 연령: 연수입과 상관관계가 있어 추측
- 취미에 쓰는 돈
- 좋아하는 음악 장르에 따라 영향이 있지 않을까?
- (혹시나) 좋아하는 장르의 뮤지션이 광고 모델이거나 좋아하는 맥주라면?
때로는 말도 안 되는 가설처럼 보일지라도 가설을 세움으로서 확인해야 할 항목이 명확해 지는 효과가 있다. 또한 가설을 세우면서 데이터의 배경, 예측의 목적 등 풀어야 할 문제에 대해서도 좀 더 가까워지게 된다. 현실적으로 대부분의 가설은 맞지 않을 가능성이 높으나 사전에 가설을 세웠기에 그 차이를 명확히 할 수 있기도 하다. 가설을 세웠다면 비정형 데이터가 없는지 확인할 필요가 있다. 연령을 보면 16세인 G씨가 눈에 띈다. 미성년자인 G씨는 아마도 부모님 심부름으로 구매했을 가능성이 크다. (맥주를 추천해야 하는 상황이기에) 미성년자에게 추천할 수는 없는 노릇이니 제외하고 점검하자.
이젠 데이터에서 법칙을 찾아보자. 앞 장에서 데이터 경향 파악을 할 때 대표값들을 확인하는 방법을 확인했다. 여기에서는 항목별로 단순히 빈도를 표현해 보았다. (아래 참고) 가설을 기준으로 데이터를 체크해 보면 몇가지가 보이기도 한다.
- 연령: 전 구간에 펼쳐져 있어 딱히 연관이 있어 보이진 않는다. (그나마 30대가 높은 편)
- 취미: 취미가 여행인 경우 구입할 확률이 높은 듯 하다.
- 취미에 쓰는 돈: 낮은 금액을 사용하는 사람도 구매한 케이스가 있으나 대체적으로 많이 사용할 때 빈도가 올라가는 것을 확인할 수 있다.
- 건강식품 구입 빈도: 높은 경우 구입할 확률이 높은 듯 하다.
- 좋아하는 음악 장르: (케이스가 적어 확신할 순 없으나) 록을 좋아하는 사람의 경우 구입 비율이 높다. 반대로 팝은 낮다.
이를 기반으로 의사결정 트리를 만들어 본다면 아래와 같을 것이다. (물론 중요 기준을 다르게 두었을 때 다른 그림이 그려질 수 있고, 예측치가 달라질 수 있다.) 도출된 의사결정 트리 기반으로 예측해보면 R씨와 T씨가 프리미엄 맥주를 구입할 것으로 예상된다.
처음 가설을 세울 때 "건강식품 구입 빈도" 항목은 고려하지 못했다. 여러 가지 가설을 세우면서 데이터와 여러 번 마주하면 가설의 정밀도를 높여갈 수 있다. 이처럼 맞지 않을 것 같은 가설도 중요하므로 다방면으로 데이터를 살펴보고 고민하는 습관을 길러야 할 것이다.
'BigData > Data Science' 카테고리의 다른 글
데이터 리터러시 #6 (0) | 2024.05.11 |
---|---|
데이터 리터러시 #4 (0) | 2024.04.27 |
데이터 리터러시 #3 (1) | 2024.04.25 |
데이터 리터러시 #2 (0) | 2024.04.24 |
데이터 리터러시 #1 (0) | 2024.04.17 |