분산(Variance)
- 분산은, 데이터가 얼마나 퍼져있는지를 측정하는 방법
- 이는 각 값들의 평균으로부터 차이의 제곱 평균
- 분산을 구하기 위해서는 평균부터 계산
# 분산 쉽게 계산하기 with Python
print(df.컬럼명.var(ddof = 0) # ddof 자유도
주의해야 할 것은 샘플의 분산은 모집단의 분산의 추정치 이며, 일반적으로 샘플의 분산을 계산할 때 N - 1 로 나누어야 합니다.
- N-1로 나누는 것은 표본의 분산이나 표준편차를 모집단의 분산이나 표준편차를 예측하는 추정치로 사용하려는 의도 때문이다.
- 표본의 크기가 큰 경우는 n-1이나 n의 큰차이가 없지만, 표본의 크기가 작은 경우 실제적인 차이가 발생한다.
- 표본의 크기가 작은경우 표본의 분산이나 표준 편차를 n을 사용하는 경우 모집단의 분산이나 표준편차를 작게 추정하는 경향이 보인다, 그래서 불편(좋은) 추정치, (n-1)를 사용한다.
표준편차 (Standard Deviation)
- 표준편차는, 분산의 값에 루트를 씌운 것
- 분산의 경우 제곱하여 더한 값들이기 때문에 평균에 비해 스케일이 커지는 문제가 존재
- 이를 표준편차를 통해 해결한다.
공분산 (Covariance)
- 공분산이란, 1개의 변수 값이 변화할 때 다른 변수가 어떠한 연관성을 나타내며 변하는지를 측정하는 것
상관관계 - 첫번째 그래프의 경우, 음의 상관관계 (x값이 커질 수록 y값이 감소)
- 두번째는 상관관계를 알아 볼 수 없으며 ( 평행 )
- 세번째는 양의 상관관계이다.(x값이 커질수록 y값도 같이 증가)
상관계수 (Correlation coefficient)
- 공분산을 비교할 때 컬럼의 스케일이 차이가 큰 경우 비교하기 어려울 수 있다.
- 그래서 공분산을 변수의 표준편차로 나눠주면 스케일을 조정할 수 있으며 이를 상관계수라고 한다.
- 상관계수는 -1~1사이으로만 나타난다.
스피어만 상관계수 (Spearman correlation)
- 위에 언급한 수치형 데이터로 상관 계수를 구한 것은 피어슨 상관계수(Pearson correlation)이며,
- 명목형과 같은 categorical 데이터의 경우 Spearman correlation을 사용해야 한다.
- 이는 값들의 순서 혹은 순위 등을 통해 상관계수를 구하는 non-parametric 방식
# 스피어만 상관계수 구하기 with python
import numpy as np
from scipy import stats
A = np.array([1,2,3,4])
B = np.array([5,6,7,4])
stats.perarsonr(A,B)
# 공식 문서 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.pearsonr.html
stats.spearmanr(A,B)
# 공식 문서 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.spearmanr.html?highlight=spear#scipy.stats.spearmanr
# Result
(-0.2, 0.8)
SpearmanrResult(correlation=-0.19999999999999998, pvalue=0.8)
직교 (Orthogonality)
- 직교란, 벡터 혹은 매트릭스가 서로 수직인 상태를 나타냄
- 임의의 두 벡터의 내적값이 0인 경우 서로 수직
import matplotlib.pyplot as plt
vector_1 = [-3, 3]
vector_2 = [3, 3]
plt.arrow(0, 0, vector_1[0], vector_1[1], head_width = .1, head_length = .1, color ='#d63031')
plt.arrow(0, 0, vector_2[0], vector_2[1], head_width = .1, head_length = .1, color ='#00b894')
plt.xlim(-4, 4)
plt.ylim(-4, 4)
plt.title("Orthogonal Vectors")
plt.show()
단위 벡터 ( Unit Vectors )
- 선형대수에서, 단위 벡터란 "단위 길이(1)"를 갖는 모든 벡터를 뜻함
- v = [10, 100], v =[1,0]*10 + [0,1]*100
- = 10 * i + j * 100
Span
Span 이란, 주어진 두 벡터의 합이나 차와 같은 조합으로 만들 수 있는 모든 가능한 벡터의 집합
Basis
벡터 공간 A의 basis는, A라는 공간을 채울 수 있는 선형 관계에 있지 않은 벡터들의 모음입니다. (Span의 역개념)
Orthognal Basis
Orthogonal Basis란, Basis에 추가로 직교(Orthongonal)란 조건이 붙는, 즉 주어진 공간을 채울 수 있는 서로 수직인 벡터
Orthonormal Basis
Orthonormal Basis란, Orthonormal Basis에 추가로 Normalized 조건이 붙은 것으로, 길이가 서로 1인 벡터를 뜻한다.
R^2(결정계수)란
- 흔히 R제곱이라 불리며, 결정계수는 회귀 모델에서 독립변수가 종속변수를 얼마만큼 설명해주는지 가르키는 지표이다.
- 설명력이라고도 하며, 독립변수의 수가 증가하면, 결정계수가 높아지며 설명력이 다소 낮은 독립변수가 추가 되어도
- 증가하기 때문에 설명력의 타당성에 대한 문제가 있습니다. 그래서 조정된 결정계수(Adjusted R-Squared)를 같이 계산하여 설명력을 보여준다.
Rank
- 매트릭스의 Rank란, 매트릭스의 열을 이루고 있는 벡터들로 만들 수 있는 (span) 공간의 차원입니다.
- 매트릭스의 차원과는 다를 수도 있으며, 그 이유는 행과 열을 이루고 있는 벡터들 가운데 서로 선형 관계가 있을 수도 있기 때문
Project
- Linear Projection을 통해 사용하는 차원의 수를 줄이고, 데이터를 아낄 수 있다.
- 일반적으로 실제 데이터 셋은 모든 데이터의 특성, 즉 차원이 고르게 분포되어 있지 않다. 필기체 숫자 데이터셋인 MNIST로 예를 들면 각 어떤 특성은 거의 변화가 없고, 또 어떤 특성을 다른 특성들과 서로 연관되어 있다.
- 이렇듯 학습 데이터셋은 고차원 공간에서 저차원 부분공간에 위치하게 된다. 즉 고차원의 데이터의 특성중 일부 특성으로 데이터를 표현할 수 있다는 말이 된다.
'선형대수' 카테고리의 다른 글
선형대수 - 벡터와 매트릭스 (0) | 2021.07.31 |
---|