본문 바로가기

기타/리뷰 및 경험담 - p stage

[AI Math] 벡터와 행렬

벡터

벡터를 통해 N차원 공간에서 한 점을 나타 낼 수 있다.

다시 말해 벡터를 이용해 데이터를 표현 한다.

 

행렬

1. 행렬은 벡터를 원소로 가지는 2차원 배열

데이터들의 배열

2. 행렬곱을 통해 다른 차원으로 데이터를 보낼 수 있다.

(아래 그림은 m차원 데이터 x를 A행렬곱을 통해 m차원 데이터  z가 된다)

그림 a

 

행렬을 이용한 방정식 표현

행렬을 이용해서 연립 방정식을 표현 할 수 있다.

위 그림의 z를 b로 수정하면 아래와 같은 방정식과 같다.

즉 아래의 연립 방정식들을 행렬을 이용하면 AX = B 라고 간단하게 표현이 가능하다

(그림 a)에선 b대신 z이다.

 

선형회귀 분석

행렬의 성질을 이용해 데이터를 선형모델로 해석하는 선형 회귀식을 찾아본다.

행렬을 이용해서 아래의 연립 방정식을 Xβ = Y로 표현을 할 수 있다.

여기서 X의 역행렬을 구할 수 있다면 β를 구하는건 간단하다.

X*(X역행*Y) = Y 이므로 β = X역행*Y이다. 이를 통해 y=βx인 초록색 선형식을 구할 수 있다

하지만 X역행렬이 없는 경우(방정식을 풀 수 없는경우) 역행렬에 근사한  Moore-Penrose 유사 역행렬을 이용해야한다. X*(X무펜역행 * Y) = Y로 말이다. 하지만 이는 유사 역행렬이므로 X*(X무펜역행 * Y) 는 Y의 근사값이다.

즉 우리가 선형회귀 분석하는건 Xβ와 y들의 L2노름이 최소인 선형방정식을 찾은것이다

 

선형 회귀 분석 코드화

이를 코드로 구현 할 수 있다.

Sckit learn과 Moore-Penrose를 이용해서 구할 수 있다.

하지만 무어-펜로즈를 이용 할 경우 y절편이 추가되어 있지 않으므로 추가해줘야된다.

(Y=Xβ+a << 무펜을 이용하면 y절편인 a가 없다. 코드 작성시엔 직접 추가해야된다.)