데이터 과학 및 기계 학습을위한 필수 선형 대수

소스 노드 : 1852280

Benjamin O. Tayo의 이미지.

선형 대수학은 데이터 과학 및 기계 학습에 매우 유용한 수학의 한 분야입니다. 선형 대수학은 기계 학습에서 가장 중요한 수학 기술입니다. 대부분의 기계 학습 모델은 행렬 형식으로 표현할 수 있습니다. 데이터 세트 자체는 종종 매트릭스로 표현됩니다. 선형 대수학은 데이터 전처리, 데이터 변환 및 모델 평가에 사용됩니다. 다음은 숙지해야 할 주제입니다.

  • 벡터
  • 행렬
  • 행렬의 전치
  • 역행렬
  • 행렬의 결정자
  • 행렬의 추적
  • 내적
  • 고유 값
  • 고유 벡터

이 기사에서는 기술 주식 데이터 세트를 사용하여 데이터 과학 및 기계 학습에 선형 대수학을 적용하는 방법을 설명합니다. 여기에서 지금 확인해 보세요..

1. 데이터 전처리를 위한 선형 대수학

 데이터 전처리에서 선형 대수가 어떻게 사용되는지 설명하는 것으로 시작합니다.

1.1 선형 대수에 필요한 라이브러리 가져오기

numpy를 np로 가져오기 pandas를 pd로 가져오기 pylab 가져오기 matplotlib.pyplot을 plt로 가져오기 seaborn을 sns로 가져오기 

 

1.2 데이터 세트 읽기 및 표시 기능

데이터 = pd.read_csv("tech-stocks-04-2021.csv") data.head() 

 작업대 1. 16년 2021월 첫 XNUMX일 동안 선택된 주가의 주가.

인쇄(데이터.모양) 출력 = (11,5) 

 XNUMXD덴탈의 데이터.모양 함수를 사용하면 데이터 세트의 크기를 알 수 있습니다. 이 경우 데이터 세트에는 5개의 기능(날짜, AAPL, TSLA, GOOGL 및 AMZN)이 있고 각 기능에는 11개의 관찰이 있습니다. 날짜 2021년 16월 거래일(XNUMX월 XNUMX일까지)을 의미합니다. AAPL, TSLA, GOOGL 및 AMZN은 각각 Apple, Tesla, Google 및 Amazon의 종가입니다.

1.3 데이터 시각화

데이터 시각화를 수행하려면 다음을 정의해야 합니다. 열 행렬 시각화할 기능:

x = 데이터['날짜'] y = 데이터['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['1월 8일','15월 2021일 ','14월 XNUMX일']) plt.title('XNUMX년 XNUMX월 테슬라 주가(달러 기준)',size=XNUMX) plt.show() 

그림 1. 16년 2021월 첫 XNUMX일 동안 테슬라 주가.

2. 공분산 행렬

XNUMXD덴탈의 공분산 행렬 데이터 과학 및 기계 학습에서 가장 중요한 매트릭스 중 하나입니다. 기능 간의 공동 이동(상관 관계)에 대한 정보를 제공합니다. 다음과 같은 특징 행렬이 있다고 가정합니다. 4 기능 및 에 표시된 관찰 표 2:

표 2. 4개의 변수와 n개의 관측값이 있는 특징 행렬입니다.

기능 간의 상관 관계를 시각화하기 위해 산점도 쌍도를 생성할 수 있습니다.

cols=data.columns[1:5] print(cols) 출력 = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='객체') sns.pairplot(data[cols] , 높이=3.0) 

그림 2. 선택된 기술주에 대한 산점도 pairplot.

기능 간의 상관 정도(다중공선성)를 정량화하기 위해 다음 방정식을 사용하여 공분산 행렬을 계산할 수 있습니다.

여기서 와 는 각각 feature 의 평균과 표준편차입니다. 이 방정식은 기능이 표준화될 때 공분산 행렬이 단순히 내적 기능 사이.

행렬 형식에서 공분산 행렬은 4 x 4 실수 및 대칭 행렬로 표현할 수 있습니다.

이 행렬은 다음을 수행하여 대각선화할 수 있습니다. 단일 변환, 주성분 분석(PCA) 변환이라고도 하며 다음을 얻습니다.

이후 행렬의 흔적 단일 변환에서 불변 상태로 남아 있으므로 대각 행렬의 고유값 합계가 특성 X에 포함된 총 분산과 같다는 것을 관찰합니다.1, X2, X3, X4.

2.1 기술주에 대한 공분산 행렬 계산

sklearn.preprocessing import StandardScaler stdsc = StandardScaler() X_std = stdsc.fit_transform(data[cols].iloc[:,range(0,4)].values) cov_mat = np.cov(X_std.T,bias=True) 

참고로 이는 바꾸어 놓다 표준화된 매트릭스의

2.2 공분산 행렬의 시각화

plt.figure(figsize=(8,8)) sns.set(font_scale=1.2) hm = sns.heatmap(cov_mat, cbar=True, annot=True, square=True, fmt='.2f', annot_kws={ '크기': 12}, yticklabels=cols, xticklabels=cols) plt.title('상관 계수를 보여주는 공분산 행렬') plt.tight_layout() plt.show() 

그림 3. 선택된 기술주에 대한 공분산 행렬 플롯.

