[데이터분석의 기초] 선형대수 1탄 - 벡터의 기초 핵심만!

YJ_Slog·2024년 10월 12일

선형대수

목록 보기
1/3
post-thumbnail

안녕하세요~!! 이번에는 새로운 포스팅을 적어보려 합니다!
데이터분석에서 가장 중요한 부분 중 하나가 numpy를 다룰줄 아는 능력인 것 같아요! 결과가 np.array([]) 막 이런식으로 나오는 경우도 많아서 중요한 것 같습니다.
그래서 오늘은 그 numpy의 기초! 행렬과 벡터에 관한 얘기를 교수님이 해주신 핵심 수학에 틀을 두고 얘기해보겠습니다!


선형대수란?

선형대수학이란 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야

라고 합니다! 하지만 너무 방대하고 다 외워야 돼? 이런생각이 드시죠!
그래서 이번 챕터는 그 중 기초들만 훑고 넘어가고자 합니다.
선형대수 파이썬 챕터에서 실습을 하는게 더 중요하니까요!!

선형대수의 필요성

① 주어진 데이터를 어떤 공간에 표현하는 것을 말합니다.
② A대학교 학생의 여러 속성들을 여러 학생들에게 일반화 시키기
③ 2번의 내용을 행렬로 표현한게 선형대수입니다.

1. 벡터

정의

벡터 : 크기와 방향을 가지고 있는 양의 개념 (크기 + 방향)
스칼라 : 방향이 없는 물리적인 양 (only 크기)

표현과 차원


이렇게 표현하고 v1과 v2를 벡터의 성분이라고 표현하며
다음과 같이 2개의 벡터로 이뤄져 있는 벡터를 2차원 벡터 3개면 3차원 벡터 이렇게 말합니다. 즉, 벡터의 차원은 성분의 개수를 의미합니다.

벡터의 연산

벡터의 연산은 파이썬 코드로 보겠습니다.

import numpy as np

list1 = [1,3,2]
list2 = [5,3,7]
v1 = np.array(list1)
v2 = np.array(list2)
scaler = 5

print(v1)
print(v1 + v2)
print(v1-v2)
print(v1 * scaler)

해당 코드의 결과는 아래와 같습니다.

[1 3 2]
[6 6 9]
[-4  0 -5]
[ 5 15 10]

벡터간 덧셈과 뺄셈은 성분간 덧셈 뺄셈이며,
벡터와 스칼라 곱은 스칼라가 각 성분에 곱해지는 특징이 있습니다.

각각 그래프로 한번 보자면~

벡터의 덧셈

벡터의 곱셈

양의 방향 혹은 음의 방향으로 스칼라 곱만큼 가는 것

이들의 공통점은 위치로 표시된다는 것입니다. 무슨 말이냐~ (a,b,c)처럼 표시된다는 것입니다. 값 3.75이런 것이 아닌 현재 포인트의 위치를 말한다는 것을 꼭 알아주세요!

그렇다면 이렇게 결과가 나왔다면 길이는 어떻게 구할까요?

벡터의 길이


벡터의 길이는 다음과 같습니다. x1과 x2를 각각 제곱하고 더한다음 루트! 이것이 벡터의 길이인데요 이건 바로 피타고라스의 정리입니다! 삼각형 빗변 구하기 공식이죠!
길이를 L, 벡터를 x라고 한다면 벡터 X의 길이는 LX라고 나타낼 수 있습니다.

그러면 이 빗변과 밑변이 이루는 각은 또 무슨 의미가 있을까요?

벡터의 각

벡터의 각은 두 벡터의 관계를 의미합니다!

다음과 같이 A벡터와 B벡터가 있을 때 이 두 벡터가 이루는 각을 theta라고 합니다. 또한 밑변과 빗변이 이루는 관계를 표현한 것이기 때문에 cos(theta)로 구할 수 있습니다.
그러면 cos(theta)의 그래프는 어떻게 생겼을까요?

그래프는 다음과 같습니다. 원형으로 표시한 부분이 cos(theta)값이 0이 되는 부분으로 theta의 각은 90, 270도 입니다.
반면 0도, 180도 인 부분은 cos(theta)의 값이 1인 것을 확인할 수 있습니다.

수식 cos(theta)는 X와 Y의 곱을 X의 길이 * Y의 길이로 나눈 값입니다.

이들이 갖고 있는 의미는 무엇일까요? 중간 요약을 봅시다.

