앎을 경계하기

Machine Learning/Statistics

탐색적 데이터 분석 (EDA) - 데이터 종류와 대푯값

양갱맨 2024. 1. 2. 00:00

보통 처음 데이터가 주어지면 데이터의 유형, 분포 등 데이터에 대해 탐색하는 작업을 수행한다.

이것을 Exploratory Data Analysis, 탐색적 데이터 분석 (EDA)라고 한다.

데이터를 얻게되면 쓸모있는 데이터 외에도 무의미한 정보들이나 이상치 등 다양한 데이터들이 함께 존재한다.

그래서 데이터를 활용하기 위해 어떻게 전처리할 것인지 기준을 세우고, 변환하는 과정을 하는 것이 중요한 작업이다.

먼저, 원시 데이터를 가공하여 정형 데이터로 변환하는 작업을 한다.


정형 데이터의 종류

  • 1. 수치형 데이터
    • 연속형 : 일정 구간 내 어떤 값이든 가질 수 있는 변수
    • 이산형 : 정수 값을 갖는 변수
  • 2. 범주형 데이터
    • 이진형 : True/False, 0 또는 1 등 둘 중 하나의 값을 갖는 변수
    • 순서형 : 평점처럼 범주 내 값들이 순위를 가지고 순서대로 나타나는 변수

우리가 접하는 데이터 중 대부분은 테이블 데이터이다.

공부할 때 사용하는 예제 데이터(csv, xlsx)나 회사에서 사용하는 DB, 스프레드 시트 데이터들이 모두 테이블 데이터이다.

테이블 데이터는 행(row,레코드)과 열(column,속성)로 이뤄진 2차원 행렬이다.

예를 들면, 인덱스, 이름, 나이, 성별, 주소 각각이 속성명으로 feature가 된다.

레코드는 1, 홍길동, 19, 남, 서울 강북구 이 한 줄이 레코드이다.

테이블 구조에 대해 좀 더 알고 싶다면, 데이터베이스 관련 도서나 영상을 찾아보면 공부가 될 것이다.

보통 문자열, 숫자, 이진형 변수는 테이블 데이터로 구성하여 사용한다.

그렇다면 테이블 형태로 구조화되지 않는 데이터는 뭐가 있을까?

사실 구성하기 나름이긴 하지만..

그래프 구조나 공간 데이터 등은 다른 방식으로 구성이 되기도 한다.

하지만 나는 그래프나 공간데이터를 다뤄본 적이 없어서,, 어떻게 구성되어있는지 예시는 잘 모르겠다.

그래프는 vetex, edge로 구성된 데이터겠지..?


정형화된 데이터를 얻었으면, 그 다음은 뭘 해야될까?

바로 각 feature의 type value를 찾는 것이다.

type value는 대부분의 값이 위치하는 중심경향을 나타내는 추정값을 말한다.

예시로, "너 보통 유튜브 보는 시간이 얼마나 돼?" 라는 질문에 "평균 한 40분?" 이라는 대답을 한다면,

유튜브 시청시간(feature)의 type value는 40분이다.

그럼 모든 특성들의 대푯값은 평균으로 구하면 되지 않을까? 라고 생각할 수도 있지만

그렇지 않다.

한 반에 10명의 학생들의 몸무게가 [40, 42, 44, 46, 47, 50, 32, 44, 78, 80] 이렇게 있다면,

평균은 (40+42+44+46+47+50+32+44+78+80) / 10 = 50.3이 된다.

40kg대의 학생들이 과반수를 차지하고 있음에도 불구하고 78, 80kg의 학생들의 영향으로 평균 몸무게가 50kg가 된다.

평균은 극단값의 영향을 받기 때문에 무조건 평균을 대푯값으로 사용하는 것은 좋은 방법이 아니다.

주로 사용하는 대표값

  • 평균값
    • 모든 값의 총합 / 값의 개수
  • 중간값
    • 데이터를 정렬했을때 한 가운데에 위치하는 값, 짝수개라면 중간 값 2개의 평균값으로 한다.
    • 가중평균처럼 가중중간값을 사용하기도 하고, 중간값은 극단값이 있는 데이터에서는 평균보다 유용하다.
      중간값은 평균처럼 쉽게 변하지 않기 때문에 robustness 특성이 있다.
  • 최빈값
    • 가장 자주 나오는 값, 평균이나 중간값이 의미가 없는 질적 자료의 대표값을 선정할 때 자주 사용한다.
  • 사분위수
    • 데이터를 같은 갯수로 4개의 그룹으로 나누는 기준 값
    • 사분위수를 이용해 이상치를 제거하기도 한다.
      이건 좀 중요해서 나중에 더 자세히 정리할 예정
      https://towardsdatascience.com/understanding-boxplots-5e2df7bcbd51
  • 백분위수
    • 데이터를 정렬해서 x%인 값
  • 절사평균
    • 크기 순으로 정렬하고 양 끝에서 일정 개수의 값들을 삭제하고 나서 평균을 구한다.
      절사평균은 극단값을 제거한다는 장점이 있지만, 데이터가 많지 않은 경우에는 사용하기 어려운 평균이다.
  • 가중평균
    • 각 값에 가중치를 곱한 값들의 총합을 가중치의 총합으로 나눈 평균
  • 기댓값
    • 얻을거라고 기대하는 값의 평균
    • 가능한 값 * 확률의 합계
    • 기댓값은 평균과 같다고 볼 수 있는데, 식을 써놓고 보면 확률변수가 얻는 값의 가중평균으로 계산할 수 있다.
      이해가 잘 안간다면 https://hsm-edu.tistory.com/1233 이 포스팅 추천!