Đại số tuyến tính cần thiết cho Khoa học dữ liệu và Máy học

Nút nguồn: 1852280

Hình ảnh của Benjamin O. Tayo.

Đại số tuyến tính là một nhánh của toán học cực kỳ hữu ích trong khoa học dữ liệu và học máy. Đại số tuyến tính là kỹ năng toán học quan trọng nhất trong học máy. Hầu hết các mô hình học máy có thể được thể hiện dưới dạng ma trận. Bản thân tập dữ liệu thường được biểu diễn dưới dạng ma trận. Đại số tuyến tính được sử dụng trong tiền xử lý dữ liệu, chuyển đổi dữ liệu và đánh giá mô hình. Dưới đây là các chủ đề bạn cần làm quen:

  • Vectơ
  • Ma trận
  • Chuyển vị của một ma trận
  • Nghịch đảo của ma trận
  • Định thức của một ma trận
  • Dấu vết của một ma trận
  • Chấm sản phẩm
  • Giá trị bản địa
  • vectơ riêng

Trong bài viết này, chúng tôi minh họa ứng dụng của đại số tuyến tính trong khoa học dữ liệu và học máy bằng cách sử dụng tập dữ liệu cổ phiếu công nghệ, có thể tìm thấy tại đây.

1. Đại số tuyến tính cho tiền xử lý dữ liệu

 Chúng tôi bắt đầu bằng cách minh họa cách đại số tuyến tính được sử dụng trong tiền xử lý dữ liệu.

1.1 Nhập các thư viện cần thiết cho đại số tuyến tính

nhập numpy dưới dạng np nhập gấu trúc dưới dạng pd nhập pylab nhập matplotlib.pyplot dưới dạng plt nhập seaborn dưới dạng sns 

 

1.2 Đọc tập dữ liệu và hiển thị các tính năng

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

 Bàn 1. Giá cổ phiếu cho giá cổ phiếu được chọn trong 16 ngày đầu tiên của tháng 2021 năm XNUMX.

đầu ra print(data.shape) = (11,5) 

 Sản phẩm dữ liệu.shape chức năng cho phép chúng tôi biết kích thước của tập dữ liệu của chúng tôi. Trong trường hợp này, tập dữ liệu có 5 đối tượng địa lý (ngày, AAPL, TSLA, GOOGL và AMZN) và mỗi đối tượng địa lý có 11 quan sát. Ngày đề cập đến các ngày giao dịch trong tháng 2021 năm 16 (đến ngày XNUMX tháng XNUMX). AAPL, TSLA, GOOGL và AMZN lần lượt là giá cổ phiếu đóng cửa của Apple, Tesla, Google và Amazon.

1.3 Trực quan hóa dữ liệu

Để thực hiện trực quan hóa dữ liệu, chúng ta cần xác định ma trận cột để các tính năng được trực quan hóa:

x = data['date'] y = data['TSLA'] plt.plot(x,y) plt.xticks(np.array([0,4,9]), ['Apr 1','Apr 8 ','Apr 15']) plt.title('Giá cổ phiếu Tesla (bằng đô la) cho tháng 2021 năm 14',size=XNUMX) plt.show() 

Hình 1. Giá cổ phiếu Tesla trong 16 ngày đầu tháng 2021 năm XNUMX.

2. Ma trận hiệp phương sai

Sản phẩm ma trận hiệp phương sai là một trong những ma trận quan trọng nhất trong khoa học dữ liệu và học máy. Nó cung cấp thông tin về sự đồng chuyển động (tương quan) giữa các đặc điểm. Giả sử chúng ta có một ma trận tính năng với 4 tính năng và các quan sát như thể hiện trong Bảng 2:

Bảng 2. Tính năng ma trận với 4 biến và n quan sát.

Để trực quan hóa mối tương quan giữa các tính năng, chúng ta có thể tạo một biểu đồ cặp phân tán:

cols=data.columns[1:5] print(cols) output = Index(['AAPL', 'TSLA', 'GOOGL', 'AMZN'], dtype='object') sns.pairplot(data[cols] , chiều cao=3.0) 

