반응형

pandas로 데이터 분석을 실행함에 있어, 어떻게 절차를 구분하는 것이 좋을지 정리해 놓은 글이 있어 번역해 보았다. 

특히 Pandas로 실행하고 있기 때문에 향후 pandas의 각 기능에 대해 정리해 보려고 한다.

먼저, 오늘은 데이터에서 필요한 정보를 만들어내는 7단계에 대해 간략히 정리하도록 하겠다.

데이터 분석 프로세스




1. 개념화(Ideation)

첫단계는 알아내고 싶은 것이 무엇인지 밝히는 것이다. 

이것은 우리가 하고 싶은 것이 무엇인지 생각해 보고 증명하기 위한 개념화에 대한 것이다. 개념은 일반적으로 지식을 바탕으로 결정을 내리기 위해 사용할 수 있는 데이터 패턴에 대한 가설과 관련이 있다. 

이러한 결정은 비즈니스 차원에서 이루어 지지만 과학 및 연구 분야에서도 발생한다. 

그럼 데이터를 통해 우리가 내리는 결정의 종류는 어떤 것이 있을까? 다음과 같은 것을 많이 요청한다고 본다.

- 어떤 일이 왜 일어났는가?

- 과거 데이터를 사용해서 미래를 예측할 수 있는가?

- 앞으로 어떻게 운영을 최적화할 수 있을까?

위 목록이 개념화를 정의하려는 노력에 있어 많은 부분을 차지할 것이라 생각한다. 

위와 같은 질문에 대한 답변을 얻기 위해 문제와 관련된 데이터를 수집하고 이해해야 하는 것이다. 여기에는 어떤 데이터가 조사될 것인지, 연구의 이점이 무엇인지, 데이터를 어떻게 얻을 것인지, 성공 기준이 무엇인지, 최종적으로 정보가 어떻게 전달될 것인지를 정의해야 하는 지를 포함한다.

Pandas 자체는 개념을 보조하기 위한 도구를 제공하지는 않는다. 그러나 Pandas 사용에 대한 이해와 기술을 습득하면 Pandas가 아이디어를 공식화하는 데 어떻게 도움을 주는지 자연스럽게 알게될 것이다.


2. 검색(Retrieval)

아이디어가 있으면 가설을 뒷받침할 데이터를 찾아야 한다. 

이 데이터는 조직 내에서 또는 외부 데이터 공급자로부터 가져올 수 있다. 이 데이터는 일반적으로 보관된 데이터로 제공되거나 실시간으로 제공될 수 있다.

데이터를 작성했거나 조직 내에서 가져온 경우에도 원시 데이터는 종종 매우 불완전하다. 원시 데이터는 데이터가 혼란스럽거나 다양한 형식일 수 있으며 오류가 있을 수 있음을 의미한다. 분석 지원과 관련하여 불완전할 수 있으며 수동으로 개선해야 할 수도 있다.

세상에는 무료 데이터가 아주 많다. 많은 데이터는 무료가 아니며 실제로는 상당한 금액의 비용을 요구한다. 일부는 공개 API에서 무료로 사용할 수 있으며 다른 일부는 구독으로 사용할 수도 있다. 비용을 지불한 데이터는 종종 더 클린하지만 종종 그렇지 않을 수도 있음을 알아야 한다.

데이터가 불완전하거나 클린할 경우 모두 pandas는 다양한 출처의 데이터를 검색할 수 있는 견고하고 사용하기 쉬운 도구 집합을 제공하며 다양한 형식을 지원한다. pandas는 데이터를 검색할 뿐만 아니라 다른 툴이나 프로그래밍 언어에서 필요할 수 있는 복잡한 코딩을 수동으로 생성할 필요없이 pandas 데이터 구조를 통해 데이터의 초기 구조화 기능을 제공한다.


3. 준비(Preparation)

준비 중에 원시 데이터를 탐색할 준비가 된다. 이 준비 과정은 매우 흥미로운 과정이다. 데이터가 품질과 관련된 문제로 가득차 있는 경우가 매우 빈번하기 때문이다. 이러한 품질 문제를 처리하는 데 많은 시간을 할애할 가능성이 높다(종종 매우 아까운 시간).

왜 시간을 많이 할애해야 할까?

- 데이터가 단순히 잘못되어 있다

- 데이터 세트의 일부가 누락되어 있다

- 분석에 적합한 측정 값을 사용하여 데이터가 표현되지 않았다

- 데이터가 분석에 적합하지 않은 형식이다

- 데이터가 분석에 적합하지 않은 세부 수준에 있다

- 필요한 모든 필드가 단일 소스에서 제공되는 것이 아니다

- 데이터 표현이 공급자에 따라 다르다


4. 탐색(Exploration)