우리는 그림 3에서 AAPL이 GOOGL 및 AMZN과 강하게 상관관계가 있고 TSLA와 약하게 상관관계가 있음을 관찰했습니다. TSLA는 일반적으로 AAPL, GOOGL 및 AMZN과 약하게 상관관계가 있는 반면 AAPL, GOOGL 및 AMZN은 서로 강하게 상관관계가 있습니다.

2.3 공분산 행렬의 고유값 계산

np.linalg.eigvals(cov_mat) 출력 = 배열([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) 출력 = 4.000000000000006 np.trace(cov_ 매트) 출력 = 4.000000000000001 

우리는 공분산 행렬의 추적이 예상대로 고유값의 합과 같다는 것을 관찰합니다.

2.4 누적 분산 계산

단일 변환에서 행렬의 추적이 변하지 않기 때문에 대각 행렬의 고유값의 합이 특성 X에 포함된 총 분산과 같다는 것을 관찰합니다.1, X2, X3, X4. 따라서 다음 수량을 정의할 수 있습니다.

 

언제 p = 4이면 누적 분산은 예상대로 1이 됩니다.

고유 = np.linalg.eigvals(cov_mat) cum_var = 고유/np.sum(eigen) print(cum_var) 출력 = [0.85395557 0.11318237 0.00511273 0.02774933] print(np.sum(cum_var)) 출력 = 1.0 

 누적 분산(cum_var) 분산의 85%가 첫 번째 고유값에 포함되고 11%가 두 번째 고유값에 포함됩니다. 이것은 PCA가 구현될 때 처음 두 개의 주성분만 사용될 수 있음을 의미합니다. 전체 분산의 97%가 이 두 구성요소에 의해 기여되기 때문입니다. 이것은 본질적으로 PCA가 구현될 때 기능 공간의 차원을 2에서 4로 줄일 수 있습니다.

3. 선형 회귀 행렬

4개의 예측 변수가 있는 데이터 세트가 있고 n 아래와 같이 관찰.

표 3. 4개의 변수와 n개의 관측값이 있는 특징 행렬입니다. 열 5는 대상 변수(y)입니다.

우리는 다음을 예측하기 위한 다중 회귀 모델을 구축하고 싶습니다. y 값(열 5). 따라서 우리 모델은 다음 형식으로 표현할 수 있습니다.

행렬 형식에서 이 방정식은 다음과 같이 쓸 수 있습니다.

어디에 X ( nx 4) 피처 매트릭스, w 는 결정할 회귀계수를 나타내는 (4 x 1) 행렬이고, y 대상 변수 y의 n 관측값을 포함하는 (nx 1) 행렬입니다.

참고 X 는 직사각형 행렬이므로 의 역수를 취하여 위의 방정식을 풀 수 없습니다. X.

변환하다 X 정사각형 행렬로 방정식의 좌변과 우변을 다음과 같이 곱합니다. 바꾸어 놓다 of X, 그건

이 방정식은 다음과 같이 표현될 수도 있습니다.

어디에

(4×4) 회귀 행렬입니다. 분명히 우리는 R 실수 대칭 행렬입니다. 선형 대수학에서 두 행렬 곱의 전치는 다음 관계를 따릅니다.

이제 회귀 문제를 줄이고 이를 (4×4) 실제, 대칭 및 가역 회귀 행렬로 표현했습니다. R, 회귀 방정식의 정확한 솔루션이 다음임을 보여주는 것은 간단합니다.

연속 변수와 불연속 변수를 예측하기 위한 회귀 분석의 예는 다음과 같습니다.

완전 초보자를 위한 선형 회귀 기본 사항

최소 제곱법을 사용하여 퍼셉트론 분류기 만들기

4. 선형 판별 분석 행렬

데이터 과학에서 실제 및 대칭 행렬의 또 다른 예는 LDA(Linear Discriminant Analysis) 행렬입니다. 이 행렬은 다음 형식으로 표현할 수 있습니다.

어디에 SW 기능 내 분산 행렬이고 S기능 간 분산 행렬입니다. 두 행렬 이후 SW  SB 가 실수이고 대칭이면 다음과 같습니다. L 또한 실제이고 대칭입니다. 의 대각선화 L 클래스 분리성을 최적화하고 차원을 줄이는 기능 하위 공간을 생성합니다. 따라서 LDA는 지도 알고리즘이지만 PCA는 그렇지 않습니다.

LDA 구현에 대한 자세한 내용은 다음 참조를 참조하십시오.

기계 학습: 선형 판별 분석을 통한 차원 축소

Iris 데이터 세트를 사용한 LDA 구현을 위한 GitHub 리포지토리

Sebastian Raschka의 Python 기계 학습, 3판(5장)

요약

요약하면 데이터 과학 및 기계 학습에서 선형 대수학의 여러 응용 프로그램에 대해 논의했습니다. 기술 주식 데이터 세트를 사용하여 행렬의 크기, 열 행렬, 정사각형 행렬, 공분산 행렬, 행렬의 전치, 고유값, 내적 등과 같은 중요한 개념을 설명했습니다. 선형 대수는 데이터 과학 및 기계의 필수 도구입니다. 학습. 따라서 데이터 과학에 관심이 있는 초보자는 선형 대수학의 필수 개념에 익숙해져야 합니다.

관련 :

출처: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

타임 스탬프 :

더보기 너 겟츠