데이터분석 프로세스 2 - 데이터 분석 단계~결과 공유

Yoon1013·2023년 4월 12일
0

헬로 데이터과학

목록 보기
4/4
post-thumbnail

🧮 데이터 분석

📈 탐색적 데이터분석(Exploaratory Data Analysis)

데이터를 관찰하여 현상을 이해하는 단계
즉, 데이터를 통해서 뽑아낼 수 있는 모든 정보는 다 뽑아낸다고 생각하면 됨!

1) 왜 해야하는가

  • 분포, 데이터 값 검토를 통한 현생 이해 혹은 문제점 찾기
    ex) bias가 존재하는가? 결측치가 있는가? 특이값이 있는가 등등
  • 데이터를 다시 수집할지 또는 추가 수집할지 결정
  • 데이터에서 패턴을 발견
    →가설을 수정하거나 새로운 가설을 도출할 수 있다

최대한 다양한 내용을 찾아야 한다

2) 무슨 정보를 찾아야 하나?

  • 데이터를 전체적으로 살펴보고
  • 데이터 개별 속성값을 관찰하고
  • 속성간 관계가 있는지 관찰한다

3) 그니까 어떻게 하냐는 거다

  • 원본 데이터 자체를 관찰한다
  • 요약 통계를 활용한다
  • 시각화를 활용한다

4) 절차

1️⃣ 데이터 개관

내가 읽어온 데이터에 문제가 없는지 살펴보는 것

  • 일단 데이터를 제대로 불러왔는지 본다
    ex) df.head(5) / df.tail(5)
  • 데이터 형이 무엇인지 본다
    ex) 수치형, 카테고리형, object형 등등
  • null값(결측치)가 있는지 본다
    ex) isnull().sum()

2️⃣ 속성 분석하기

  • 데이터의 분포가 어떻게 되는지
  • 이상값(outlier)가 있는지
  • 시각화
    ex) 확률밀도함수, scatter plot 등등
  • 통계값 활용
    ex) 평균, 중앙값, 분산 등등

3️⃣ 속성간 관계 분석

A속성과 B속성이 어떤 관계가 있는지
업로드중..

🛑 주의!

데이터를 편견을 갖고 보지 말자!
예를 들어 내 주관을 개입시키거나 "상식"이라고 생각되는 내용을 배제하고 봐야 한다!

🔎 통계적 추론

탐색적 데이터 분석에서 다룬 데이터는 일종의 표본(sample)이다
따라서 전체 모집단(population)에 대한 추론이 필요하다!
일정 정도의 오류 가능성을 인정한다는 것에 주의할 것

🔐 모수적 방법(parametic method)

  • 표본이 생성된 과정에 대한 확률 분포를 알고 있거나 추측 가능할 때
    ex) 정규분포/이항분포 등
  • 무슨 소리냐면 모수에 대한 정보를 알고 있는 것!
  • 중심극한 정리 등을 이용가능!

🔒 비모수적 방법

대표적인 방법으로 표본 재추출법(re-sampling)

  • 내가 갖고 있는 데이터가 (표본이지만) 모집단이라고 생각하고 여기서 표본을 여러개 만들어서(무작위 추출+복원추출) 통계값의 분포를 만든다
  • 장점) 평균 외에도 중간값 등의 다른 통계값의 분포를 만들어낼 수 있다
  • 단점) 계산량이 많다

🤖 기계학습

통계에서 나아가 예측을 할 때!
함수(function)을 컴퓨터가 찾게 하자!
"학습 모델"을 만드는 일

👩‍🏫 지도학습(supervised learning)

  • 예측 목표(y값, 정답)을 알고 있는 경우
  • 대표적인 예로 회귀분석
  • clustering도 지도학습이 될 수 있음
    ex) 이메일을 업무/개인/광고로 분류할 때

🙅‍♀️ 비지도학습, 자율학습(unsupervised learning)

  • 예측 목표를 모르는 경우

🌲 앙상블 학습법

  • 알고리즘을 여러개 쓰면 더 정확해지는거 아니냐?!
    ex) Boosting, Bagging

♾️ 기계학습 절차

1️⃣ 학습 기법 결정

  • 자료의 특성과 문제에 맞게 적절한 알고리즘 결정하기
    ex) y값을 알고 있으니 선형 회귀를 사용하자

고려사항
1) 문제의 특성에 따라

  • 정답이 있으면 지도학습/없으면 비지도학습
  • 예측값이 수치형인가 카테고리 형인가

2) 주어진 데이터 특성

  • 앙상블 알고리즘을 사용해도 될 만큼 충분한 데이터 양이 되는가?

3) 모델의 용도

  • 결과가 중요한가? 아니면 모델 자체가 중요한가?

2️⃣ 학습 모델 만들기

1) training/test set 만들기

  • train_test_split()
  • 주로 train:test가 7:3 ~ 5:5
  • 만약 데이터가 충분하지 않다면 그룹을 n개로 나누고 n-1개 그룹으로 학습, 1개로 검정
    그룹을 돌아가면서 검정

2) 모델 만들기

  • 평가 지표(RMSE, Accuracy) 등을 이용하여 모델 성능 평가

🎤 결과 공유

데이터분석은 속성 추출, 표본 추출 등을 통해 이루어진 현상의 불완전한 반영이다
따라서 여러 사람들과의 분석 결과 공유 및 정보 공유를 통해 보완해 나아가야 한다

profile
Data Science & AI

0개의 댓글