조각을 한 줄로 잇습니다
기술을 하나씩 꺼내 쓰는 일과 차례로 이어 쓰는 일은 전혀 다릅니다.
데이터를 모으는 법, 빠진 값을 메우는 법, 그림으로 그려 보는 법, 그리고 회귀 · 군집 · 연관으로 관계를 찾는 법을 하나씩 익힐 때는 대개 이미 골라진 데이터가 앞에 놓여 있고, 무엇을 알아볼지도 이미 정해져 있습니다.
프로젝트는 그 정해져 있던 부분을 여러분이 직접 정하는 활동입니다. 무엇이 궁금한지 스스로 문장으로 쓰고, 그 문장에 답할 데이터를 찾아오고, 답을 얻은 뒤에는 다른 사람이 검토할 수 있는 형태로 내놓습니다.
데이터 과학 프로젝트(data science project)
데이터로 답할 수 있는 질문 하나를 정하고, 데이터를 모아 정리하고 분석해 그 질문에 대한 답을 끝까지 밀고 간 다음, 어떻게 그 답에 이르렀는지를 남이 따라올 수 있게 밝히는 활동.
데이터가 스스로 답을 내놓는 것이 아닙니다. 질문을 던지는 것도, 나온 값에 뜻을 붙이는 것도 사람입니다. 데이터는 그 사이에서 근거가 되어 줄 뿐입니다.
여섯 단계로 나누어 봅니다
단계를 나누는 까닭은 지금 어디에 서 있는지 알기 위해서입니다.
단계 1
문제 정의하기
무엇을 알고 싶은지 한 문장으로 쓴다. 데이터로 답할 수 있는 문장인지 검토한다.
단계 2
데이터 수집 및 특성 파악하기
그 문장에 답할 데이터를 구한다. 어디서 온 데이터인지, 열이 각각 무엇인지 확인한다.
단계 3
데이터 전처리하기
빠진 값과 튀는 값을 살피고, 필요하면 자료형을 고치거나 값의 범위를 맞춘다.
단계 4
탐색적 데이터 분석하기
그림과 통계값으로 데이터의 생김새를 먼저 본다. 분포와 관계를 눈으로 확인한다.
단계 5
데이터 모델링하기
문제에 맞는 방법을 골라 모델을 만들고, 성능 지표로 확인해 더 나은 쪽을 택한다.
단계 6
결과 해석 및 공유하기
나온 값에 뜻을 붙여 결론을 쓰고, 과정을 밝혀 다른 사람과 나눈다.
앞의 세 단계는 데이터를 쓸 수 있게 만드는 일이고, 뒤의 세 단계는 그 데이터에서 답을 꺼내는 일입니다. 해 보면 알겠지만 대개 앞의 세 단계가 훨씬 오래 걸립니다. 분석이 화려해 보여도 일의 많은 부분이 데이터를 정리하는 데 들어갑니다.
단계마다 결정할 것
| 단계 | 이 단계에서 결정하는 것 |
|---|---|
| 1 문제 정의 | 무엇을 알아낼 값으로 두고, 무엇을 그 근거로 볼 것인가 |
| 2 수집 · 특성 | 어디서 구할 것인가, 각 열이 무슨 속성인가 |
| 3 전처리 | 결측치 · 이상치를 어떻게 다룰 것인가 |
| 4 탐색적 분석 | 어떤 그림과 어떤 통계값으로 볼 것인가 |
| 5 모델링 | 회귀 · 군집 · 연관 가운데 무엇을 쓸 것인가 |
| 6 해석 · 공유 | 이 값이 무엇을 뜻하는가, 무엇까지는 말할 수 없는가 |
표에 적힌 것은 모두 결정입니다. 프로젝트가 어려운 것은 기술 때문이 아니라 그 결정을 아무도 대신 내려 주지 않기 때문입니다.
「우리 학교 학생들은 점심시간에 주로 어디에 있을까?」라는 궁금증이 있습니다. 이것을 단계 1의 한 문장으로 다시 쓰려면 무엇을 더 정해야 할까요? 무엇을 세어야 답이 되는지부터 생각해 보세요.
작은 예로 한 바퀴 돌아봅니다
단계마다 무엇을 결정하게 되는지 미리 느껴 봅시다.
가져온 궁금증
「우리 학교 앞 정류장은 아침에 늘 붐비는데, 정말 그럴까?」
단계 1. 물음을 구체화한다
「붐빈다」를 무엇으로 셀지 정합니다. 시간대별 승차 인원으로 두기로 합니다. 그러면 물음은 「이 정류장의 시간대별 승차 인원은 어떻게 다를까?」가 됩니다.
단계 2. 데이터를 구한다
버스 정류장별 승하차 인원은 공개된 자료로 받을 수 있습니다. 받아 보니 정류장 이름, 날짜, 시간대, 승차 인원, 하차 인원 열이 있습니다. 언제부터 언제까지의 기록인지부터 적어 둡니다.
단계 3. 쓸 수 있게 만든다
정류장 이름이 표기가 조금씩 다르게 여러 개로 나뉘어 있습니다. 같은 정류장으로 묶고, 인원이 비어 있는 행을 어떻게 할지 정합니다.
단계 4. 그려 본다
시간대를 가로축에 두고 평균 승차 인원을 그려 봅니다. 여기서 「늘 붐빈다」가 맞는지가 처음으로 눈에 보입니다. 방학과 학기가 섞여 있다면 그것도 이때 드러납니다.
단계 5. 모델을 만든다
시간대와 요일로 승차 인원을 예측하는 회귀 모델을 만들어 봅니다. 얼마나 맞히는지 성능 지표로 확인합니다.
단계 6. 뜻을 붙인다
「아침 등교 시간대의 승차 인원이 다른 시간대보다 많았다」처럼 본 것을 그대로 적습니다. 그리고 이 결과를 누구에게 어떻게 보일지 정합니다.
눈여겨볼 것은 단계 1에서 「붐빈다」를 승차 인원으로 바꾼 결정입니다. 그것을 정류장에 서 있는 사람 수로 정했다면 전혀 다른 데이터를 모으고 전혀 다른 결론에 이르렀을 것입니다. 단계 1의 한 줄이 나머지 다섯 단계를 거의 다 정해 버립니다.
단계는 되돌아옵니다
1에서 6까지 한 번에 곧게 가는 프로젝트는 드뭅니다.
단계를 번호로 적어 두면 계단처럼 보이지만, 실제로는 앞으로 갔다가 몇 칸 뒤로 물러나기를 반복하게 됩니다. 뒤로 물러나는 것은 잘못해서가 아니라, 해 보기 전에는 알 수 없던 것을 그제야 알게 되었기 때문입니다.
단계 4에서 단계 2로
그림을 그려 보니 필요한 시기의 기록이 통째로 빠져 있습니다. 데이터를 더 구해 오거나, 다룰 기간을 좁혀야 합니다.
단계 5에서 단계 3으로
군집이 한 열을 따라서만 나뉩니다. 값을 다시 보니 단위가 크게 다른 열이 섞여 있어 거리가 그 열에 끌려가 있었습니다. 값의 범위를 맞추는 일부터 다시 합니다.
단계 6에서 단계 1로
결과가 나왔는데 처음 궁금해했던 것에 답이 되지 않습니다. 질문이 데이터와 어긋나 있었던 것이므로, 질문을 고쳐 다시 시작합니다.
그래서 기록을 남기는 일이 중요합니다. 어떤 값을 왜 버렸는지, 왜 이 방법을 골랐는지를 적어 두지 않으면 뒤로 돌아갔을 때 같은 곳에서 두 번 헤매게 됩니다.
어떤 분야에서 쓰일까요
분야는 달라도 여섯 단계의 모양은 같습니다.
교통
버스 배차를 조정할 구간 찾기
교통카드 승하차 기록에는 어느 정류장에서 몇 시에 몇 명이 탔는지가 남습니다. 시간대별로 묶어 보면 사람이 몰리는 구간과 한산한 구간이 나뉘고, 배차 간격을 어디부터 조정할지 근거를 갖고 말할 수 있습니다.
보건
응급실이 붐비는 때 알아내기
환자가 도착한 시각 기록을 요일 · 시간대로 나누어 보면 붐비는 때가 몰려 있는지 고르게 퍼져 있는지가 드러납니다. 붐비는 때를 미리 알면 그 시간대에 사람을 더 배치할 수 있습니다.
환경
하천 수질이 나빠지는 때 찾기
하천 여러 지점에서 정기적으로 측정한 수질 측정값을 시간 순으로 늘어놓으면 어느 계절, 어느 지점에서 값이 크게 흔들리는지를 볼 수 있습니다. 사람이 일일이 돌아보지 않아도 먼저 살펴볼 곳을 좁힐 수 있습니다.
문화
도서관 서가를 어떻게 배치할까
대출 기록을 보면 어떤 분야의 책이 함께 빌려지는지가 보입니다. 이런 짝은 연관 분석으로 찾을 수 있고, 그 결과는 책을 어느 서가 옆에 놓을지 정하는 데 쓰입니다.
위 네 가지는 어떤 데이터로 무엇을 알아낼 수 있는지를 보이려고 든 예입니다. 특정 기관이 실제로 진행한 사업을 가리키는 것이 아니니, 여러분이 관심 있는 분야에서 실제 사례를 직접 찾아보세요.
찾을 때 이 세 가지를 함께 적어 둡니다
- 어떤 데이터를 썼는가? 무엇을 언제부터 언제까지 모은 값인가?
- 무엇을 알아냈는가? 한 문장으로 쓸 수 있는가?
- 그래서 무엇이 달라졌는가? 알아낸 것이 어떤 결정에 쓰였는가?
네 사례 가운데 회귀 · 군집 · 연관 중 무엇을 쓸지 가장 분명하게 정해지는 것은 어느 것일까요? 그 사례의 질문이 무엇을 묻고 있는지를 먼저 보세요.
핵심 정리
데이터 과학 프로젝트
data science project
- 데이터로 답할 질문 하나에서 시작한다
- 답을 끝까지 밀고 가서 결론을 낸다
- 과정을 밝혀 남이 검토할 수 있게 내놓는다
여섯 단계
six stages
- 문제 정의 → 수집 · 특성 → 전처리
- 탐색적 분석 → 모델링 → 해석 · 공유
- 앞 셋은 쓸 수 있게 만드는 일, 뒤 셋은 답을 꺼내는 일
되돌아가는 과정
an iterative process
- 곧게 한 번에 가는 프로젝트는 드물다
- 해 보기 전에는 알 수 없던 것이 드러나기 때문이다
- 그래서 왜 그렇게 했는지 기록을 남긴다
쓰이는 분야
where it is used
- 분야가 달라도 여섯 단계의 모양은 같다
- 사례는 데이터 · 알아낸 것 · 달라진 것으로 정리한다
- 질문의 모양이 쓸 방법을 좁혀 준다
확인 퀴즈
배운 내용을 확인해 봅시다.
군집 분석을 하다가 단위가 크게 다른 열이 섞여 있는 것을 발견했습니다. 어느 단계로 돌아가야 할까?
프로젝트에서 단계를 여섯으로 나누어 두는 까닭으로 가장 알맞은 것은?
프로젝트에서 데이터가 대신해 주지 않는 일은 무엇일까?