개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 8장 직교 행렬과 QR 분해: 선형대수학의 핵심 분해법 1 직교 행렬(orthogonal matrix) 직교 행렬은 두 가지 속성을 가진다. 직교 열: 행렬의 모든 열은 서로 직교합니다. 단위 노름 열: 각 열의 노름(기하학적 길이)은 정확히 1이다. qi⋅qj={0,ifi≠j1,ifi=j (직교 행렬 Q의 열q에 대해, 모든 열은 자기자신과의 내적은 1이고, 다른열과의 내적은 0이다) 위 식은 직교행렬의 원소들에 대하여, 수많은 내적의 결과가 0..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 7장 역행렬: 행렬 방정식의 만능 키 역행렬 행렬 A의 역행렬은 A와 곱해서 단위행렬을 만드는 행렬 A−1임 이는 행렬을 단위 행렬로 선현 변환하는 것, 즉, 역행렬은 선형 변환을 포함하며 행렬곱셈은 이 변환을 적용하는 매커니즘 Ax=bA−1Ax=A−1bIx=A−1bx=A−1b (역행렬을 통한 행렬 방정식의 풀이) 역행렬의 유형과 가역성의 조건 - 가역성에 대한 조건이 다른 세 가지 종류의 역행렬이 있음 1. 완전 역행렬 A−1A=AA−1=I를 의미함. 행렬이 완전 역행렬을 가지기 위해서는 다음 조건을 만족해야함 정방행렬..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 6장 행렬 응용: 데이터 분석에서의 행렬 ㅇ 다변량 데이터 공분산 행렬 피어슨 상관계수: 두 변수의 상관관계를 나타내는 숫자 (두 변수 벡터 사이의 내적을 두 벡터 노름의 곱으로 나누어 구함) ▶ 변수가 세 개 이상이라면? 다변량 데이터 집합에서는? 공분산(Covariance): 두 평균중심화된 변수 사이의 내적 공분산은 데이터 크기가 반영됨(절댓값이 1으로 한정x) 정규화 인자로 n-1(n: 데이터 점의 크기)을 사용 정규화 인자 n-1으로 나눔으로써 많은 데이터값을 합할 때마다 공분산이 커지는 것을 방지할 수 있음 (합에서 평균을 구하기 위해 N으로 나누는 것과 유사) $$ C_{a,b} = (..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 5장 행렬, 파트 2 : 행렬의 확장 개념 계수의 응용 벡터가 열공간에 존재하나요? 벡터가 행렬의 열공간에 있는지 여부는 선형대수학에서 중요한 부분이다. → "행렬 계수를 이해해야 확장 가능한 방식으로 이 부분에 대한 답을 찾을 수 있다." 행렬의 확장(augmenting) (첨가행렬) - 행렬의 우측에 열을 추가한다 https://en.wikipedia.org/wiki/Augmented_matrix Augmented matrix - Wikipedia From Wikipedia, the free encyclopedia Matrix formed by appending columns of two oth..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 1장 벡터, 파트 1 : 벡터와 벡터의 기본 연산 연습문제 연습문제 1-2 아래 식을 코드로 변환해서 벡터 노름을 계산하는 알고리즘을 작성합니다. 차원과 방향이 다른 난수 벡터를 사용해서 np.linalg.norm과 동일한 결과를 얻는지 확인합니다. vec = np.array(np.random.randn(5)) def norm_Vec(vec): len_vec = len(vec) a = 0 for i in np.arange(len_vec): a = a + vec[i]**2 norm = a**0.5 return norm vec #array([-0.08695681, -0.17306018, 1.169684..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 5장 행렬, 파트 2 : 행렬의 확장 개념 행렬 노름 - 벡터 노름: 유클리드 기하학적 길이로 벡터 원소의 제곱합의 제곱근으로 계산됨. Q. 행렬의 노름은 어떤 개념인가? A. 행렬을 특정짓는 하나의 숫자라는 점에서 벡터 노름과 유사하다. 하지만 단 하나의 행렬 노름은 없어, 여러 개의 서로 다른 노름을 가진다. 각 행렬 노름은 서로 다른 의미를 가진다. 수많은 행렬 노름은 크게 원소별 계열과 유도 계열로 구분된다. 유클리드 노름/프로베니우스 노름(Frobenius Norm) - 원소별 계열의 노름으로, 모든 행렬 원소의 제곱합의 제곱근으로 계산됨 프로베니우스 노름은 l2 노름이라고 한다. (l2 ..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 4장 행렬, 파트 1 : 행렬과 행렬의 기본 연산 "행렬은 벡터를 한 차원 더 끌어올린 것입니다." 데이터 과학에서 다루는 행렬은 수십억 개의 원소를 가지는 대규모인 경우가 많다. 그렇기에 수식적인 표현보다는 maplotlib등의 라이브러리를 활용한 시각화 표현이 유리함. # create some matrices A = np.random.randn(3,4) B = np.random.randn(100,100) C = -toeplitz(np.arange(8),np.arange(10)) # and show them as images fig,axs = plt.subplots(1,3,figsize=(10,3..
개발자를 위한 실전 선형대수학(Practical Linear Algebra for Data Science) 3장 벡터 응용: 데이터 분석에서의 벡터 벡터와 벡터 연산이 데이터 과학에서 어떻게 사용되는가? 상관관계와 코사인 유사도 상관관계 상관관계는 통계와 머신러닝에서 가장 근본적이면서 중요한 분석 방법 상관계수(correlation coefficient): 두 변수 사이의 선형관계를 정량화한 하나의 숫자 → 정규화가 포함됨(단위의 영향 x, 상관계수가 기대하는 -1 ~ +1의 범위를 가지게 됨) -> 상관계수 계산에 포함된 두 정규화 1. 각 변수의 평균 중심화: 평균중심화는 각 데이터 값에서 평균값을 빼는 것 2. 벡터 노름 곱으로 내적을 나누기: 측정 단위를 제거하고 상관계수의 최대 크기를 1로 조정..