시리즈
판다스에서 1차원 데이터를 담는 시리즈 자료형을 제공한다. 1차원 데이터 배열, 인덱스와 값을 가지는 데이터 구조. 시리즈는 열 단위로 데이터를 다루는 데이터프레임에서 각 열을 나타내는 자료형
- 데이터를 일련의 레이블(인덱스)에 매핑합니다.
- NumPy 배열과 비슷한 구조이나, 인덱스를 사용하여 각 데이터에 접근할 수 있습니다.
- 데이터의 순서가 보장됩니다.
예시
`import pandas as pd`
# 데이터와 인덱스를 지정하여 시리즈 생성
s = pd.Series(\[1, 2, 3, 4\], index=\['a', 'b', 'c', 'd'\])
print(s)
결과
a 1
b 2
c 3
d 4
dtype: int64
백터
2차원 배열이며 다음과같이 예시를 들 수 있습니다.
벡터는 순서쌍(order pair)의 모음으로 이루어진 집합으로 생각할 수 있습니다.
예를 들어, 다음과 같은 2차원 벡터 A와 B가 있다고 해봅시다.
A = (3, 4)
B = (1, 2)
이 벡터들은 아래와 같이 좌표평면에서 나타낼 수 있습니다.
(1, 2)
B
|
|
|
|
|
(3, 4)------A
여기서 첫 번째 원소를 x좌표, 두 번째 원소를 y좌표라고 생각하면, 이 벡터들은 각각 (3, 4), (1, 2)라는 좌표를 가진 점으로 이루어져 있습니다. 이 점들은 각각 수직선과 수평선이 교차하는 지점으로 생각할 수 있습니다.
2차원 벡터는 이와 같은 좌표를 가지고 있기 때문에, 평면 상의 여러 점들을 다루는 문제에서 많이 활용됩니다. 2차원 벡터는 다음과 같은 연산이 가능합니다.
- 벡터의 덧셈: 두 벡터의 대응되는 원소를 더한 후 새로운 벡터를 생성합니다.
A + B = (3+1, 4+2) = (4, 6)
- 벡터의 뺄셈: 두 벡터의 대응되는 원소를 뺀 후 새로운 벡터를 생성합니다.
A - B = (3-1, 4-2) = (2, 2)
- 벡터의 내적: 두 벡터의 대응되는 원소를 곱한 후, 그 결과들을 모두 더합니다.
A · B = 3_1 + 4_2 = 11
- 벡터의 외적: 두 벡터의 대응되는 원소를 곱하여 새로운 벡터를 생성합니다. 이 때 생성된 벡터는 두 벡터가 이루는 평행사변형의 면적을 나타냅니다.
A x B = 3_2 - 4_1 = 2
백터의 내적과 외적의 활용 분야
백터의 내적과 외적은 여러 분야에서 활용됩니다.
백터의 내적은 두 백터의 각 성분을 곱한 후 모두 더한 것으로, 두 백터가 이루는 각도에 대한 정보를 가지고 있습니다. 이를 활용하여 코사인 유사도(cosine similarity)를 계산할 수 있습니다. 코사인 유사도는 자연어 처리 분야에서 문서 간 유사도를 계산하거나 추천 시스템에서 아이템 간 유사도를 계산하는 등 다양한 분야에서 사용됩니다.
백터의 외적은 두 백터가 이루는 평면에 수직인 백터를 반환합니다. 이를 활용하여 면적이나 부피를 계산하는 데 사용됩니다. 예를 들어, 두 개의 벡터의 외적을 통해 얻은 벡터는 이루는 평면의 면적을 나타내는데, 이를 이용하여 삼각형의 넓이나 사변형의 면적을 계산할 수 있습니다. 또한, 물리학에서는 토크나 각운동량 등을 계산하는 데에도 활용됩니다.
코사인 유사도?
코사인 유사도는 두 벡터간의 유사성을 비교하기 위한 방법 중 하나입니다. 주로 자연어 처리 분야에서 문서나 문장 등을 비교하는 데 사용됩니다.
코사인 유사도는 두 벡터간의 각도를 이용하여 유사성을 계산합니다. 두 벡터가 이루는 각도가 작을수록(즉, 벡터가 서로 가까울수록) 코사인 유사도 값은 1에 가까워지고, 두 벡터가 이루는 각도가 커질수록(즉, 벡터가 서로 멀어질수록) 코사인 유사도 값은 0에 가까워집니다.
두 벡터 a, b 각각의 크기를 ||a||, ||b||라고 할 때, 코사인 유사도는 다음과 같이 계산됩니다.
cosine similarity = (a • b) / (||a|| ||b||)
여기서 '•'는 내적(dot product)을 나타냅니다. 코사인 유사도의 값은 -1에서 1까지의 범위를 가지며, 1에 가까울수록 유사하다는 의미입니다.
자연어 처리 분야에서는 코사인 유사도를 이용하여 문서간 유사도를 비교하거나, 검색 엔진에서 검색어와 문서 간의 유사도를 계산하는 등 다양한 용도로 활용됩니다.
cosine similarity = (a • b) / (||a|| ||b||)에 대한 예제
cosine similarity = (a • b) / (||a|| ||b||)
여기서 a와 b는 두 벡터를 나타내며, ||a||는 벡터 a의 크기(노름), ||b||는 벡터 b의 크기(노름), 그리고 •는 두 벡터의 내적(dot product)을 나타냅니다.
간단한 예를 들어보겠습니다. 벡터 a = [3, 2]와 벡터 b = [1, 4]가 있다고 가정해 봅시다. 이 때, 각 벡터의 크기는 다음과 같이 계산됩니다.
||a|| = sqrt(3^2 + 2^2) = sqrt(13) = 3.6055
||b|| = sqrt(1^2 + 4^2) = sqrt(17) = 4.1231
두 벡터의 내적(dot product)은 다음과 같이 계산됩니다.
a • b = (3 x 1) + (2 x 4) = 11
따라서, 두 벡터 간의 코사인 유사도(cosine similarity)는 다음과 같이 계산됩니다.
cosine similarity = (a • b) / (||a|| ||b||) = 11 / (3.6055 x 4.1231) = 0.732
결과적으로, 벡터 a와 벡터 b 간의 코사인 유사도는 약 0.732가 됩니다. 이 값은 -1부터 1까지의 범위를 가지며, 1에 가까울수록 두 벡터가 서로 유사하다는 것을 의미합니다.
sqrt는 제곱근을 의미합니다.
'데이터 분석' 카테고리의 다른 글
생성형 AI. 앞으로는 어떻게 될까? (2) | 2024.01.25 |
---|