탐색에는 대화식으로 데이터를 작은 여러 조각들로 분해한 후 다양한 시각으로 볼 수 있게 함으로써 신속하게 살펴보는 것을 포함한다. 

탐색은 다음과 같은 다양한 테스크를 포함한다.

- 변수가 서로 어떻게 관련되어 있는지 조사

- 데이터 배포 방법 결정

- 특이점 찾아서 제외시키기

- 빠른 시각화 만들기

- 보다 영구적으로 상세한 모델링 프로세스를 지원할 수 있도록 새로운 데이터 표현이나 모델을 신속하게 생성

탐색은 pandas의 위대한 강점 중 하나다. 탐색은 대부분의 프로그래밍 언어에서 수행할 수 있지만 pandas가 얼마나 탐색적 노력을 수월하게 하는지가 관건일 것이다.

IPython 및 / 또는 Jupyter 노트북의 REPL (read-eval-print-loop) 특성과 함께 사용하면 pandas는 매우 자유로운 탐색 환경을 만든다. pandas 구문의 표현력을 통해 복잡한 데이터 조작 구조를 간략하게 설명할 수 있으며 데이터를 처리할 때 수행한 모든 작업 결과가 즉각적인 검사를 통해 표시될 수 있다. 이를 통해 프로그램을 다시 컴파일하여 재실행하지 않고 방금 수행한 작업의 유효성을 신속하게 판별할 수 있다.


5. 모델링(Modeling)

모델링 단계에서 탐색 중에 발견된 발견을 공식화하여 데이터 내에 포함된 원하는 의미를 얻는 데 필요한 단계와 데이터 구조를 명시적으로 설명한다. 이 모델은 원시 데이터에서 정보와 결론까지 얻을 수 있는 코드 단계 뿐 아니라 두 데이터 구조의 조합이다.

모델링 프로세스는 데이터 탐색을 통해 분석을 지원하는 데 필요한 변수를 선택하고 분석 프로세스에 대한 입력 변수를 구성한다. 모델을 실행하며 모델이 원래의 가정을 얼마나 잘 지원하는지를 결정하는지 확인하는 반복 프로세스라고 할 수 있다. 데이터 구조의 공식 모델링을 포함할 수 있지만 통계, 기계 학습 및 운영 연구와 같은 다양한 분석 도메인의 기술을 결합할 수도 있다.

이를 촉진하기 위해 pandas는 광범위한 데이터 모델링 기능을 제공한다. 데이터 탐색으로부터 한발 더 나아가, DataFrame에서 데이터 모델을 형식화하고, 이 모델들을 간결하게 만들어 주는 절차를 확보해 주는 단계라고 할 수 있다. 파이썬 기반을 통해, 처음부터 마지막 프로세스까지 자동화하는 프로그램을 생성하는 파워를 사용할 수 있다. 즉, 작성한 모델은 실행 가능한 것이다.

분석적 관점에서 pandas는 다양한 유형의 문제에 대한 목표를 달성할 수 있는 기술 통계에 대한 통합 지원과 같은 몇 가지 기능을 제공한다. 그리고 pandas는 파이썬 기분이기 때문에 고급 분석 기능이 필요하다면 광범위한 파이썬 라이브러리와 쉽게 통합될 수 있다.


6. 프리젠테이션(Presentation)

이 프로세스의 마지막에서 두번째 단계는 결과를 다른 사람들에게, 일반적으로 보고서나 프리젠테이션 형태로 제시하는 것이다. 설득력있고 철저한 솔루션 설명을 만들고 싶을 때, 바로 이용할 수 있다. 

Jupyter Notebook은 pandas 분석을 위한 프리젠테이션을 작성하는 강력한 도구다. 이 노트북은 코드를 실행하고 응용 프로그램의 여러 지점에서 주석을 달고 실행을 설명하기 위한 다양한 마크다운 기능을 제공한다. 또한 이 도구는 코드, 스타일이 지정된 텍스트, 그래픽과 함께 시각적으로 풍부한 매우 효과적인 실행 가능한 프리젠테이션을 만들 수 있다.


7. 재생산(Reproduction)

중요한 연구는 연구를 공유하고 재현할 수 있게 만들어야 한다. 다른 연구자가 실혐과 결과를 재현할 수 없다면 어떤 것을 증명하지 못했다고 할 수 있기 때문이다.

다행스럽게도 pandas와 파이썬을 사용함으로써 분석을 쉽게 재현할 수 있다. pandas 코드를 구동하는 파이썬 코드와 데이터를 공유함으로써 가능하다.

또한, Jupyter Notebook은 다른 사람들과 쉽게 공유할 수 있는 방법으로 코드와 응용 프로그램을 패키징하는 편리한 방법을 제공한다.


<Source : Learning pandas Second Edition, Packt>


반응형

+ Recent posts