1. 벡터
크기와 방향을 함께 가지는 양을 벡터라고 정의합니다.
x = [1, 2, 3] 과 같은 형식을 하고 있습니다.
파이썬에서 벡터는
x = numpy.array([1,2,3]) 으로 표현할 수 있습니다.
벡터안에 수 즉, x=[1,2,3] 에서 1,2,3을 벡터 x의 성분이라 부릅니다.
이 성분의 개수만큼 벡터의 차원이 결정됩니다.
x = [1,2,3] 은 3차원 벡터라고 할 수 있겠습니다.
벡터의 특징은 같은 차원의 벡터끼리 덧셈, 뺄셈, 성분곱을 할 수 있습니다.
x = [1,2,3] / y = [4,5,6] 일때
x + y = [1+4, 2+5, 3+6 ] -> [5, 7, 9]
x - y = [1-4, 2-5, 3-6] -> [-3, -3, -3]
x * y = [1x4, 2x5, 3x6] -> [4, 10, 18]
또한 벡터에 임의의 수를 곱할 수 도 있습니다.
x * 2 = [1x2, 2x2, 3x2] -> [2, 4, 6]
하지만 만약 다른 차원의 벡터에 연산을 수행한다면 에러가 발생합니다.
2. 노름(norm)
벡터의 노름은 쉽게 원점으로부터의 거리라고 생각하시면 됩니다.
벡터의 노름에는 L1노름과 L2노름이 있습니다.
L1노름은 각 성분에 대한 변화량의 절댓값을 합한 것을 의미합니다.
즉 x = [1,2,3] 일때
L1노름은 |1| + |2| + |3| = 6 이 됩니다.
x = [3, 4]인 벡터의 L1노름을 파이썬으로 구해보겠습니다.
np.abs는 값을 절댓값으로 변환해주는 numpy 함수입니다.
|3|+|4| = 7이 출력되는 모습을 볼 수 있습니다.
L2노름은 유클리드 거리를 계산한 것을 뜻합니다.
즉 x= [3,4] 일때
|3|^2 + |4|^2 = 9 + 16 = 25
25의 제곱근인 5가 L2노름이 됩니다.
np.sqrt는 제곱근을 구하는 numpy 함수입니다.
'머신러닝' 카테고리의 다른 글
[파이썬] 인공지능 수학 자연어 처리( BOW, DTM, TF-IDF ) (0) | 2023.04.04 |
---|---|
[파이썬] 두 벡터 사이의 거리 및 각도 (0) | 2023.03.29 |
[파이썬] 간단한 파이썬 크롤링 ( 전세계 축구 선수 몸값 분석) (0) | 2023.03.22 |
[파이썬] 타이타닉 데이터셋 생존자 예측하기 (0) | 2023.03.21 |
[파이썬] KNN 머신러닝 알고리즘을 사용해 도미와 빙어 구분하기 (0) | 2023.03.15 |