요약

  1. 벡터는 방향과 크기를 갖고 있습니다.
  2. 두 벡터가 있을 때, 두 벡터가 서로 같은 방향을 바라 보면 관계가 있다라고 표현할 수 있고 90도 그 이상의 각도로 벌어질 경우 관계가 없다라고 표현할 수 있습니다.
  3. 두 벡터가 있을 때 두 벡터의 덧셈으로 구해진 선은 피타고라스의 정리로 구할 수 있습니다. 그것을 LX라고 표현했습니다.
  4. 이 빗변이 밑변과 이루는 각을 theta라고 했을 때, theta의 각도에 따라 cos(theta)의 값이 달라집니다. theta의 값이 예각일 경우 두 벡터는 관계가 있다. 둔각일 경우 관계가 없다. 직각일 경우 서로 독립적이다 라고 표현할 수 있습니다.
  5. 2개의 벡터가 이루는 각은 theta이며, 이 값은 cos(theta)로 구하는데 cos(theta)의 결과는 -1 ~ 1입니다. 0은 관련이 없다 1은 관계가 있음을 의미합니다.

    즉, 두 벡터가 얼마나 관련이 있지?를 표현하고자 하는 것이라고 할 수 있을 것 같습니다.

벡터의 내적(두 벡터의 연관성을 의미)

정의

두 벡터의 각 성분을 곱하고 그 결과를 모두 더하는 연산
두 벡터 a와 b가 이루는 각이 (𝜃)일 때

즉, 두 벡터의 크기와 이루는 각의 코사인 곱을 통한 연산
하지만, 결과는 스칼라

특징

① 유사도 측정 : 두 벡터가 비슷한 방향을 가지고 있을수록 내적 값은 크고, 서로 다른 방향을 가지고 있을수록 내적 값은 작아집니다.
② 투영 : 벡터 내적은 한 벡터를 다른 벡터 방향으로 투영한 길이를 계산하는 데 활용
③ 역행렬과 선형 시스템: 벡터 내적은 선형 방정식과 역행렬 계산에 사용될 수 있습니다. 선형 시스템의 해를 구할 때 내적은 계수 행렬과 해 벡터의 관계를 표현하는 데 활용

직교(orthogonal)

위에서 cos(theta)의 값이 0일 경우 이루는 각이 90도 라고 했던 부분 기억나시나요? 90도는 직각이라고 말할 수 있고 X와 Y가 직교한다. 라고 표현할 수 있습니다.
두 벡터 X와 Y가 서로 독립이다. 라고 표현할 수 있습니다.

사영 : Y로 설명될 수 있는 X정보량

위에서 내적의 특징 중 2번 기억하시나요? 투영! 바로 Y라는 벡터에 X라는 벡터를 내리 꽂는 기술을 사영이라고 합니다. 사영이 이뤄지기 위해서는 예각이어야 합니다. 왜 일까요? 90도 이상의 각도로 벌어지면 사영되는 각이 안나오기 때문입니다.
즉, theta가 90보다 작아야 사영이 이루어지며 theta의 크기에 따라 정보량이 달라진답니다.


(가) 그래프와 (나) 그래프의 각도 차이가 보이시나요? A벡터가 X, B벡터가 Y라고 했을 때, 각도에 따라 정보량이 달라집니다. (나) 그래프가 가지고 있는 정보량의 의미가 더 작음을 알 수 있어요! 이 말은 Y로 설명될 수 있는 X정보량이 작다를 말합니다.

5줄 요약

  1. 벡터는 방향과 크기를 갖고 있으며, 스칼라는 크기만 갖고 있다.
  2. 두 벡터의 각으로 방향성을 볼 수 있으며 이 방향성은 관계성을 말하고 방향이 같을수록 즉, 각이 작을 수록 관계가 깊다고 표현할 수 있다.
  3. 관계가 깊을수록 Y로 설명될 수 있는 X정보량이 많음을 의미하고 이를 사영이라고 말한다. 정보량이 많을수록 theta의 값은 작고 예각일 때 이는 돋보인다.
  4. theta의 각이 0혹은180일 때 cos(theta)의 값은 1이고 90,270일 때 값은 0이다. 값이 0일 때 두 벡터가 서로 독립이라고 표현한다. 이를 직교라고 말했다.
  5. 내적은 중요하다!

오늘도 읽어주셔서 감사합니다.
다음은 2탄 행렬로 찾아뵐게요!

profile
데이터로 마케팅을 해보고 싶습니다~ 데이터 분석가도 좋아요!!

0개의 댓글