Hình 2. Biểu đồ cặp phân tán cho các cổ phiếu công nghệ được chọn.

Để định lượng mức độ tương quan giữa các tính năng (đa cộng tuyến), chúng ta có thể tính toán ma trận hiệp phương sai bằng phương trình sau:

ở đâu và lần lượt là giá trị trung bình và độ lệch chuẩn của feature . Phương trình này chỉ ra rằng khi các tính năng được tiêu chuẩn hóa, ma trận hiệp phương sai chỉ đơn giản là sản phẩm chấm giữa các tính năng.

Ở dạng ma trận, ma trận hiệp phương sai có thể được biểu diễn dưới dạng ma trận thực và đối xứng 4 x 4:

Ma trận này có thể được chéo hóa bằng cách thực hiện một chuyển đổi đơn vị, còn được gọi là chuyển đổi Phân tích thành phần chính (PCA), để thu được những điều sau:

Kể từ khi dấu vết của một ma trận vẫn bất biến dưới một phép biến đổi đơn vị, chúng tôi quan sát thấy rằng tổng các giá trị riêng của ma trận đường chéo bằng tổng phương sai chứa trong các tính năng X1, X2, X3và X4.

2.1 Tính toán ma trận hiệp phương sai cho cổ phiếu công nghệ

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

Lưu ý rằng điều này sử dụng hoán vị của ma trận chuẩn hóa.

2.2 Trực quan hóa ma trận hiệp phương sai

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={ 'size': 12}, yticklabels=cols, xticklabels=cols) plt.title('Ma trận hiệp phương sai hiển thị các hệ số tương quan') plt.strict_layout() plt.show() 

Hình 3. Biểu đồ ma trận hiệp phương sai cho các cổ phiếu công nghệ được chọn.

Chúng tôi quan sát thấy từ Hình 3 rằng AAPL tương quan chặt chẽ với GOOGL và AMZN và tương quan yếu với TSLA. TSLA nhìn chung tương quan yếu với AAPL, GOOGL và AMZN, trong khi AAPL, GOOGL và AMZN tương quan chặt chẽ với nhau.

2.3 Tính giá trị riêng của ma trận hiệp phương sai

np.linalg.eigvals(cov_mat) đầu ra = mảng([3.41582227, 0.4527295 , 0.02045092, 0.11099732]) np.sum(np.linalg.eigvals(cov_mat)) đầu ra = 4.000000000000006 np.trace(cov_ đầu ra mat) = 4.000000000000001 

Chúng tôi quan sát thấy rằng dấu vết của ma trận hiệp phương sai bằng tổng các giá trị riêng như mong đợi.

2.4 Tính toán phương sai tích lũy

Do vết của một ma trận bất biến dưới một phép biến đổi đơn vị, chúng ta quan sát thấy rằng tổng các giá trị riêng của ma trận đường chéo bằng với tổng phương sai chứa trong các đặc trưng X1, X2, X3và X4. Do đó, chúng ta có thể định nghĩa các đại lượng sau:

 

Chú ý rằng khi p = 4, phương sai tích lũy trở thành bằng 1 như mong đợi.

eigen = np.linalg.eigvals(cov_mat) cum_var = eigen/np.sum(eigen) print(cum_var) đầu ra = [0.85395557 0.11318237 0.00511273 0.02774933] print(np.sum(cum_var)) đầu ra = 1.0 

 Chúng tôi quan sát từ phương sai tích lũy (kiêm_var) rằng 85% phương sai được chứa trong giá trị riêng đầu tiên và 11% trong giá trị thứ hai. Điều này có nghĩa là khi PCA được triển khai, chỉ có thể sử dụng 97 thành phần chính đầu tiên vì 2% tổng phương sai là do 4 thành phần này đóng góp. Điều này về cơ bản có thể giảm kích thước của không gian tính năng từ 2 xuống XNUMX khi PCA được triển khai.

3. Ma trận hồi quy tuyến tính

