PRINCIPAL COMPONENT ANALYSIS LÀ GÌ

Hello bạn bè, hôm nay chúng ta đang cùng mày mò với code demo món Principal Component Analysis (PCA) – hay chiêu bớt chiều tài liệu nhé!

Lúc học tập định hướng thì bạn bè vẫn thấy các bài tân oán bao gồm vài ba đặc trưng (features) với vector input đầu vào thường xuyên chỉ có độ dài 1,2 bộ phận. Nhưng lúc thao tác thực tiễn thì chúng ta vẫn tiếp tục buộc phải khuyến mãi với những input tất cả số đặc thù béo, dài dằng dặc và chúng ta chả biết quăng quật dòng làm sao, cần sử dụng mẫu nào cho vừa tác dụng vừa đỡ được chi phí tính tân oán.

Bạn đang xem: Principal component analysis là gì

Đó là lúc chúng ta nghĩ về mang đến PCA để sút chiều dữ liệu nhưng mà vẫn bảo quản được những đặc thù xuất sắc nhằm Ship hàng mang đến bài bác toán thù của chúng ta!

Trước lúc ban đầu bản thân xin phép được bỏ qua toàn cục phần tân oán phức hợp, chỉ phân tích và lý giải nghỉ ngơi cấp độ cơ bạn dạng để bọn họ – những người newbie say đắm ăn uống mì – có thể đọc với triển khai được thôi nhé!

Let’s go!

Phần 1 – Vậy PCA là gì?

PCA là viết tắt của Principal Component Analysis. Ta dịch thô thanh lịch giờ Việt là “Phân tích yếu tắc chính”, tạm thời gọi Theo phong cách “nông dân” của bản thân là ta đang so sánh dữ liệu với tiếp đến đưa ra các yếu tắc chủ yếu của dữ liệu nhằm lưu lại những yếu tắc kia. ví dụ như dữ liệu của bao gồm ta tất cả N features thì sau thời điểm vận dụng PCA đã còn K features thiết yếu nhưng thôi (KGiảm chiều dữ liệu nhưng mà vẫn duy trì được đặc thù chủ yếu, chỉ mất đi “chút ít ít” đặc trưng.Tiết kiệm thời hạn, ngân sách tính toánDễ dàng visualize dữ liệu rộng sẽ giúp đỡ ta có cái nhìn trực quan lại hơn.

Okie. Và tất nhiên K features này tất nhiên ko được lựa chọn đột nhiên, bọn họ đi tiếp nhé!

Các components tại chỗ này ta nói thực ra là những vectors chủ quyền tuyến đường tính được chọn làm sao để cho khi chiếu những điểm tài liệu lên vector kia thì các điểm tài liệu tất cả sự variance lớn nhất ( biến động những độc nhất vô nhị, phương thơm không nên béo nhất).

Xem thêm: Hướng Dẫn Crack Camtasia Studio 8 Full Crack, Tải Camtasia Studio 8


*

Ví dụ nhỏng hình bên trên, bọn họ lựa chọn 2 vector component theo lắp thêm tự: 1st Comp sẽ sở hữu cường độ variance lớn nhất, ta chọn trước, tiếp nối mang lại 2nd Comp…. và cứ đọng nỗ lực. lúc làm thực tiễn bọn họ đang đề nghị khẳng định hoặc demo không đúng coi đang lựa chọn từng nào components là phù hợp với mang lại công dụng tốt nhất.

Xét một quan điểm không giống thì PCA cũng là một trong những bài bác tân oán chuyển hệ tọa độ như hình dưới:


*

Okie, hiện thời vững chắc những các bạn sẽ vướng mắc tại sao đề xuất lựa chọn comp với mức độ tài liệu biến đổi thiên variance lớn nhất làm cái gi nhỉ? Chọn bừa cái nào chả được :D. Haha.

Lý vì chưng đây! Ví dụ xét bài toán phân các loại classification, ví dụ : Ung thư/ Không ung tlỗi, Spam/Normal…. Bây giờ nếu bọn họ chọn một comp mà chiếu lên kia các điểm dữ liệu ko high variance, nó đè lên trên nhau với teo nhiều lại một khu vực thì làm sao mà lại phân nhiều loại nổi. Nói biện pháp khác là làm sao tìm được đường tốt khía cạnh phẳng chia bóc tách những tài liệu kia thành 2 phần khác biệt cho 2 class không giống nhau. Do đó, ta đề nghị chọn comp thế nào cho lúc chiếu data lên comp đó thì nó high variance.

Okie rồi, tạm đọc những điều đó nhé chúng ta. Bây tiếng họ sẽ thử thực thi với Pynhỏ bé coi PCA nó mần răng.

Phần 2 – Triển khai Principal Component Analysis với Python

Để test phương pháp họ triển khai PCA với Pythanh mảnh, mình sẽ sử dụng một cỗ dữ liệu hơi phổ cập và tích vừa lòng sẵn trong Sklearn chính là Breast_Cancer – Ung thư vú. Dữ liệu này có nhiều features khác nhau cùng khá bùng nhùng (vì bản thân không tồn tại kiến thức và kỹ năng y khoa haha) và dùng nó nhằm minch họa PCA là chuẩn chỉnh bài bác rồi.

Đầu tiên là cứ cần import không hề thiếu những thỏng viện mẫu vẫn. Phần này là thói quen của chính mình khi thao tác làm việc cùng với data, bản thân cứ đọng import hết phòng ngừa thiếu


import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns%matplotlib inline
Code language: JavaScript (javascript)Okie, dứt rồi! Bây tiếng ta vẫn load tài liệu in ra coi data của họ nhỏng nào:


from sklearn.datasets import load_breast_cancer# Đọc dữ liệu trường đoản cú sklearncancer_phối = load_breast_cancer()# Chuyển thành DataFramecancer_data = pd.DataFrame(data=cancer_set <"data">, columns=cancer_set<"feature_names">)cancer_data.head()
Code language: PHP. (php)Và ta thấy tài liệu gồm cả mớ cột