어떻게 데이터 과학은 작동하는가?
1 들어가며
데이터 과학(Data science)은 데이터를 수집, 처리, 분석하여 유의미한 정보를 추출하고 의사결정을 지원하는 과정입니다. 데이터 과학자들은 통계학, 컴퓨터 과학, 기반 지식을 융합해 데이터를 활용한 문제 해결과 혁신을 가능하게 합니다. 이제 데이터를 어떻게 분석해야 하는지에 간략하게 알아보죠.
2 데이터 확보하기
데이터 과학의 원시 자료는 숫자와 이름의 모음입니다. 측정값, 가격, 날짜, 시간, 제품, 제목, 행동 등 모든 것이 데이터 과학의 대상이 될 수 있습니다. 이미지, 텍스트, 오디오, 비디오 및 기타 복잡한 데이터도 숫자와 이름으로 축소할 수 있는 방법만 있다면 사용할 수 있습니다.
데이터를 가져오는 메커니즘은 매우 복잡합니다. 하지만 이 가이드는 전반적인 데이터 과학에 초점을 맞추고 있으므로 데이터를 가져오는 주제에 대해서는 다음 기회에 다루도록 하겠습니다.
3 날카로운 질문하기
데이터 과학은 이름과 숫자를 사용하여 질문에 답하는 과정입니다. 질문을 더 정확하게 할수록 더 만족스러운 답을 찾을 확률이 높아집니다. 예를 들어 ” 내 데이터를 통해 비즈니스에 대해 무엇을 알 수 있나요?” 또는 ” 어떻게 하면 수익을 높일 수 있나요?” 등은 잘못된 질문입니다. 반면에 “3 분기에 몬트리올에서 테슬라 Model S 를 몇 대 판매할 것인가?” 와 같은 질문은 명확한 답을 할 수 밖에 없으니 좋은 질문 입니다.
이제 질문이 생겼으니 데이터를 살펴보세요. 만약 ” 다음 주에 내 주식의 판매 가격은 얼마인가요?” 라는 질문이라면 데이터에 주식의 가격 이력이 포함되어 있는지 확인하세요. 만약 질문이 ” 모델 88 항공기 엔진이 고장날 때까지 몇 시간이 남았나요?” 라면 데이터에 여러 모델 88 엔진의 고장 시간이 포함되어 있는지 확인해야 합니다. 이것을 목표 데이터라고 합니다. 데이터에 목표 데이터가 없다면 질문에 답을 할 수 없습니다. 그런 경우 1단계로 돌아가서 추가로 데이터를 수집하세요.
4 데이터를 테이블로 만들기
대부분의 머신 러닝 알고리즘은 데이터가 테이블에 있다고 가정합니다. 따라서 만약 미식 축구를 설명하는 데이터 집합을 만든다면 각 열은 홈팀, 원정팀, 홈팀의 점수, 원정팀의 점수, 날짜, 시작 시간으로 하고 각 행은 각각의 경기를 나타낼 수 있습니다. 경기의 수만큼 행이 늘어나겠죠.
5 데이터의 품질 확인하기
5.1 데이터 검사하기
다음 단계는 데이터를 깊게 살펴보는 것입니다. 여기에는 두 가지 목적이 있습니다. 첫 번째는 잘못된 데이터를 발견하여 수정하거나 제거하는 것입니다. 다른 하나는 각 행과 열에 익숙해지는 것입니다. 이 단계를 건너뛰고 데이터를 최대한 활용 할 수는 없습니다.
데이터의 한 열만 살펴보세요. 무엇에 레이블이 붙어 있나요? 값이 레이블에 맞는가요? 그 레이블이 여러분에게 어떤 의미가 있나요? 열의 의미에 대한 문서가 있나요? 어떻게 측정되었는지에 대한 문서가 있나요? 스스로에게 물어보세요.
각각의 열에 대한 히스토그램을 그려보고 분포가 기능에 대해 알고 있는 것과 일치하는지도 확인 해보세요. 혹시 비정상적인 수치가 있나요? 그런 이상값이 의미가 있나요? 어떤 식으로든 조금이라도 이상해 보인다면 그 이유를 찾아보세요.
5.2 데이터 수정하기
각각의 열을 살펴보면서 혹시 이름과 설명이 오해의 소지가 있거나 잘못된 것을 발견할 수도 있습니다. 혹은 일부 값이 잘못되었다는 사실을 발견할 수도 있습니다. 이 경우 세 가지 선택지가 있습니다. 첫 번째, 수정이 분명해 보이는 경우 값을 수정한다 (예: 키 72 미터를 72 인치로 변환). 두 번째, 수정이 분명하지 않은 경우 값을 삭제하고 누락된 상태로 둘 수 있습니다. 세 번째, 값이 중요한 정보인 경우 전체 행 또는 열을 제거할 수 있습니다. 이렇게 하면 잘못된 데이터로 모델을 학습시키는 것을 방지할 수 있습니다. 잘못된 데이터는 누락된 데이터보다 훨씬 더 큰 피해를 줍니다.
가끔 바람직하지 않은 값이나 행을 제거하고 싶은 유혹이 있을 수 있습니다. 이러한 데이터는 여러분이 선호하는 이론을 뒷받침하지 않을 수 있습니다. 그러나 이렇게 하지는 마세요. 이것은 비윤리적이며 더 나쁜 것은 잘못된 답을 얻을 수 있다는 것입니다.
5.3 결측치 다루기
거의 모든 데이터 집합에는 누락된 값이 있습니다. 이것은 때로 잘못된 것으로 판명되어 삭제된 것이기도 하고 보통 서로 다른 소스에서 가져온 데이터를 합치는 경우에 생겨다는 경우가 있습니다. 어쨌거나 머신러닝에 사용하기 위해서는 결측치를 수정해야 합니다. 결측치를 수정하는 방법에는 여러 가지가 있습니다. 먼저 샘플을 보고 싶으시다면 Azure에서 결측치 다루기 를 확인하세요. 결론적으로 결측치를 수정하는 최선의 방법은 데이터 마다 다르다는 것입니다.
6 특성(Feature) 변환하기
머신 러닝 모델 학습을 하기 전에 아직 한 가지 단계가 남았습니다. 바로 피처 엔지니어링 (Feature engineering) 입니다. 현재 데이터셋에 있는 특성을 조합해 목표를 더 잘 예측할 수 있도록 하는 방법론이죠. 예를 들어 특성 만들기 예제 에서는 “기차 도착 시간” 에 “출발 시간”을 빼서 “환승 시간” 이라는 특성을 추가했습니다. 이 특성은 목표인 최고 속도를 예측하는 데 훨씬 더 유용합니다.
엄밀히 말하면 피처 엔지니어링은 데이터에 어떤 정보도 추가하지 않습니다. 단순히 존재하는 것을 새로운 방식으로 결합하는 것입니다. 그러나 두 개의 데이터 열을 결합하는 방법은 무한하고 대부분은 의미가 없거나 예측에 도움이 되지 않습니다.
피처 엔지니어링 프로세스는 데이터 과학에서 가장 자동화가 어려운 영역으로 시행착오와 직관, 경험이 필요한 과정입니다. 그래서 피처 엔지니어링에 사전 지식이 있으면 유리합니다. 피처 엔지니어링을 위한 간단한 팁으로 데이터의 모든 변수에 대한 관계를 시각화하는 것을 추천합니다. 이렇게 하면 변수 간의 관계를 드러내는 데 도움이 됩니다. 만약 플롯에서 패턴을 발견한다면 피쳐 엔지니어링을 해볼 기회일 수 있습니다. 즉, 두 변수를 개별적으로 사용하는 것보다 두 변수의 조합이 더 유용할 수 있다는 것을 시각화로 알 수 있죠.
때로는 어떤 변수나 변수 조합도 타깃을 예측하는 데 도움이 되지 않는 경우가 있습니다. 이는 아마도 다른 무언가를 측정해야 한다는 의미일 수 있습니다. 그렇다면 다시 1 단계로 돌아가서 더 많은 데이터 수집하세요.
7 질문에 답하기
마지막으로 데이터 과학자들이 가장 좋아하는 부분입니다. 바로 머신 러닝입니다! 간단히 요약하면 질문이 어떤 문제에 속하는지 결정 하고, 해당 문제에 사용할 알고리즘을 하나 이상 선택 합니다. 그런다음 데이터를 분할(학습, 테스트, 검증 데이터 세트)하고 모델의 매개변수를 최적화하는 과정을 거칩니다.
만약 머신러닝으로 답을 얻을 수 없다면 아래의 방법들을 시도해볼 수 있습니다. 첫 번째, 단순히 데이터를 시각화 해봅니다. 거의 절반의 경우 이것만으로도 원하는 답을 얻을 수 있습니다. 예를 들어 “내년 7월 4일 보스턴의 최고 기온은?” 이라는 질문에 답을 하기 위해서는 지난 100년 동안의 7월 4일 보스턴의 최고 기온 히스토그램 그려보면 충분한 시각적 답을 얻을 수 있습니다.
두 번째는 기술적으로 좀 더 까다롭습니다. 데이터 세트가 너무 작아 결과가 만족스럽지 않다면 더 많은 가정을 세워서 데이터를 분석하는 것입니다. 예를 들어, 물체의 탄도 궤적을 예측 문제라면 뉴턴 역학을 사용해 위치와 속도를 포함하는 단일 데이터 포인트만으로도 미래의 물체의 위치와 속도를 예측할 수 있습니다. 이런 접근법의 장점은 훨씬 적은 데이터로 결과를 얻을 수 있다는 것입니다. 반면 단점은 세상에 완벽한 가정은 없다는 것입니다. 이런 방법 중 어느 것도 효과가 없다면 다시 1단계로 돌아가서 더 많은 데이터 수집해야 합니다.
8 분석 결과 공유하기
데이터를 활용해 질문에 대한 답을 찾았다고 해도 다른 사람이 사용하지 않는다면 아무런 의미가 없습니다. 따라서 분석 결과를 의사 결정을 위해 혹은 작업을 완료하기 위해 그리고 학습을 위한 형태의 자료로 만들어야 합니다. 자료를 만드는 방법에도 여러 가지가 있습니다. 웹 페이지에 결과를 게시하거나 PDF 파일로 만들어 배포하는 것들이 있죠.
“아무도 없는 숲에서는 나무가 쓰러져도 소리가 나지 않는다.” 라는 영어 속담이 있습니다. 그러니 가능한 많은 사람들에게 당신의 모델을 공유하세요.