Hướng dẫn pca plot python - pca âm mưu trăn
Let's take data following : Show
Let's consider data
I want to plot 3D plot of PCA with 3 components, however I'm only capable to do it for first two. My work so far
And in output we get : Do you know how to perform this for third principial component ? For sure it should be 3D but I'm not sure how to do it... IntroductionVới kỷ nguyên dữ liệu như hiện nay, một tập dữ liệu high-dimension (đa chiều) với hàng nghìn feature hay cột đã trở thành điều không quá xa lạ. High-dimension data mở hướng cho nhiều cách xử lý các bài toán phức tạp trong thực tế, có thể kể đến dự đoán cấu trúc protein liên quan COVID-19, phân tích hình ảnh MEG scan não, v.v. Tuy nhiên, một tập dữ liệu high-dimension lại thường chứa các feature kém (không đóng góp nhiều vào kết quả) dẫn đến việc giảm hiệu năng của mô hình. Và việc lựa chọn trong rất nhiều feature để chọn ra feature có ảnh hưởng lớn đến kết quả cũng trở nên khó khăn hơn. Một phương pháp thường được áp dụng là kỹ thuật dimensional reduction (hay giảm chiều dữ liệu nghe khá hiển nhiên). Ưu điểm của phương pháp này bao gồm: nghe khá hiển nhiên). Ưu điểm của phương pháp này bao gồm:
Các phương pháp thường chia thành hai hướng:
Trong đó cách thứ hai thường chia thành phương pháp linear và non-linear (hay manifold learning) 1. Feature Selection + EliminationPhương pháp dễ hiểu và thực hiện nhất. Một vài phương pháp phổ biến thường được dùng có thể kể đến như
Có thể tham khảo cụ thể hơn tại đây
hoặc mlxtend
Lưu ý là cả Backward Feature Elimination và Forward Feature Selection đều rất tốn thời gian và tài nguyên tính toán. Nên phương pháp chỉ thường chỉ sử dụng với các tập dữ liệu nhỏ, không nhiều feature. Ngoài ra thư viện scikit-learn cũng support một vài method tự động cho để chọn các feature tốt như Univariate Selection, recursive feature elimination... Với Feature Extraction, hãy sử dụng tập dữ liệu lớn hơn chút Fashion MNIST để thử nghiệm. Tập dữ liệu này bao gồm 70,000 ảnh với 60,000 ảnh train và 10,000 ảnh test. 2. Phương pháp LinearVới Feature extraction, bộ dữ liệu FashionMNIST được sử dụng để visualize tốt hơn. Chắc data này không còn lạ lẫm và hoàn toàn có thể tìm thấy trên google. Tuy nhiên mình cũng để 1 file link drive để tiện cho việc sử dụng với colab hơn nếu các bạn cần. Here
0
Tham khảo thêm bài này để hiểu kỹ hơn về PCA. Nhưng nhìn chung tóm tắt lại ý chính PCA:
1
2
3Independent Component Analysis: ICA phương pháp này dựa trên lý thuyết truyền ti và cũng là 1 một phương pháp rất phổ biến. PCA sẽ tìm các yếu tố ít tương quan trong khi ICA chú trọng vào các biến độc lập ICA phương pháp này dựa trên lý thuyết truyền ti và cũng là 1 một phương pháp rất phổ biến. PCA sẽ tìm các yếu tố ít tương quan trong khi ICA chú trọng vào các biến độc lập ICA phương pháp này dựa trên lý thuyết truyền ti và cũng là 1 một phương pháp rất phổ biến. PCA sẽ tìm các yếu tố ít tương quan trong khi ICA chú trọng vào các biến độc lập 43. Manifold learning hay non-linear methodMột hướng tiếp cận khác theo phi tuyến tính (hay dùng projection-phương pháp chiếu) là manifold learning. Có thể hiểu đơn giản là tận dụng đặc tính hình học để chiếu các điểm xuống chiều không gian thấp hơn mà vẫn giữ được đặc trưng của dữ liệu.
5
6
7
Dùng Hessian matrix thì cũng sử dụng LocallyLinearEmbeg dding của sklearn, với nhớ truyền tham số 1 và tham số 2 phải lớn hơn 3 là ok. 8
9
0SummaryKhông có phương pháp nào là 'bá đạo' cả, việc chọn method phù hợp phụ thuộc rất nhiều yếu tố, tính chất tập dữ liệu và kết hợp giữa các kỹ thuật khác nhau, từ đó tìm ra phương pháp tốt nhất. Và ngoài các điều trên, các kỹ thuật Dimensionality Reduction còn một vài hạn chế chung có thể kể đến như: mất mát dữ liệu khi giảm số chiều, trong kỹ thuật PCA, đôi khi không principal components cần thiết lại chưa được rõ ràng... Code Colab tham khảo. Trên đây là những phần mình tìm hiểu và sưu tầm được. Xin cám ơn các bạn đã quan tâm và theo dõi bài viết ^.^ References[1] https://towardsdatascience.com/11-dimensionality-reduction-techniques-you-should-know-in-2021-dcb9500d388b [2] https://towardsdatascience.com/dimensionality-reduction-for-machine-learning-80a46c2ebb7e [3] https://machinelearningmastery.com/dimensionality-reduction-for-machine-learning/ [4] https://towardsdatascience.com/techniques-for-dimensionality-reduction-927a10135356 [5] https://www.analyticsvidhya.com/blog/2018/08/dimensionality-reduction-techniques-python/ [6] https://gist.github.com/Amitdb123/1e191a36d1f36b7bdfcf13375e63694b#file-dimensionality_reduction-py [7] https://scikit-learn.org/stable/auto_examples/manifold/plot_compare_methods.html#sphx-glr-auto-examples-manifold-plot-compare-methods-py [8] https://www.kaggle.com/mtax687/explorations-of-fashion-mnist-dataset [9] https://www.analyticsvidhya.com/blog/2017/05/comprehensive-guide-to-linear-algebra/ |