본문 바로가기
데이터 사이언스

데이터사이언스 포트폴리오 작성법

by 빛나는존재 2022. 5. 7.

포트폴리오 작성의 필요성

취업을 하기 위해서는 스스로 어느 정도로 실력이 되는지 객관적으로 다른 사람들에게 보여줄 수 있어야 한다. 포트폴리오 작성에 필요한 주요 단계로는 첫째, 문제 정의, 둘째, 데이터 전처리, 셋째, 모델 적합 후 평가 등이 있으며 이를 수행하는데 필요한 도구에 대해 이야기하고자 한다.

문제 정의

우선, 데이터를 통해 해결하고자 하는 문제가 무엇인지 문서화해야 한다. 분석의 목적이 무엇인지, 그리고 어떤 feature 들을 사용해서 어떤 target을 예측할 것인지, 그 target은 categorical 한 데이터인지, 아니면 numeric 한 데이터 인지 등등에 대한 정보가 필요하다. 그리고 각각의 변수들에 대한 설명이 있어야 한다. 물론, 대부분의 경우 변수의 이름을 보면 대충 그 변수가 무엇을 뜻하는지 알 수 있다. 하지만 그렇게 추측을 하다가 자신이 가정한 것이 사실과 다를 때에는 문제가 발생하게 된다. 그리고 포트폴리오는 혼자만 보는 것이 아니라 여러 사람들이 보는 것을 목적으로 하기 때문에 변수가 어떻게 측정되었으며 무엇을 뜻하는지에 대한 상세한 정보가 있어야 여러 사람이 같은 관점에서 데이터를 볼 수 있다. 예를 들어, 어떤 변수의 이름이 “result”라고 되어있다고 한다면 물론 이것이 어떤 관심 있는 주제의 결과에 대한 데이터라는 것은 알지만 정확하게 무엇에 대한 결과인지 알 수는 없다. 실제로 일을 할 때 있었던 일인데, 어떤 데이터에 “result”라는 변수에 대해 설명을 듣기 전 까지는 나를 포함한 모두가 그 변수가 진단검사에 대한 결과라고 생각했었다. 그런데 알고 보니 검사 결과를 핸드폰 문자로 받아볼 것인지에 대한 여부여서 이것을 해석하는데 오류가 있을 뻔 한 사태가 있었다.

 

데이터 전처리 및 모델 적합

데이터를 특정 모델로 적합하기 전에 데이터에 불순물이 없도록 정제해야 한다. 이 과정을 데이터 클리닝이라고 하며 사실상 이 과정이 데이터 분석 작업에 있어 대부분의 시간을 차지할 정도로 큰 비중을 차지한다. 모든 변수에 대해 결측치가 있는지, 결측치가 있다면 그것을 무엇으로 채울지, 아니면 데이터 분석 대상으로부터 지워버릴지 등의 결정을 해야 하며 그 결정에는 타당한 논리가 있어야 한다. 그리고 중복되지 말아야 할 값이 특정 변수에서 반복되어 나타나는 경우, 혹은 여러 행 자체가 중복되어 있는 경우도 있는지 체크해서, 정말로 중복되어 들어갔다고 판단되는 경우에는 하나만 남기도록 하고 나머지는 지워야 한다. 또한 데이터 정합성 체크를 통해 상식적으로 맞지 않는 데이터는 결측치로 간주하는 경우도 있다. 예를 들어 나이가 -1보다 낮거나 120보다 높은 경우, 키나 몸무게가 0 이하인 경우, 성별이라는 카테고리에 남, 녀 이외에 엉뚱한 숫자가 들어가 있는 경우 등이 존재 할 수 있는데, 이런 경우에는 모두 정합성을 만족시키는 기준을 세워 이를 만족하는 데이터만을 대상으로 분석할 수 있도록 하는 것이 좋다. 그 후, 전처리된 데이터를 탐색 및 시각화하는 작업을 통해, 데이터에 대한 이해도를 높인다. 특히 종속변수와 독립변수간의독립변수 간의 상관관계에 대한 시각화는 반드시 할 것을 권장하며, 독립변수 간의 상관관계를 시각화하는 것 역시 Multicollinearity(다중 공선 성) 문제를 파악하는데 도움이 된다. 그 이후로 아무런 가설도 적용되지 않은 모델을 baseline으로 적합하고, 가설을 세운 후 그 가설에 따라 모델을 적합한다. 그 후, 두 모델 간의 차이점을 분석하여 어느 정도 모델 성능이 향상되었는지 비교한다.

포트폴리오 작성 시 필요한 tool

데이터 분석가라면 github를 적절하게 이용할 수 있어야 한다. 아무리 백업을 잘 하는 습관을 가지고 있다고 하더라도 그 백업을 로컬 컴퓨터에서만 한다면, 백업을 하는 의미가 없다. 로컬 컴퓨터에 저장된 데이터는 언제라도 사라질 수 있는 위험이 있기 때문이다. 따라서 로컬 컴퓨터의 데이터에 접근하지 못한다 하더라도 온라인에 백업이 되어 있어야 한다. 데이터 사이언스 분야에서 가장 많이 활용되는 서비스가 github이다. 당신이 하나의 ipynb 파일을 만든다고 가정하자. 아마 대부분의 경우 당신은 그 ipynb 파일을 단 한번 만들고 끝내지 않을 것이다. 높은 확률로 그다음 버전의 수정된 ipynb 파일을 업로드하고 싶어질 것이다. 그럴 때마다 우리가 가장 쉽게 생각할 수 있는 것은 그저 ipynb를 저장할 때 파일명을 바꾸는 것이다. 예를 들어 나의 경우 파일명 끝에 그 파일을 작성한 날짜를 적었다. 그런데 이렇게 보관을 하다 보면 무슨 이름의 파일에 무슨 변화가 생겼는지 알 길이 없다. 하지만 git을 사용하면 버전 관리를 가능하게 해 주어, 매번 다른 이름으로 파일을 저장하지 않아도 언제라도 과거 시점의 파일로 돌아갈 수 있으며 각 버전마다 어떤 변화가 있었는지 알 수 있게 해 준다.

반응형