데이터와 행렬
2024. 9. 2. 12:30ㆍ카테고리 없음
1. 데이터 유형
스칼라 (Scalar)
- 정의: 하나의 숫자 데이터. 예를 들어, 특정 붓꽃 한 송이의 꽃잎 길이를 5.1cm로 측정한 경우, 이 숫자 5.1이 스칼라다.
- 표기: 보통 소문자 알파벳 x로 표기하며, 실수 집합 의 원소임을 나타내기 위해 x∈R이라고 쓴다.
벡터 (Vector)
- 정의: 여러 개의 숫자가 특정한 순서로 모여있는 데이터. 예를 들어, 붓꽃의 꽃받침 길이, 꽃받침 폭, 꽃잎 길이, 꽃잎 폭을 측정한 값들이 하나의 벡터가 된다.
- 표기: 보통 소문자 알파벳 x\mathbf{x}로 표기하며, 벡터의 원소들을 세로로 배열한다.
- 차원: 벡터의 원소 개수를 차원(dimension)이라 하며, NN-차원 벡터 x\mathbf{x}는 x∈RN\mathbf{x} \in \mathbb{R}^N으로 표기한다.
- 예시: 붓꽃의 크기 벡터

는 4차원 벡터이며

로 나타낼 수 있다.
행렬 (Matrix)
- 정의: 여러 벡터들이 모인 2차원 데이터 구조. 행렬은 데이터 레코드가 여러 개 모인 형태로, 복수의 벡터를 모아놓은 것이다.
- 표기: 보통 대문자 X\mathbf{X}로 표기하며, 행렬의 각 원소는 두 개의 첨자를 사용해 xijx_{ij}로 나타낸다. 여기서 ii는 행(row), jj는 열(column)을 의미한다.
- 크기: 행렬의 크기는 M×NM \times N으로 나타내며, 이는 MM개의 행과 NN개의 열이 있음을 의미한다.
- 예시: 6송이 붓꽃에 대해 꽃받침과 꽃잎의 길이와 폭을 측정한 데이터를 행렬로 나타내면

가 되며, 이는 6×46 \times 4 크기의 행렬이다.
텐서 (Tensor)
- 정의: 다차원 배열로, 여러 행렬이 모여있는 데이터 구조. 텐서는 수학적으로는 다차원 사상(mapping)으로 정의되지만, 데이터 과학에서는 주로 다차원 배열로 사용된다.
- 예시: 3개의 RGB(빨강, 초록, 파랑) 채널을 가진 컬러 이미지는 768×1024768 \times 1024 크기의 행렬이 3개 모여있는 형태로, 이는 768×1024×3768 \times 1024 \times 3 크기의 3차원 텐서다.
2. 선형대수 연산
전치 연산 (Transpose)
- 정의: 행렬의 행과 열을 뒤바꾸는 연산. 벡터나 행렬의 전치 행렬(transpose matrix)은 원래의 행렬에서 행과 열이 교환된 것이다.
- 표기: A\mathbf{A} 행렬의 전치 행렬은 AT\mathbf{A}^T로 표기한다.
- 예시: X\mathbf{X} 행렬이 6×46 \times 4 크기라면, 전치 행렬 XT\mathbf{X}^T는 4×64 \times 6 크기가 된다.
특수한 벡터와 행렬
- 영벡터 (Zero Vector):
- 모든 원소가 0인 벡터

로 나타낸다.
-
- 넘파이에서 np.zeros((N, 1))으로 생성할 수 있다.
- 일벡터 (One Vector):
- 모든 원소가 1인 벡터.

로 나타낸다.
- 정방행렬 (Square Matrix):
- 행의 수와 열의 수가 같은 행렬. 예를 들어, 3×33 \times 3 행렬은 정방행렬이다.
- 대각행렬 (Diagonal Matrix):
- 대각선 성분을 제외한 모든 원소가 0인 행렬. 예를 들어

- 넘파이에서 np.diag([d1, d2, d3])로 생성할 수 있다.
항등행렬 (Identity Matrix):
- 대각행렬 중에서도 모든 대각 성분이 1인 행렬. 예를 들어

넘파이에서 np.identity(N) 혹은 np.eye(N)으로 생성할 수 있다.
- 대칭행렬 (Symmetric Matrix):
- 전치 연산을 통해 얻은 행렬이 원래의 행렬과 동일한 경우, 대칭행렬이라 한다. 예를 들어, ST=S\mathbf{S}^T = \mathbf{S}.
- 대칭행렬은 항상 정방행렬이다.
3. 넘파이와 맷플롯립
- 넘파이 (NumPy):
- 선형대수 계산을 돕는 파이썬 라이브러리. 벡터, 행렬, 텐서와 같은 다차원 배열을 다루는 데 특화되어 있다.
- 배열 생성, 수학적 연산, 행렬의 전치, 대각화 등 다양한 연산을 손쉽게 수행할 수 있다.
- 예를 들어, np.array([[11, 12, 13], [21, 22, 23]])은 2×32 \times 3 행렬을 생성한다.
- 맷플롯립 (Matplotlib):
- 데이터를 시각화하는 파이썬 라이브러리. 데이터를 차트나 그래프로 표현하는 데 사용된다.
- 예를 들어, plt.imshow(digits.images[0])는 숫자 이미지 데이터를 시각화할 때 사용된다.