본문 바로가기
통계, EDA, 선형대수/Linear Algebra

n131 벡터와 행렬(vector and matrices)/ 선형대수

by kiimy 2021. 5. 22.
728x90
728x90

*선형대수

-구성조각 '벡터(vector)'

-가까운 정도를 측정하기 위해 '손실함수'

-인과관계를 수로 표현할려하되 어떻게 해서든 선형적인 관계로서 이해

==> 선형적인 관계가 되도록 미분을 하고 모은것들을 적분

 

*Data Structure = list

1D = [ 순서가 바뀌면 안됨 ] // *set 집합에서는 순서가 달라도 상관없음

2D = pd.DataFrame

 

*벡터 (원점에 뿌리를 둠)

a[2,

  1]  == matrices / 벡터의 길이라고보면됨 a== Scalar // 차원수 (= 선형결합)

 

벡터 scaling = 벡터의 길이를 늘리거나 방향을 뒤집는것

*벡터의 크기 (Magnitude, Norm, Length)

  • 벡터의 Norm 혹은 Magnitude는 단순히 길이에 지나지 않습니다.
  • 벡터는 선이기 때문에 피타고라스를 기억하는 것으로 길이를 구할 수 있죠

 a = [1,2,3,4] // np.sqrt(np.power(a).sum())

 

*벡터의 내적 ( Dot Product )

a = [1,2,3,4]

b = [4,5,6,7] ==> 벡터의 길이가 같아야됨! 2D 곱을 할때는 a행벡터와 b 열벡터

*열벡터와 행벡터

열벡터 = 변화의 대상

행벡터 = 변화를 시키는 행위자 ( 선형변환 함수)

==> 행벡터(input) => output

input = 열벡터

output = 다른 벡터

 

*Transpose

각선 부분의 구성요소를 고정시키고 이를 기준으로 나머지 구성요소들을 뒤집는다 라고 생각하면 됩니다.

Matrix multiplication

*행렬은 선형변환이다.

정사각 매트릭스의 특별한 케이스

 

Diagonal (대각): 대각선 부분에만 값이 있고, 나머지는 전부 0입니다.

Upper Triangular (상삼각): 대각선 위쪽 부분에만 값이 있고, 나머지는 전부 0입니다.

Lower Triangular (하삼각): upper triangular 와 반대로, 대각선 아래에만 값이 있습니다.

Symmetric (대칭): 대각선을 기준으로 위 아래의 값이 대칭인 경우 입니다.

 

*Identity (단위 매트릭스): A'A = I (매트릭스 * 역행렬은 단위매트릭스)

  • Diagonal 매트릭스 중에서, 모든 값이 1인 경우입니다. 임의의 정사각 매트릭스에 단위 행렬을 곱하면, 그 결과값은 원본 정사각 매트릭스로 나오며,

 

  • 반대로 임의의 매트릭스에 대해서 곱했을때 단위 매트릭스가 나오게 하는 매트릭스를 역행렬 (Inverse)라고 부릅니다.  
    매트릭스의 행과 열이 선형의 의존 관계가 있는 경우 매트릭스의 행렬식은 0이다.(= 특이 매트릭스
  • == > row, col이 똑같은 비율을 가지고 있을때

np.array([[1,2], [3,6]])

[1, 2],

[3, 6]   == row 1:2 = 3:6/ col 1:3 = 2:6

*determinant ( det(A) ) 행렬식

from scipy import stats

input : stats.linregress([1, 3, 5, 7, 9], [2, 8, 14, 20, 26])

output : LinregressResult(slope=3.0, intercept=-1.0, rvalue=1.0, pvalue=1.2004217548761408e-30, stderr=0.0)

  • [a ,b,  (ad- bc)
  •  c ,d] 

* Einsum

x = np.array([-1, -10, -100])

y = np.array([1, 10, 100])

dot = np.einsum('i,i->', x, y )

outer = np.einsum('i,j->ij', x,y)

print(x)

print(y)

print(dot)

print(outer)

[ -1 -10 -100]

[ 1 10 100]

-10101

[[ -1 -10 -100]

 [ -10 -100 -1000]

 [ -100 -1000 -10000]]

*MSE / MAE

MSE (제곱의 오차) square = 손실함수

MAE( 절대값의 오차) abs = 회귀지표

 

 

-MAE

= 실제값과 예측값의 절대값 차를 평균화/

이상치가 많을 때 사용 /

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

 

 

 

 

 

 

 

-MSE

=  실제값과 예측값 제곱의 차를 평균화/

면적의 합?? /

특이값이 존재하면 수치가 늘어남

 

 

 

 

*회귀 분석

-주어진 독립변수로 종속변수 예측

 

*선형회귀 = 추세선 // y = a +bx

a= 절편 (추세선의 시작의 y축)

b= 기울기

 

점들 => y = a+ bx + e(오차)

점들과 추세선과의 차이값이 오차

오차가 가장 작은값을 찾는것( 오차= 측정값 - 기대값)

즉, 가장 합리적인 선형회귀

오차의 제곱 

=최소제곱법(OLS) 직선은 평균을 지난다(=평균으로 회귀)

 

해석 : △x =1 증가 할수록 b(기울기 =slope)가 증가한다

*분석 과정

1. 종속, 독립 변수를 찾음.

2. 연구가설

  • 독립 변수로 인해 종속변수가 영향이 있을것이다라는 가설
  • 논리? == 독립변수가 이렇다는건 종속변수의 어떤 것의 영향이 갈 것이므로

3. 인과관계의 예측

원인 : 독립

결과 : 종속

 

4. 분석결과

Estimate(회귀계수) 방향(+, - )과 P-value가 나옴

 

*표준오차와 표준편차의 차이(= 다르지만 비슷)

표준오차 = 회귀계수(방정식)가 우연인지 아닌지 판별하기위해

ex) 같은 회귀계수면 분포도를 보고 판단 / 표준오차가 작은 값이 참 값에 가까움

==> 데이터가 퍼진정도가 낮으면(= 밀집) / 추세선에 밀집되어있다.

 

-우연히 일어날/ 일어나지 않을 확률

==> t-value = 기울기(베타) / 오차(SE)

 

**선형회귀 분석을 할때는 산포도를 먼저 보는 것이 중요 ( scatterplot)

  • 산포도가 곡선 or 구 형태로 되있다면 비교 불가 == 기울기가 =0
  • 직선의 형태가 아니면 분석할 수 없음
  • 기울기는 결국 t-test의 평균값차이다
728x90

댓글