데이터를 분류한다는 것의 의미

허상범·2023년 9월 24일
0

Data Science

목록 보기
4/4

일단 데이터 리터러시는 기본적으로 각 컬럼이 정의된 상태에서, 각 컬럼에 비어있는 값이 하나도 없는 Tidy Data를 기준으로 설명하도록 한다.

하나의 데이터를 Row 하나라고 하면, 이 데이터에는 N개의 Feature가 맵핑되어 있는 것이다. 아주 간결하게 표현하면 Row 1개는 N차원 벡터이다. 차원의 수는 각 데이터가 갖고 있는 Feature(혹은 Factor, 변수 등 다양하게 표현 가능)의 수이다.

예를 들어, 5개의 Factor를 갖는 데이터가 하나 있다고 하자. 데이터가 설명하고자 하는 대상(객체)은 옷이라고 하자.

factors = ["order_date", "product_code", "product_type", "product_color", "price"]

이런 식으로 변수를 담아둘 컬럼을 정의했을 때, 이러한 데이터가 5개 있다고 해보자.

row 1 = ["2023-09-24", "2309_TOP", "TOP", "Black], "100000"]
row 2 = ["2023-09-24", "2309_Pants", "Pants", "Black], "90000"]
row 3 = ["2023-09-24", "2309_Pants", "Pants", "Black], "80000"]
row 4 = ["2023-09-24", "2309_TOP", "TOP", "White], "60000"]
row 5 = ["2023-09-24", "2309_TOP", "TOP", "White], "50000"]
`
이렇게 되면 일단 이 테이블은 5*5의 데이터프레임 또는 행렬 구조가 된다.

분류라는 것을 가장 직관적으로 설명하려면 "개별 데이터에 맵핑되어 있는 변수를 기준으로 전체 데이터를 정리하는 것"으로 말할 수 있겠다. 그리고 이 때, 각 변수 벡터가 갖고 있는 원소 수를 따라 분류하는 branch 수가 달라진다. 이게 바로 기본적인 데이터 분류의 구조이다.

위 row1 ~ row5가 주어진 데이터셋이라고 할 때 이들은 총 5가지 기준으로 분류가 가능한 것이다. 주문 날짜, 상품코드, 상품유형, 상품 색깔 , 상품 가격 이렇게 5개이다. 분류 기준은 다시 말하지만, 개별 데이터에 맵핑되어 있는 변수들이다. 그리고 분류되는 경우의 수는 이 변수들이 담고있는 원소 개수에 종속된다.

각 변수별로 Depth를 "한번만" 분류할 경우에 데이터셋의 가지수를 보자.

  1. order date : 날짜가 모두 23년 9월 24로 동일하므로 1가지 경우의 수로만 분류할 수 있다.
  2. product code : 상의와 하의, 2가지 카테고리 값을 담고 있기 때문에 2가지 경우의 수로 분류할 수 있다. (binary factor)
  3. product type : 마찬가지로, 상의와 하의 2가지 카테고리 값을 기준으로 하기 때문에 2가지 경우의 수로 분류 가능하다. (binary factor)
  4. color : 블랙과 화이트 2가지 값을 분류 카테고리로 담고 있기 때문에 2가지 경우의 수로 분류 가능하다.
  5. price : 각 상품의 가격은 모두 다르기 때문에 5가지로 분류가 가능하다. (총 5개의 데이터를 5가지로 분류하기 때문에 각 데이터는 모두 unique한 상태이다)

위와 같은 과정을 SQL 또는 Python에서는 "Group by"라고 한다. 특정 변수를 기준으로 데이터셋을 묶어주는(Group) 것이다.

그렇다면, N가지 변수로 동시에 분류한다면 어떨까? 예를 들어, color로 분류를 한번 하고, price별로 분류를 한번 더 하는 것이다. 그렇다면, 각 변수별로 A,B,C,D,E개의 값을 담고있다고 할 때 A x B x C x D xE라는 조합의 수 만큼 최종적으로 분류된다.

예를 들어보면, 2개의 원소를 담고 있는 Color 변수를 기준으로 먼저 분류하고, 5개의 원소를 담고 있는 Price를 기준으로 먼저 분류해보면 아래와 같은 데이터가 펼쳐질 것이다. (2*5개로 총 10개)

1st depth | 2nd depth
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
블랙 | 100000
블랙 | 90000
블랙 | 80000
블랙 | 60000 (값 없음)
블랙 | 50000 (값 없음)
화이트 | 100000 (값 없음)
화이트 | 90000 (값 없음)
화이트 | 80000 (값 없음)
화이트 | 60000
화이트 | 50000

이때, 값이 없는 행을 제외하면 엑셀에서 흔히보는 Pivot Table이 된다. 데이터를 집계하는 기본적인 방법이다.

profile
Engineering & Science, Since 2021 | Finance, Backend, Data

0개의 댓글