본문 바로가기
데이터 분석 관련

[패스트캠퍼스] 데이터분석 강의 학습일지

by 달빛 정원 2023. 4. 17.
반응형
본고는 패스트캠퍼스 "빅데이터 분석 첫걸음" 강의 수강 과정에서 배운 내용을 정리하고 느낀 점을 적은 것입니다.

1주 차 수강내용(데이터 사이언스에 대한 개념 잡기)

해당 과정을 수강하는 목적은 다양하겠지만 무엇보다 파이썬을 활용하여 빅데이터를 다루는 방법을 배우고 싶었습니다. 엑셀로는 데이터를 다루는데 한계를 느꼈고, 인터넷에서 서치 하다가 패스트 캠퍼스에서 진행 중인 국비지원 "빅데이터 분석" 강의를 알게 되었습니다. 내일배움카드를 활용하여 매우 저렴한 가격에 고퀄 강의를 수강할 수 있는 좋은 기회라 생각했습니다. 그럼 1주 차 동안 학습한 내용을 간략하게 정리해 보겠습니다.


데이터 사이언스란?

데이터 사이언스는 데이터를 기반으로 통계학 등의 방법론을 활용하여 유의미한 Finding을 찾는 것이라고 생각합니다. 이러한 일들을 하는 사람들을 데이터 사이언티스트라고 부르며 요구되는 다양한 역량들이 존재합니다. 특히,

  • 파이썬, R
  • SQL
  • 통계, 산업공학, 컴퓨터 공학 전공
  • 하둡에코시스템 사용 경험
  • 클라우드서비스 사용 경험 등

등이 요구된다고 합니다. 이 중에서 제게 필요한 부분은 파이썬, R과 같은 데이터 활용 소프트웨어를 다루는 방법과 통계적 지식입니다. 즉 데이터 분석을 잘하기 위해서는 기초가 탄탄해야 합니다. 선형대수학, 통계, 정보이론과 같은 다학제적 이론들이 요구됩니다. 데이터분석은 종합 예술이라고 볼 수 있겠네요.

 

이러한 데이터 분석 결과들은 논문, 블로그, 대시보드 들을 통해서 공개되며 발표된 자료들을 전문가들이 공유해서 더 유용하고 쓸모 있는 지식으로 발전됩니다. 특히 데이터 분석가들이 많이 쓰는 github, wandb 같은 플랫폼들을 잘 살펴보면 이전에 앞서가던 선배들의 발자취를 잘 확인할 수 있습니다. 어쩌면 제가 고민하고 있는 부분들의 해답도 찾을 수 있을지도 모르겠습니다. (이러한 사이트를 정기적으로 방문해서 데이터 사이언스와 친해져야겠습니다.)

 


 

데이터 엔지니어링이란?

데이터 엔지니어링은 데이터 사이언스와 비슷하면서도 차이가 있습니다. 통계적 지식보다는 대용량 데이터 DB를 다루는 것을 주로 합니다. 그래서 컴퓨팅 지식들이 조금 더 중요하게 여겨지는데 CPU, 메모리, 스토리지 같은 용어들이 등장하게 됩니다. 네트워크 모델, 클라이언트, 서버, 웹과 같은 기초용어들도 배웠으며 데이터베이스 측면에서 RDB, schema, SQL, Data warehouse, data lake 등의 기초지식을 습득하였습니다.

 

나아가 클라우드에 대한 이야기들도 조금 소개되었는데 최근 진행되는 연구들에 대한 이야기들도 들을 수 있었습니다. 이미 개인 컴퓨터의 사양을 넘어 클라우드 컴퓨팅을 활용하여 컴퓨터에 리소스를 할당받아서 활용하는 단계까지 진행 중입니다. 아마존, 구글, 마이크로소프트 같은 클라우드 강자들이 존재하고 다양한 솔루션(기능, 요금제)들이 존재하는 것을 확인하였습니다.


 

머신러닝 워크플로우(Machine Learning Workflow)

가장 핵심이 되는 내용이라고 볼 수 있습니다. 머신러닝을 활용하여 문제를 해결하는 단계를 보여주는 것으로써 총 5단계로 구분됩니다.

  1. 데이터 분석 문제 정의: 문제가 무엇인지 정의하고 문제를 해결하기 위해 필요한 방법론은 무엇인지 결정하는 단계입니다. (분류, 회귀, 클러스터링, 추천, 랭킹 등) 아울러 기존 선행연구 조사를 통해 이미 해결된 것은 아닌지 기존 연구에서는 무엇이 부족했는지 등에 대해 확인하는 것도 필요합니다.
  2. 데이터 수집 및 정제: 데이터가 이미 있다면 활용하면 됩니다. 이때 DB에서 SQL을 활용하여 필요한 데이터를 sorting 하게 되며 데이터가 잘 정리되었는지 정합석 평가를 거치게 됩니다. 만약 데이터가 없다면 직접 수집하는 과정을 거칩니다. 연구를 하게 되면 거의 대부분이 데이터가 없는 경우들이므로 데이터를 수집할 수 있는 방법론들도 공부할 필요가 있겠습니다.(크롤링 등)
  3. 탐색적 데이터 분석(EDA): 이 단계는 데이터 분석 전에 데이터가 얼마나 큰지, 분포는 어떤지 등 기초통계량을 검토하는 단계입니다. 강의에서는 나만의 EDA 프로세스를 구축하는 것이 데이터 사이언티스트로서의 역량과 직결된다고 합니다. 
  4. 피쳐 엔지니어링: 이렇게 구성된 인풋 데이터들은 여러 차원들을 가지고 있습니다. iris 데이터의 경우 폭, 넓이, 색 등 다양한 구분 기준들이 있겠죠.. 머신러닝 과정에서 중요한 특징(feature)들을 잡아내야 합니다. 이때 등장하는 개념이 차원의 저주입니다. 너무 많은 특징들을 대입하면 실제 예측력을 오히려 떨어질 수 있는데 이것을 우리는 overfitting, curse of dimenstionality라고 부릅니다. 통계학 측면에서는 다중공선성 문제들도 발생할 수 있고, 이를 방지하기 위해 변수들 간의 상관관계 분석 등을 수행합니다.
  5. 예측모델 개발 및 적용: feature vector를 활용하여 학습을 진행시킵니다. 문제 정의에 따라 방법론도 달라지고, 그 결과에 따라 잘 예측했는지 평가지표들도 소개됩니다. accuracy, AUC 등 다양한 평가지표들이 존재합니다. 해당 머신러닝 모델이 설정한 목표에 도달할 때까지 학습하도록 합니다.

완료된 머신러닝 모델은 그 자체로 끝나는 것이 아니라 지속적인 모니터링을 통해서 예측대상인 데이터의 패턴이 바뀌는지 체크해야 합니다. 또한 처음에 제기되었던 문제를 해결할 수 있는지 판단해야 하는 것도 매우 중요합니다. 이러한 과정을 머신러닝 모델 사이클이라고 표현하며 이러한 과정을 도와주는 오픈소스 라이브러리도 있다고 합니다.(MLFlow)

 


 

마무리

배우다 보니 어느덧 1주 차가 지나갔습니다. 데이터 분석에 대한 흥미와 욕구가 마구마구 샘솟고 있는데 이 마음가짐을 지속적으로 유지할 수 있도록 여러 번 복습하여 익숙해지도록 노력 하겠습니다. 읽어주셔서 감사합니다.

 

 

반응형

댓글