Data Science 큰 그림

이수진·2024년 4월 5일
0
post-custom-banner

데이터 과학의 로드맵은 다음과 같다.

  1. 모델 수립 및 분석 단계에 있다가도 문제 파악 단계로 옮겨갈 수 있다.
    • 지금 푸는 문제가 잘 정의된 실제로 의미있는 문제인지 계속 고민해야 한다.

  2. 결과정리 및 발표와 코드 배포 두가지 방법으로 나뉠 수 있다.
    • 둘다 하는 경우도 있다!
    • 최종 목적이 무엇인지 고려하며 일해야 한다!

    1. 주 고객이 사람이라면 -> 슬라이드나 문서 형태로 결과를 전달한다.
      • 주식급등 요인 알아내기
      • 고객 유형 분류 및 특징 파악
      • 웹사이트 트래픽 분석 및 예측

    2. 주 고객이 컴퓨터라면 -> 데이터 분석 코드를 구현해 배포한다.
      • 고객에게 어떤 광고 보여줄지 결정하기
      • 자동으로 데이터 분석하고 결과 보고서 작성하기

문제 파악

사업 면에서 어떤 문제가 있는지 파악하고, 어떻게 공학적으로 풀 수 있는지에 대해 정의한다.

  • 상황에 맞는 정확한 질문을 찾아내는 능력을 갖추어야 한다
  • 어떤 기능을 하는 프로그램을 만들지가 중요
  1. 고객이 사람이라면
    • 서비스의 문제점을 정확히 파악하고 있지만 해결방법을 찾지 못해서 데이터 분석하는 경우
    • 서비스의 문제점을 파악하는 것이 목적인 경우
  2. 고객이 컴퓨터라면
    • 이 프로젝트의 끝을 어떻게 정의할 것인가?
    • 성능은 어느정도의 수준이 나와야 하는가?
    • 어떤 조건을 만족해야 성공이라고 하는가?

규모가 큰 프로젝트라면 요구사항과 목표를 문서화해야 한다!

  1. 외부에서 회사에 자문을 하는 경우 -> 작업기술서
  2. 회사 내부에서 일하는 경우 -> 프로젝트 요구사항 문서

요구사항 문서에 들어가야 할 내용
해결해야 할 문제들이 모호한 경우가 있다

  • 어떤 문제가 있고
  • 여러 문제 중 어떤것이 가장 중요하며
  • 실제로 어느정도 해결이 가능한지

차후에 문서화한 프로젝트 요구사항을 수정하기도 한다.

데이터 분석 및 이해

실제로 데이터를 들여다 보며 문제 해결에 필요한 정보가 있는지, 어떻게 활용할지 알아낸다.

데이터 종류와 관계 없이 확인해야 하는 보편적 질문
1. 데이터 셋의 크기는?
2. 주어진 데이터가 일부인지, 전체인지
3. 이 데이터가 모집단을 잘 대표하는지?
4. 이상치나 잡음이 심하지 않은가?
5. 원본 데이터가 아닌 임의 가공 데이터가 포함되어 있는가?
6. 데이터별 식별자가 존재하는가?
7. 식별자가 잘 설정되어 있는가? (중복이 있는가?)
8. 두 데이터를 합쳐야 하는 경우 같은 종류의 데이터 셋인가?
9. 누락된 데이터 표본이 있다면 왜 누락되었는가?

여기서 가장 중요한 문제는 "이 데이터로 주어진 문제를 풀 수 있는가?"
처음부터 주어진 적절한 데이터가 있는지를 찾아봐야 한다.

전처리

원본 데이터를 분석에 사용하기 좋은 형태로 바꾸자!

  1. 전처리 프로그램 구현
  2. 전처리 프로그램으로 데이터 불러오기
  3. 불필요한 데이터 걸러내기
  4. 원하는 형태로 변환하여 분석에 적합한 형식으로 저장하기

-> 데이터 전처리는 통계학자와 구별되는 데이터 사이언티스트의 고유 업무!

전용 데이터베이스를 사용해 필요한 값을 저장한다.
데이터의 규모가 크고 복잡할수록 전처리 과정도 복잡해진다.
-> 따라서 깔끔하고 효율적인 프로그램을 구현하는 능력이 중요하다!

  1. 문자열 데이터는 편집기를 써서 직접 살펴본다
  2. 특정 도구를 사용하는 경우 잘 작동하는지 확인한다 (csv파일이 잘 열리는지, 누락은 없는지)
  3. 히스토그램이나 산포도를 그려서 정말 말이 되는 분포인지 확인한다
  4. 이미 정답을 알고있는 문제를 푸는 코드를 짜서 그 결과가 정답과 일치하는지 확인한다.

EDA

시각화, 다양한 변환을 통해 데이터를 확인한다.

  • 데이터의 직관 키우기
  • 시각화를 통해 데이터가 어떻게 이루어져 있는지, 어떤 성질이 있는지 가설 세우기

특징값 추출

특징값을 추출하는 과정은 날것 그대로의 데이터를 가공해 그 값을 표에 저장하는 일

각 행이 각 데이터 표본 하나, 열마다 다른 종류의 데이터 저장
예를 들어 이미지, 웹페이지, 음성은 각기 다른 특성을 가지고 있어 특징값의 의미와 추출 방법이 다르다.
또는 스스로 특징값을 만들어야 하는 경우도 있다.


모델 수집 및 분석

머신러닝 모델을 사용해 분석하자!

  1. 고객의 충성도를 0~1 값으로 나타내고자 한다면 -> 회귀 모델 사용
  2. 다양한 고객을 몇가지 범주로 분류한다면 -> 군집화 모델 사용

결과 정리 및 발표

고객이 사람이라면 -> 슬라이드, 보고서
고객이 컴퓨터라면 -> 코드, 보고서

코드배포

  1. 배치 분석 코드
    • 가지고 있는 전체 데이터를 한번에 분석하는 코드
  2. 실시간 분석 코드
    • 데이터를 실시간으로 추가해 분석하는 코드
    • 일반적으로 전체 시스템의 모듈로 작동

코드 배포 시 필요한 결과물
1. 결과 코드
2. 코드 실행 시 필요한 도움말 문서 (readme/주석)
3. 결과 코드 검증 위한 시험 코드


반복작업

  1. 데이터에 대한 직관이 생길때까지 산포도, 히스토그램을 그려보고 간단한 특징값을 사용해 작동하는지 확인한다.
    • 현 데이터로는 애초에 풀 수 없는 문제일수도 있다
  1. 모든 실험을 명령어 하나로 실행할 수 있도록 분석을 자동화하는 스크립트 만들기
  1. 단계별로 코드를 나누고 내부 단계에서도 여러 기능을 모듈화하라
profile
뇽안
post-custom-banner

0개의 댓글