Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Giải thích cơ bản về thư viện scikit-learn trong Python

Scikit-learn, thường gọi là sklearn, là một thư viện trong Python dùng để triển khai các thuật toán học máy.

Đây là thư viện mã nguồn mở do đó có thể sử dụng miễn phí. Mạnh mẽ và 견固, vì cung cấp nhiều công cụ để thực hiện mô hình thống kê. Bao gồm phân loại, hồi quy, phân cụm, giảm chiều, và nhiều hơn nữa nhờ giao diện mạnh mẽ và ổn định trong Python. Thư viện này được xây dựng trên NumPy, SciPy và Matplotlib.

Có thể cài đặt bằng lệnh pip như sau:

pip install scikit-learn

Thư viện này tập trung vào mô hình hóa dữ liệu.

Có nhiều mô hình được dùng trong scikit-learn, dưới đây là tóm tắt một số loại chính.

Thuật toán học có giám sát (Supervised Learning)

Thuật toán học có giám sát được "dạy" để hoạt động theo một cách nhất định. Một đầu ra mong muốn được ánh xạ đến một đầu vào nhất định, từ đó cung cấp sự giám sát của con người. Điều này có thể thực hiện bằng cách gán nhãn cho các đặc trưng (biến trong tập dữ liệu đầu vào), cung cấp phản hồi cho dữ liệu (dự đoán có đúng không, nếu không thì dự đoán đúng là gì), v.v.

Khi thuật toán được huấn luyện hoàn toàn trên dữ liệu đầu vào như vậy, nó có thể được khái quát hóa để hoạt động cho các loại dữ liệu tương tự. Nó sẽ có khả năng dự đoán kết quả cho các đầu vào chưa từng thấy nếu mô hình được huấn luyện có chỉ số hiệu suất tốt. Đây là thuật toán học tốn kém vì con người cần gán nhãn thủ công cho tập dữ liệu đầu vào, làm tăng chi phí.

Sklearn giúp triển khai Hồi quy tuyến tính (Linear Regression), Máy vectơ hỗ trợ (Support Vector Machine), Cây quyết định (Decision Tree), v.v.

Học không giám sát (Unsupervised Learning)

Đây là đối lập với học có giám sát, tức là tập dữ liệu đầu vào không được gán nhãn, do đó không có sự giám sát của con người. Thuật toán học từ dữ liệu không nhãn này, trích xuất mẫu hình, thực hiện dự đoán, đưa ra thông tin chi tiết về dữ liệu và thực hiện các phép toán khác tự động. Hầu hết dữ liệu thực tế đều phi cấu trúc và không nhãn.

Sklearn giúp triển khai phân cụm (clustering), phân tích nhân tố (factor analysis), phân tích thành phần chính (PCA), mạng nơ-ron (neural networks), v.v.

Phân cụm (Clustering)

Dữ liệu tương tự được gom nhóm vào một cấu trúc và bất kỳ nhiễu nào (ngoại lệ hoặc dữ liệu bất thường) sẽ rơi ra ngoài cụm này, có thể sau đó bị loại bỏ hoặc bỏ qua.

Xác thực chéo (Cross Validation)

Là quá trình chia tập dữ liệu gốc thành hai phần: 'tập huấn luyện' (training dataset) và 'tập kiểm tra' (testing dataset). Nhu cầu của 'tập xác thực' (validation dataset) bị loại bỏ khi sử dụng xác thực chéo. Có nhiều biến thể của phương pháp 'xác thực chéo'. Phương pháp phổ biến nhất là 'k-fold cross-validation'.

Giảm chiều (Dimensionality Reduction)

Giảm chiều đề cập đến các kỹ thuật dùng để giảm số lượng đặc trưng trong tập dữ liệu. Nếu số đặc trưng quá lớn, thường khó khăn trong việc xây dựng mô hình. Nếu tập dữ liệu đầu vào có quá nhiều biến, hiệu suất thuật toán học máy có thể giảm đáng kể.

Việc có số chiều lớn trong không gian đặc trưng đòi hỏi lượng bộ nhớ lớn, nghĩa là không phải tất cả dữ liệu đều được biểu diễn phù hợp trên không gian (các hàng dữ liệu). Điều này ảnh hưởng đến hiệu suất thuật toán học máy, còn được gọi là ' nguyền chiều ' (curse of dimensionality). Do đó khuyến nghị giảm số đặc trưng đầu vào. Đó là lý do cho tên 'giảm chiều'.