Giả sử chúng ta có một tập dữ liệu có 4 tính năng dự đoán và n quan sát, như hình dưới đây.

Bảng 3. Tính năng ma trận với 4 biến và n quan sát. Cột 5 là biến mục tiêu (y).

Chúng tôi muốn xây dựng một mô hình đa hồi quy để dự đoán y các giá trị (cột 5). Do đó, mô hình của chúng tôi có thể được thể hiện dưới dạng

Ở dạng ma trận, phương trình này có thể được viết là

Ở đâu X là ma trận đặc trưng ( nx 4), w là ma trận (4 x 1) biểu diễn các hệ số hồi quy cần xác định, và y là ma trận (nx 1) chứa n quan sát của biến mục tiêu y.

Lưu ý rằng X là một ma trận chữ nhật, vì vậy chúng ta không thể giải phương trình trên bằng cách lấy nghịch đảo của X.

Để chuyển đổi X thành một ma trận vuông, chúng ta nhân vế trái và vế phải của phương trình với hoán vị of X, đó là

Phương trình này cũng có thể được biểu thị dưới dạng

Ở đâu

là ma trận hồi quy (4×4). Rõ ràng, chúng tôi quan sát thấy rằng R là một ma trận thực và đối xứng. Lưu ý rằng trong đại số tuyến tính, phép đổi vị của tích hai ma trận tuân theo mối quan hệ sau

Bây giờ chúng ta đã giảm vấn đề hồi quy của mình và biểu thị nó dưới dạng ma trận hồi quy thực, đối xứng và khả nghịch (4 × 4) R, thật dễ dàng để chỉ ra rằng giải pháp chính xác của phương trình hồi quy là

Các ví dụ về phân tích hồi quy để dự đoán các biến liên tục và rời rạc được đưa ra như sau:

Khái niệm cơ bản về hồi quy tuyến tính cho người mới bắt đầu tuyệt đối

Xây dựng bộ phân loại Perceptron bằng phương pháp bình phương nhỏ nhất

4. Ma trận phân tích biệt thức tuyến tính

Một ví dụ khác về ma trận thực và đối xứng trong khoa học dữ liệu là ma trận Phân tích phân biệt tuyến tính (LDA). Ma trận này có thể được thể hiện dưới dạng:

Ở đâu SW là ma trận phân tán bên trong tính năng và Slà ma trận phân tán giữa các tính năng. Vì cả hai ma trận SW  SB là thực và đối xứng, suy ra L cũng là thực và đối xứng. đường chéo hóa của L tạo ra một không gian con tính năng tối ưu hóa khả năng phân tách lớp và giảm kích thước. Do đó LDA là một thuật toán được giám sát, trong khi PCA thì không.

Để biết thêm chi tiết về việc triển khai LDA, vui lòng xem các tài liệu tham khảo sau:

Học máy: Giảm kích thước thông qua phân tích phân biệt tuyến tính

Kho lưu trữ GitHub để triển khai LDA bằng bộ dữ liệu Iris

Python Machine Learning của Sebastian Raschka, Phiên bản thứ 3 (Chương 5)

Tổng kết

Tóm lại, chúng ta đã thảo luận về một số ứng dụng của đại số tuyến tính trong khoa học dữ liệu và học máy. Sử dụng bộ dữ liệu cổ phiếu công nghệ, chúng tôi đã minh họa các khái niệm quan trọng như kích thước của ma trận, ma trận cột, ma trận vuông, ma trận hiệp phương sai, chuyển vị của ma trận, giá trị riêng, tích chấm, v.v. Đại số tuyến tính là một công cụ thiết yếu trong khoa học dữ liệu và máy móc học hỏi. Vì vậy, những người mới bắt đầu quan tâm đến khoa học dữ liệu phải tự làm quen với các khái niệm cơ bản trong đại số tuyến tính.

Liên quan:

Nguồn: https://www.kdnuggets.com/2021/05/essential-linear-algebra-data-science-machine-learning.html

Dấu thời gian:

Thêm từ Xe đẩy