플로라도의 data workout
데이터의 차원이 뭔가요? 본문
데이터 특성(feature)의 차원
일반적으로 데이터의 차원은 각 개별 데이터 포인트(샘플)이 가지고 있는 특징의 수를 이야기한다.
예를 들어, 머신러닝 입문단계에서 가장 흔히 접할 수 있는 정형 데이터(tabular)중의 하나인 iris 데이터셋의 경우
각 데이터 포인트는
- Id
- SepalLengthCm (꽃받침 길이)
- SepalWidthCm (꽃받침 너비)
- PetalLengthCm (꽃잎 길이)
- PetalWidthCm (꽃잎 너비)
- Species
에 해당하는 값을 갖고 있고, 이들 중 "Id"와 타겟값인 "Species"를 제외한 [SepalLengthCm, SepalWidthCm, PetalLengthCm, PetalWidthCm] 의 4가지 칼럼은 각 개별 데이터 포인트를 구성하는 4가지의 특성,특징(feature)이 되겠다.
즉, Iris dataset은 4차원의 특징공간(feature space)을 갖고있다.
데이터의 구조적 차원 (shape)
이번에는 딥러닝의 입문단계에서 접할 수 있는 MNIST 데이터의 예시를 들어본다.
MNIST 데이터의 trainset은 (60,000, 28, 28) 로 구성되어있는데, 이는 각 batchsize * height * width을 나타낸다.
각 개별 데이터 포인트는 위의 그림 처럼 height*width의 , 28*28의 특징공간을 갖고 있는 것을 알 수 있다.
각 특징공간은 0~255의 픽셀값으로 구성되며 총 784차원으로 표현된다.
이러한 데이터의 구조적 차원을 데이터의 shape이라고 표현한다.
MNIST와 같은 gray-scale의 이미지를 제외한, 대부분의 컬러 이미지는 이러한 구조에 channel이라는 하나의 구조적 공간을 더 추가한 (channel*height*width)형태의 shape을 띄게 된다.
RGB 3채널의 512*512 해상도를 가진 이미지라면, (3,512,512) 와 같은 shape으로 표현되는 것이다.
아래의 그림이 이러한 데이터의 구조적 차원을 잘 설명하고 있다.
벡터의 모임이 매트릭스가 되는 것처럼, 매트릭스의 모임이 3D텐서가 된다.
또한 3D 텐서의 모임이 4D 텐서가 된다.
대부분의 2D 이미지를 다루게 되면 batch * channel * height * width 구조의 4차원 shape을 다루게 되고
2D 동영상을 다루게되면 batch * time * channel * height * width 구조의 5차원 shape을 다루게 된다.
만약 3D 동영상을 다루게되면 z축이 추가된 6차원의 shape , 6D Tensor를 다루게 될것이다.
'데이터의 shape'을 한국말로 번역하면 데이터의 모양 내지는 데이터의 형상이 되는데, 어색해서 그런지 대부분 'shape' 이라는 표현으로 이야기 하는 것 같다. 'shape'표현에 익숙해져 있다가, 가끔 데이터의 '차원'이라고 사용될때면 혼동이 올 수 있는데, 헷갈리지 않도록 주의하자.
정리
정리하자면 Iris 데이터셋은 2차원 정형데이터(tabular)에 4차원의 특징공간을 가진 정형 데이터이며
손글씨 데이터셋인 MNIST데이터셋은 이미지의 집합으로 이루어진 784(28*28)차원의 특징공간을 가진 비정형 데이터이다.
'기초 노트 > MachineLearning' 카테고리의 다른 글
Stacking과 Blending의 차이 설명 (3) | 2024.03.06 |
---|---|
원-핫 인코딩의 모든 것(feat.OneHotEncoder vs pd.get_dummies) (1) | 2024.03.05 |
편향(Bias)와 분산(Variance) 그리고 Bias-Variance Decomposition (1) | 2024.02.16 |
Loss Function vs Cost Function vs Objective Function은 무슨 차이 인가요? (0) | 2023.07.01 |
경사하강법 (gradient desecent) vs 뉴턴-랩슨 방법 (Newton–Raphson method) (0) | 2023.07.01 |