*선형대수
-구성조각 '벡터(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의 평균값차이다
'통계, EDA, 선형대수 > Linear Algebra' 카테고리의 다른 글
n134 Clustering 군집분석 (0) | 2021.05.29 |
---|---|
n133 eigenvalue/eigenvector 주성분분석(PCA) (0) | 2021.05.27 |
n132 공분산과 상관계수 cov, corr/ vector (0) | 2021.05.27 |
댓글