Vector / Matrix


Linear Algebra


1. Data Structure

  • 1D : 주로 list라는 data structure를 사용해 1차원 데이터를 표현

  • 2D : 주로 pandas의 dataframe을 사용해서 더 효율적으로 표현

Q . 여기서 더 효율적이라는 것의 의미는 무엇일까요?
A. pandas를 통해 데이터를 다루기 효율적이다.

차원입체
0
1
2
3공간

2. Matrix Calculation

Regression

  • Colab에 library 설치
!pip3 install ~~

ex)
!pip3 install imageio
!pip3 install skimage
!pip3 install scikit-image
  • 스칼라 : 변수로 저장되어 있는 크기만 갖는 숫자
  • 벡터 : list로 저장되며 크기와 방향이 있다
  • Matrix : 행렬, 행과 열을 갖는 벡터의 모음
    • Square Matrix : 행과 열의 수가 동일한 매트릭스
  • Determinant : 행렬식, 역행렬과 해가 존재하는지 판단
  • Inverse : 역행렬, 행렬의 역수

Q . 단위행렬 , 정사각행렬, 역행렬 군분 ?

A .
단위행렬 : 행과 열의 크기가 1인 행렬
정사각행렬 : 행과 열의 크기가 같은 행렬
역행렬 : 곱이 단위행렬로 되는 행렬


3. Norms

벡터의 크기(magnitude) 또는 길이(length)를 측정하는 방법

3.1 Manhattan Norm ( L1 )

  • L1L_1 Norm : v=x0+x1+...+xn|v| = |x_0| + |x_1| + ... + |x_n|

  • 벡터의 모든 성분의 절대값을 더한다

  • linalg.norm(v, ord = 1)

3.2 Euclidean Norm ( L2 )

  • L2L_2 Norm : v=x02+x12+...+xn2||v|| = \sqrt {{x_0}^2 + {x_1}^2 + ... + {x_n}^2}

  • 출발점에서 도착점까지의 거리를 직선거리로 측정

  • linalg.norm(v, ord = 2)

4. Errors

  • MSE : Mean Square Error, 평균 제곱 오차

    • 손실함수로써 많이 쓰인다

    • 특이값이 존재하면 수치가 많이 늘어난다

    • MSE가 0에 가까울수록 추측한 값이 원본에 가깝다고 볼 수 있고 정확도가 높다고 볼 수 있다.

    • 오차(Y^Yi\hat{Y} - Y_i)의 제곱을 평균으로 나눈 값

    • 1nn=0(Y^Yi)2\frac{1}{n}\sum_{n=0}^{\infty}(\hat{Y} - Y_i)^2

    • Y^i\hat{Y}_i : predicted

    • Yi{Y}_i : actual

    • 예측값과 실제값 차이의 제곱 ( = 면적 ) 의 평균

    • from sklearn.metrics import mean_squared_error as mse

  • MAE : Mean절댓값 제곱 오차

    • 회귀지표로 쓰인다

    • 에러에 절대값을 취하기 때문에 에러의 크기 그대로 반영

    • 에러에 따른 손실이 선형적으로 올라갈 때 적합

    • 이상치가 많을 때 적합

    • 1nn=0XXi\frac{1}{n}\sum_{n=0}^{\infty}\vert{X} - X_i\vert

    • XiX_i : predicted

    • X{X} : actual

    • from sklearn.metrics import mean_absolute_error as mae

5. Inverse

  • 역행렬
# Inverse matrix 계산 함수 정의
def myInverse(m) : # m = np.array()
    try:
        return np.linalg.inv(m)
    except:
        return -1 # inverse 계산이 불가능한 경우 -1 반환

🔥 Cramer's rule

Cramer's rule 은 연립방정식의 해를 구하는 방법이다.

from numpy import linalg 로 해 구하기

# a, b는 array
np.linalg.solve(a, b)


👉 과정 한눈에 보기

profile
기록하지 않으면 기록되지 않는다.

0개의 댓글