Chiều nội tại

Unsupervised Learning bằng Python

Benjamin Wilson

Director of Research at lateral.io

Chiều nội tại của lộ trình bay

  • 2 đặc trưng: kinh độ và vĩ độ tại các điểm trên lộ trình bay
  • Tập dữ liệu có vẻ 2D
  • Nhưng có thể xấp xỉ bằng 1 đặc trưng: độ dịch chuyển dọc lộ trình
  • Thực chất 1D
latitude  longitude
  50.529     41.513
  50.360     41.672
  50.196     41.835
...

Biểu đồ scatter: kinh độ so với vĩ độ

Unsupervised Learning bằng Python

Chiều nội tại

  • Chiều nội tại = số đặc trưng cần để xấp xỉ dữ liệu
  • Ý tưởng cốt lõi của giảm chiều
  • Biểu diễn gọn nhất của các mẫu là gì?
  • Có thể phát hiện bằng PCA
Unsupervised Learning bằng Python

Bộ dữ liệu Versicolor

  • "versicolor", một loài iris
  • Chỉ 3 đặc trưng: chiều dài đài hoa, chiều rộng đài hoa, và chiều rộng cánh hoa
  • Mẫu là các điểm trong không gian 3D
Unsupervised Learning bằng Python

Bộ Versicolor có chiều nội tại là 2

  • Các mẫu nằm gần một mặt phẳng 2D
  • Nên có thể xấp xỉ bằng 2 đặc trưng

Các điểm Versicolor trong 3D: chiều dài đài vs chiều rộng đài vs chiều rộng cánh

Unsupervised Learning bằng Python

PCA xác định chiều nội tại

  • Biểu đồ scatter chỉ hiệu quả khi mẫu có 2 hoặc 3 đặc trưng
  • PCA xác định chiều nội tại khi số đặc trưng bất kỳ
  • Chiều nội tại = số đặc trưng PCA có phương sai đáng kể
Unsupervised Learning bằng Python

PCA của các mẫu versicolor

Các điểm versicolor đã xoay trong không gian 3D: PC1 vs PC2 vs PC3

Unsupervised Learning bằng Python

Đặc trưng PCA được sắp xếp giảm dần theo phương sai

Biểu đồ cột: số đặc trưng PCA so với phương sai

Unsupervised Learning bằng Python

Phương sai và chiều nội tại

  • Chiều nội tại là số đặc trưng PCA có phương sai đáng kể
  • Ví dụ này: 2 đặc trưng PCA đầu tiên
  • Vậy chiều nội tại là 2

Biểu đồ cột: số đặc trưng PCA vs phương sai, có vạch đỏ đứng giữa 1 và 2

Unsupervised Learning bằng Python

Vẽ phương sai của các đặc trưng PCA

  • samples = mảng các mẫu versicolor
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA

pca = PCA()
pca.fit(samples)
PCA()
features = range(pca.n_components_)
Unsupervised Learning bằng Python

Vẽ phương sai của các đặc trưng PCA

plt.bar(features, pca.explained_variance_)
plt.xticks(features)
plt.ylabel('variance')
plt.xlabel('PCA feature')
plt.show()

Biểu đồ cột: số đặc trưng PCA so với phương sai

Unsupervised Learning bằng Python

Chiều nội tại có thể mơ hồ

  • Chiều nội tại là một lý tưởng hóa
  • ... không phải lúc nào cũng có một đáp án đúng!
  • Rượu Piedmont: có thể lập luận là 2, 3, hoặc nhiều hơn

Biểu đồ cột: số đặc trưng PCA vs phương sai cho bộ dữ liệu rượu

Unsupervised Learning bằng Python

Ayo berlatih!

Unsupervised Learning bằng Python

Preparing Video For Download...