Giảm Chiều Dữ Liệu và Ứng Dụng Trong Bài Toán Phân Lớp Dữ Liệu Lớn

Khám phá phương pháp giảm chiều dữ liệu và ứng dụng hiệu quả trong bài toán phân lớp dữ liệu lớn để tối ưu hóa quy trình phân tích.

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2023

61
5
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ GIẢM CHIỀU DỮ LIỆU

1.1. Khái niệm và một số tính chất của Giảm chiều dữ liệu

1.2. Các phương pháp giảm chiều dữ liệu

1.2.1. Phương pháp chọn thuộc tính (Feature selection)

1.2.2. Phương pháp trích chọn đặc tính (Feature extraction)

2. CHƯƠNG 2: GIẢM CHIỀU DỮ LIỆU VÀ PHƯƠNG PHÁP PCA

2.1. Giảm chiều dữ liệu bằng phương pháp PCA

2.2. Lựa chọn thuộc tính (Lựa chọn biến)

2.3. Phân tích suy biến (SVD – Singular Value Decomposition)

2.4. Phương pháp Compact SVD

2.5. Phương pháp Truncate SVD

2.6. Phương pháp PCA (Principal Components Analysis)

2.7. Một số biến thể của PCA

2.8. Mô hình sử dụng PCA

2.9. Giới thiệu về phân lớp dữ liệu

2.10. Mô hình DecisionTreeClassifer (mô hình cây quyết định)

2.11. Mô hình hồi quy logistic

2.12. Mô hình phân lớp Naive Bayes

2.13. Mô hình rừng cây ngẫu nhiên (Random Forests)

2.14. Mô hình hàng xóm gần nhất – KNN (K-nearest neighbor)

3. CHƯƠNG 3: THỰC NGHIỆM PHƯƠNG PHÁP GIẢM CHIỀU PCA VÀO BÀI TOÁN PHÂN LỚP PHÂN TÍCH RỜI BỎ DỊCH VỤ CỦA DOANH NGHIỆP BÁN HÀNG ONLINE

3.1. Mô tả tập dữ liệu

3.2. Quy trình dự báo KHÁCH HÀNG RỜI BỎ DỊCH VỤ DỰA TRÊN DOANH THU CỦA CỬA HÀNG KINH DOANH ONLINE

3.3. Định hướng phát triển trong tương lai

KẾT LUẬN CHUNG

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Giới Thiệu Nghiên Cứu Giảm Chiều Dữ Liệu Tổng Quan

Nghiên cứu về giảm chiều dữ liệu ngày càng trở nên quan trọng trong bối cảnh dữ liệu lớn bùng nổ. Giảm chiều dữ liệu, hay Dimensionality reduction, là quá trình biến đổi dữ liệu từ không gian nhiều chiều về không gian ít chiều hơn, trong khi vẫn cố gắng giữ lại những thông tin quan trọng nhất. Việc này không chỉ giúp đơn giản hóa việc lưu trữ và xử lý dữ liệu, mà còn cải thiện hiệu suất của các thuật toán học máy, đặc biệt là trong bài toán phân lớp dữ liệu. Các phương pháp Feature selectionFeature extraction đóng vai trò then chốt. Theo nghiên cứu của Nguyễn Vũ Phi Khanh (2023), việc áp dụng các phương pháp giảm chiều dữ liệu giúp tăng cường sự chính xác và tốc độ xử lý, tránh lãng phí tài nguyên. Khóa luận này tập trung vào ứng dụng giảm chiều dữ liệu vào bài toán phân lớp dữ liệu lớn, một vấn đề cấp thiết trong nhiều lĩnh vực.

1.1. Khái Niệm Cơ Bản về Giảm Chiều Dữ Liệu

Giảm chiều dữ liệu là kỹ thuật xử lý dữ liệu nhằm mục đích giảm số lượng biến hoặc thuộc tính của một tập dữ liệu. Mục tiêu là tạo ra một biểu diễn dữ liệu mới, gọn nhẹ hơn, nhưng vẫn giữ được những đặc trưng quan trọng. Dimensionality reduction có thể được thực hiện thông qua Feature selection, chọn một tập con các thuộc tính gốc, hoặc Feature extraction, tạo ra các thuộc tính mới từ các thuộc tính gốc. Điều này đặc biệt quan trọng khi làm việc với dữ liệu lớn, nơi mà số lượng thuộc tính có thể lên đến hàng nghìn hoặc thậm chí hàng triệu.

1.2. Tại Sao Giảm Chiều Dữ Liệu Lại Quan Trọng

Việc giảm chiều dữ liệu mang lại nhiều lợi ích. Thứ nhất, nó giúp giảm độ phức tạp tính toán của các thuật toán học máy, từ đó tăng tốc độ huấn luyện và dự đoán. Thứ hai, nó có thể loại bỏ nhiễu và các thuộc tính không liên quan, giúp cải thiện độ chính xác của mô hình. Thứ ba, nó cho phép trực quan hóa dữ liệu trong không gian ít chiều hơn, giúp con người dễ dàng hiểu và khám phá dữ liệu. Cuối cùng, giảm chiều có thể khắc phục hiện tượng quá khớp (overfitting) thường gặp trong Machine learning, đặc biệt với dữ liệu lớn.

II. Thách Thức Phân Lớp Dữ Liệu Lớn và Giải Pháp Giảm Chiều

Phân lớp dữ liệu lớn đặt ra nhiều thách thức đáng kể. Số lượng lớn các thuộc tính không chỉ làm tăng độ phức tạp tính toán mà còn có thể dẫn đến hiện tượng "lời nguyền chiều cao" (curse of dimensionality), làm giảm hiệu suất của các thuật toán phân lớp. Do đó, các phương pháp giảm chiều dữ liệu trở thành một giải pháp thiết yếu. Các thuật toán như PCA (Principal Component Analysis), LDA (Linear Discriminant Analysis), và Autoencoder được sử dụng rộng rãi để giảm số lượng thuộc tính trong khi vẫn giữ lại thông tin quan trọng. Việc lựa chọn phương pháp giảm chiều phù hợp phụ thuộc vào đặc điểm của dữ liệu và mục tiêu của bài toán phân lớp.

2.1. Vấn Đề Lời Nguyền Chiều Cao trong Dữ Liệu Lớn

"Lời nguyền chiều cao" (curse of dimensionality) là một vấn đề lớn trong Machine learning, đặc biệt khi làm việc với dữ liệu lớn có số lượng thuộc tính lớn. Khi số lượng thuộc tính tăng lên, không gian dữ liệu trở nên thưa thớt hơn, đòi hỏi nhiều dữ liệu hơn để huấn luyện mô hình một cách hiệu quả. Điều này có thể dẫn đến hiện tượng quá khớp (overfitting) và giảm khả năng khái quát hóa của mô hình. Giảm chiều dữ liệu giúp giảm thiểu tác động của "lời nguyền chiều cao" bằng cách giảm số lượng thuộc tính.

2.2. Tác Động của Độ Phức Tạp Tính Toán đến Hiệu Suất Thuật Toán

Độ phức tạp tính toán là một yếu tố quan trọng cần xem xét khi lựa chọn thuật toán phân lớp cho dữ liệu lớn. Các thuật toán phức tạp có thể cho kết quả chính xác hơn, nhưng chúng cũng đòi hỏi nhiều tài nguyên tính toán hơn và có thể mất nhiều thời gian để huấn luyện. Giảm chiều dữ liệu giúp giảm độ phức tạp của dữ liệu đầu vào, từ đó giảm độ phức tạp tính toán của thuật toán và cải thiện hiệu quả thuật toán. Điều này đặc biệt quan trọng trong các ứng dụng thời gian thực hoặc khi tài nguyên tính toán bị hạn chế.

III. PCA Phân Tích Thành Phần Chính Giảm Chiều Dữ Liệu

PCA (Principal Component Analysis) là một phương pháp giảm chiều dữ liệu tuyến tính phổ biến, được sử dụng để tìm ra các thành phần chính (principal components) của dữ liệu. Các thành phần chính là các hướng trong không gian dữ liệu mà dữ liệu biến đổi nhiều nhất. Bằng cách giữ lại một số lượng nhỏ các thành phần chính, ta có thể giảm số lượng thuộc tính của dữ liệu trong khi vẫn giữ lại phần lớn thông tin quan trọng. PCA đặc biệt hiệu quả khi dữ liệu có tính tương quan cao giữa các thuộc tính. Theo khóa luận của Nguyễn Vũ Phi Khanh, PCA giúp giảm chiều và cải thiện độ chính xác của các mô hình dự báo.

3.1. Nguyên Lý Hoạt Động của Thuật Toán PCA

PCA hoạt động bằng cách tìm ra các hướng trong không gian dữ liệu mà dữ liệu biến đổi nhiều nhất. Các hướng này được gọi là các thành phần chính. Thành phần chính đầu tiên là hướng mà dữ liệu biến đổi nhiều nhất, thành phần chính thứ hai là hướng vuông góc với thành phần chính đầu tiên mà dữ liệu biến đổi nhiều thứ hai, và cứ tiếp tục như vậy. Các thành phần chính được sắp xếp theo thứ tự giảm dần của phương sai mà chúng giải thích. Để giảm chiều dữ liệu, ta chỉ cần giữ lại một số lượng nhỏ các thành phần chính có phương sai lớn nhất.

3.2. Ưu Điểm và Hạn Chế của PCA trong Giảm Chiều Dữ Liệu

PCA có nhiều ưu điểm. Nó đơn giản, dễ hiểu và dễ thực hiện. Nó cũng rất hiệu quả trong việc giảm chiều dữ liệu và có thể cải thiện hiệu suất của các thuật toán học máy. Tuy nhiên, PCA cũng có một số hạn chế. Nó là một phương pháp tuyến tính, vì vậy nó có thể không hiệu quả nếu dữ liệu có tính phi tuyến. Nó cũng nhạy cảm với các giá trị ngoại lệ (outliers) và có thể không hoạt động tốt nếu dữ liệu không được chuẩn hóa. Ngoài ra, việc chọn số lượng thành phần chính cần giữ lại có thể là một thách thức.

IV. Ứng Dụng PCA Trong Phân Lớp Dữ Liệu Lớn Thực Tế

Trong thực tế, PCA được ứng dụng rộng rãi trong nhiều bài toán phân lớp dữ liệu lớn. Ví dụ, trong lĩnh vực nhận dạng ảnh, PCA có thể được sử dụng để giảm số lượng pixel trong ảnh, giúp giảm độ phức tạp tính toán của các thuật toán nhận dạng ảnh. Trong lĩnh vực tài chính, PCA có thể được sử dụng để giảm số lượng biến trong các mô hình dự báo rủi ro tín dụng. Theo nghiên cứu của Nguyễn Vũ Phi Khanh, PCA được áp dụng thành công trong việc phân tích và dự báo rời bỏ dịch vụ của doanh nghiệp bán hàng online. Việc sử dụng PCA giúp cải thiện đáng kể độ chính xác (Accuracy)hiệu quả thuật toán.

4.1. Ứng Dụng PCA trong Xử Lý Ảnh và Nhận Dạng Đối Tượng

Trong xử lý ảnh, mỗi ảnh có thể được biểu diễn bằng một ma trận các pixel, với số lượng pixel có thể rất lớn. Điều này làm cho việc huấn luyện các thuật toán Machine learning trên dữ liệu ảnh trở nên khó khăn. PCA có thể được sử dụng để giảm số lượng pixel trong ảnh bằng cách giữ lại các thành phần chính. Các thành phần chính này thường tương ứng với các đặc trưng quan trọng của ảnh, chẳng hạn như hình dạng và kết cấu. Điều này giúp giảm độ phức tạp tính toán và cải thiện hiệu suất của các thuật toán nhận dạng ảnh.

4.2. Sử Dụng PCA để Cải Thiện Mô Hình Dự Báo Rủi Ro Tín Dụng

Trong lĩnh vực tài chính, các mô hình dự báo rủi ro tín dụng thường sử dụng một số lượng lớn các biến, chẳng hạn như thông tin về lịch sử tín dụng, thu nhập, và tài sản của khách hàng. PCA có thể được sử dụng để giảm số lượng biến trong các mô hình này bằng cách giữ lại các thành phần chính. Các thành phần chính này thường tương ứng với các yếu tố quan trọng ảnh hưởng đến rủi ro tín dụng, chẳng hạn như khả năng thanh toán và độ tin cậy của khách hàng. Điều này giúp giảm độ phức tạp tính toán và cải thiện độ chính xác của các mô hình dự báo rủi ro tín dụng.

V. Đánh Giá Hiệu Năng Độ Chính Xác và Độ Đo F1 Sau Giảm Chiều

Việc đánh giá hiệu năng phân lớp sau khi áp dụng giảm chiều dữ liệu là rất quan trọng. Các chỉ số như độ chính xác (Accuracy), độ đo F1 (F1-score), độ nhạy (Recall), và độ chính xác (Precision) được sử dụng để đánh giá chất lượng của mô hình phân lớp. Ngoài ra, ROC CurveAUC (Area Under the Curve) cũng cung cấp thông tin quan trọng về khả năng phân biệt giữa các lớp của mô hình. Việc so sánh hiệu năng trước và sau khi giảm chiều giúp xác định xem phương pháp giảm chiều có thực sự cải thiện hiệu suất của mô hình hay không. Theo kết quả thực nghiệm của Nguyễn Vũ Phi Khanh, PCA có thể cải thiện độ chính xác của các mô hình phân lớp.

5.1. Các Chỉ Số Đánh Giá Phân Lớp Thường Dùng Sau Giảm Chiều Dữ Liệu

Sau khi giảm chiều dữ liệu, cần sử dụng các chỉ số để đánh giá lại hiệu quả của mô hình phân lớp. Độ chính xác (Accuracy) đo tỷ lệ dự đoán đúng trên tổng số dự đoán. Độ đo F1 (F1-score) là trung bình điều hòa của độ chính xác (Precision)độ nhạy (Recall), cung cấp một cái nhìn cân bằng hơn về hiệu suất của mô hình. Độ nhạy (Recall) đo tỷ lệ các trường hợp dương tính được dự đoán đúng. Độ chính xác (Precision) đo tỷ lệ các trường hợp được dự đoán là dương tính thực sự là dương tính. Ngoài ra, ROC CurveAUC cũng được sử dụng để đánh giá khả năng phân biệt giữa các lớp của mô hình.

5.2. ROC Curve và AUC Đánh Giá Khả Năng Phân Biệt Lớp

ROC Curve (Receiver Operating Characteristic curve) là một biểu đồ thể hiện mối quan hệ giữa độ nhạy (Recall) và tỷ lệ dương tính giả (False Positive Rate). AUC (Area Under the Curve) là diện tích dưới ROC Curve, và nó là một chỉ số đánh giá khả năng phân biệt giữa các lớp của mô hình. Một mô hình có AUC cao hơn có khả năng phân biệt giữa các lớp tốt hơn. ROC CurveAUC đặc biệt hữu ích khi đánh giá các mô hình phân lớp trên dữ liệu không cân bằng.

VI. Kết Luận và Hướng Nghiên Cứu Tương Lai về Giảm Chiều

Giảm chiều dữ liệu là một kỹ thuật quan trọng trong học máy, đặc biệt khi làm việc với dữ liệu lớn. Nó giúp giảm độ phức tạp tính toán, cải thiện độ chính xác của mô hình, và cho phép trực quan hóa dữ liệu. PCA là một phương pháp giảm chiều tuyến tính phổ biến và hiệu quả, nhưng nó cũng có một số hạn chế. Trong tương lai, các nghiên cứu có thể tập trung vào việc phát triển các phương pháp giảm chiều phi tuyến tính, hoặc kết hợp PCA với các kỹ thuật khác để cải thiện hiệu suất. Ngoài ra, việc nghiên cứu các ứng dụng mới của giảm chiều trong các lĩnh vực khác nhau cũng rất hứa hẹn.

6.1. Các Phương Pháp Giảm Chiều Phi Tuyến Tính Tiềm Năng

Mặc dù PCA là một phương pháp hiệu quả, nó có một hạn chế lớn là chỉ hoạt động tốt với dữ liệu có cấu trúc tuyến tính. Trong thực tế, nhiều tập dữ liệu có cấu trúc phi tuyến tính phức tạp mà PCA không thể nắm bắt được. Do đó, các phương pháp giảm chiều phi tuyến tính, chẳng hạn như t-SNE (t-distributed Stochastic Neighbor Embedding)Autoencoder, đang ngày càng trở nên phổ biến. Các phương pháp này có thể nắm bắt được các mối quan hệ phi tuyến tính trong dữ liệu và tạo ra các biểu diễn ít chiều hiệu quả hơn.

6.2. Hướng Nghiên Cứu Kết Hợp Giảm Chiều và Học Sâu Deep Learning

Sự kết hợp giữa giảm chiều dữ liệuhọc sâu (Deep Learning) là một hướng nghiên cứu đầy hứa hẹn. Autoencoder, một loại mạng nơ-ron nhân tạo, có thể được sử dụng để giảm chiều dữ liệu một cách hiệu quả. Autoencoder học cách mã hóa dữ liệu đầu vào thành một biểu diễn ít chiều, sau đó giải mã biểu diễn này trở lại dữ liệu đầu vào. Bằng cách huấn luyện Autoencoder để tái tạo dữ liệu đầu vào một cách chính xác, ta có thể thu được một biểu diễn ít chiều chứa đựng những thông tin quan trọng nhất của dữ liệu. Biểu diễn này có thể được sử dụng để huấn luyện các mô hình phân lớp hoặc cho các mục đích khác.

23/05/2025
Giảm chiều dữ liệu và ứng dụng trong bài toán phân lớp dữ liệu lớn

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TỔNG QUAN VỀ GIẢM CHIỀU DỮ LIỆU 1. KHÁI NIỆM VÀ MỘT SỐ TÍNH CHẤT CỦA GIẢM CHIỀU DỮ LIỆU 1. Khái niệm về Giảm chiều dữ liệu Giảm chiều dữ liệu (Dimensionality reduction hay dimension reduction), là sự biến đổi dữ liệu từ không gian chiều-cao thành không gian chiều-thấp để biểu diễn ở dạng chiều-thấp đồng thời giữ lại một số thuộc tính có ý nghĩa của dữ liệu gốc, có ý tưởng là gần với chiều nội tại (intrinsic dimension).1: Minh họa giảm chiều dữ liệu trong tập dữ liệu lớn Phân tích dữ liệu trong không gian chiều-cao có thể khó khăn vì nhiều lí do; dữ liệu thô thường có tính thưa thớt (Sparse matrix) là một hậu quả của việc biến đổi theo chiều, và do đó việc phân tích thường khó tính toán; hơn nữa các thuật toán có thể mất rất nhiều thời gian để xử lý dữ liệu. Giảm chiều dữ liệu là phổ biến trong các lĩnh vực có số lượng quan sát lớn hoặc số lượng biến lớn, chẳng hạn như xử lý tín hiệu, nhận dạng tiếng nói, thông tin học thần kinh và tin sinh học.

Các phương pháp giảm chiều dữ liệu thông thường được chia thành các phương pháp tiếp cận tuyến tính và phi tuyến tính. Các phương pháp cũng được chia thành chọn thuộc tính (Feature selection) và trích chọn đặc tính (Feature extraction). Giảm chiều dữ liệu có thể được sử dụng cho giảm nhiễu (noise reduction), trực quan hoá dữ liệu (data visualization), phân tích cụm, hoặc là một bước trung gian để tạo điều kiện thuận lời cho các phân tích khác. Vai trò của Giảm chiều dữ liệu Trong các bài toán học máy thì dữ liệu có kích thước rất lớn.

Máy tính có thể hiểu và thực thi các thuật toán trên dữ liệu này, tuy nhiên đối với con người để “nhìn” dữ liệu nhiều chiều rất khó. Vì vậy bài toán giảm chiều dữ liệu ra đời giúp đưa ra cái nhìn mới cho con người về dữ liệu nhiều chiều. Ngoài để trực quan dữ liệu, các phương pháp giảm chiều dữ liệu còn giúp đưa dữ liệu về một không gian mới giúp khai phá các thuộc tính ẩn mà trong chiều dữ liệu ban đầu không thể hiện rõ, hoặc đơn giản là giảm kích thước dữ liệu để tăng tốc độ thực thi cho máy tính.2: Ví dụ về tập dữ liệu huyền thoại Iris Ví dụ về tập dữ liệu huyền thoại Iris bao gồm 4 thuộc tính và 3 nhãn tương ứng với 3 loại hoa. Rất khó để có thể nhận biết rằng 4 thuộc tính này có phân tách với nhau theo mỗi loài hay không vì cần biểu diễn không gian này trên dữ liệu 4 chiều.

Vì vậy, thuật toán giảm dữ liệu giúp đưa về không gian 2 chiều để dễ dàng trực quan hoá trên hệ toạ độ Oxy, đổi lại là việc mất mát đi một lượng thông tin. Đây là kết quả: 6 Hình 1.3: Biểu đồ thể hiện dữ liệu sau khi được giảm chiều Nhìn vào đây, ta có thể dễ dàng phân tích hơn, có thể thấy lớp nào dễ nhầm lẫn với nhau, mức độ tách biệt giữa các lớp,… 1. CÁC PHƯƠNG PHÁP GIẢM CHIỀU DỮ LIỆU 1. Phương pháp chọn thuộc tính (Feature selection) Để xây dựng mô hình ta sẽ rất cần đến dữ liệu lớn.

Nhưng dữ liệu quá lớn cũng không thực sự tốt. Những hệ thống của các tập đoàn công nghệ lớn có thể có số lượng trường dữ liệu lên tới hàng trăm ngàn. Đây là một con số khổng lồ và sẽ gây ra những hạn chế đó là: - Tăng chi phí tính toán. - Quá nhiều biến giải thích có thể dẫn tới quá khớp (overfiting).

Tức hiện tượng mô hình hoạt động tốt trên tập huấn luyện nhưng kém trên tập kiểm tra. - Trong số các biến sẽ có những biến gây nhiễu và làm giảm chất lượng mô hình. - Rối loạn thông tin do không thể kiểm soát và hiểu hết các biến. 7 Chính vì thế ta cần phải có những phương pháp như giảm chiều dữ liệu hoặc lựa chọn biến quan trọng.

Về phương pháp giảm chiều dữ liệu sẽ được trình bày ở một chương khác. Trong chương này này ta sẽ làm quen với một số kĩ thuật lựa chọn biến thông dụng. Bên dưới là những thuật toán quan trọng được sử dụng để lựa chọn các biến. Phương pháp thống kê Một phương pháp quan trọng trong các phương pháp thống kê nhằm giảm số lượng biến là lựa chọn dựa trên phương sai.

Dựa trên phân tích các biến không biến động thì không có tác dụng gì trong việc phân loại hoặc dự báo bởi ta dường như đã biết được giá trị của chúng cho tất cả các quan sát. Do đó ý tưởng chính của phương pháp này là thông qua độ lớn phương sai của toàn bộ các biến numeric để loại bỏ những biến nếu nó nhỏ hơn một ngưỡi nhất định. Trong sklearn ta có thể sử dụng VarianceThreshold để lọc bỏ biến theo phương sai.feature_selection import VarianceThreshold from sklearn.datasets import make_classification # Khởi toạo dữ liệu example X, y = make_classification(n_samples=500, n_features=50, random_state=123) print('X shape:', X.shape) print('y shape:', y.shape) # Lọc bỏ các biến có phương sai nhỏ hơn 0.8 print('Total features with thres=0.shape)) # Lọc bỏ các biến có phương sai nhỏ hơn 1.fit_transform(X) print('Total features with thres=1.shape)) Ngoài phương pháp phương sai, ta có thể áp dụng kiểm định thống kê đơn biến. Phương pháp này sẽ đánh giá sự độc lập tuyến tính giữa hai biến ngẫu nhiên dựa trên phân phối chi-squared và Fisher để lựa chọn ra � biến tốt nhất.

Để hình dung kĩ hơn về hai phương pháp thống kê nêu trên, tiếp theo ta cùng thực hành lựa chọn biến và đánh giá hiệu quả mô hình.feature_selection import SelectKBest, f_classif from sklearn.linear_model import LogisticRegression from sklearn.model_selection import cross_val_score # Lựa chọn biến dựa trên phương pháp Fisher X_kbest = SelectKBest(f_classif, k = 5).fit_transform(X, y) print('X shape after applying statistical selection: ',X_kbest.shape) Ta sẽ đánh giá hiệu quả mô hình bằng cross-validation trước và sau lựa chọn biến với KFold = 5. # Hồi qui logistic logit = LogisticRegression(solver='lbfgs', random_state=1) # Cross validation cho: # 1.dữ liệu gốc acc_org = cross_val_score(logit, X, y, scoring = 'accuracy', cv = 5). Áp dụng phương sai acc_var = cross_val_score(logit, X_kvar, y, scoring = 'accuracy', cv = 5). Áp dụng phương pháp thống kê acc_stat = cross_val_score(logit, X_kbest, y, scoring = 'accuracy', cv = 5).

Sử dụng mô hình Đây là phương pháp rất thường xuyên được áp dụng trong các cuộc thi phân tích dữ liệu. ta sẽ dựa trên một số mô hình cơ sở để đánh giá mức độ quan trọng của các biến. Có hai lớp mô hình thường được sử dụng để đánh biến đó là Random Forest và Linear Regression. Ưu điểm của các phương pháp này là kết quả đánh giá rất chuẩn xác, tuy nhiên nhược điểm của chúng là phải xây dựng mô hình hồi qui rồi mới xác định được biến quan trọng.

Điều này dường như đi trái lại với thực tế phải lựa chọn biến trước khi huấn luyện mô hình. Để áp dụng phương pháp này ta thực hiện như sau: from sklearn.ensemble import RandomForestClassifier from sklearn.svm import LinearSVC from sklearn.linear_model import Lasso from sklearn.feature_selection import SelectFromModel from sklearn.model_selection import cross_val_score from sklearn.pipeline import make_pipeline # Hồi qui theo RandomForest rdFrt = RandomForestClassifier(n_estimators = 20, random_state = 1) 9 # Hồi qui theo LinearSVC lnSVC = LinearSVC(C=0.01, penalty="l1", dual=False) # Hồi qui theo Lasso lassoReg = Lasso(alpha = 1.0) # Tạo một pipeline thực hiện lựa chọn biến từ RandomForest model và hồi qui theo logit pipe1 = make_pipeline(StandardScaler(), SelectFromModel(estimator = rdFrt), logit) # Tạo một pipeline thực hiện lựa chọn biến từ Linear SVC model và hồi qui theo logit pipe2 = make_pipeline(StandardScaler(), SelectFromModel(estimator = lnSVC), logit) # Cross validate đối với # 1. Mô hình logit acc_log = cross_val_score(logit, X, y, scoring = 'accuracy', cv = 5). Mô hình RandomForest acc_rdf = cross_val_score(rdFrt, X, y, scoring = 'accuracy', cv = 5).

Mô hình pipe1 acc_pip1 = cross_val_score(pipe1, X, y, scoring = 'accuracy', cv = 5). Mô hình pipe2 acc_pip2 = cross_val_score(pipe2, X, y, scoring = 'accuracy', cv = 5).mean() print('Accuracy theo logit:', acc_log) print('Accuracy theo random forest:', acc_rdf) print('Accuracy theo pipeline 1:', acc_pip1) print('Accuracy theo pipeline 2:', acc_pip2) Như vậy select dựa trên mô hình Random Forest và Linear SVC đã có hiệu quả trong việc cải thiện độ chính xác của mô hình. Bên cạnh việc thực hiện lựa chọn biến dựa trên model, ta còn có thể lựa chọn biến theo grid search. Sử dụng Search a, Exhaustive Search Ý tưởng chính của phương pháp này là tìm ra một tập con các đặc trưng tốt nhất trong số các đặc trung đầu vào dựa trên một thước đo mô hình cụ thể (chẳng hạn như accuracy).

Ví dụ, khi có tổng cộng n đặc trưng thì cần huấn luyện mô hình trên tất cả các kết hợp từ 1,2,3,…,n đặc trưng. Tổng số lượng các kết hợp có thể sẽ là: 𝑛 𝑛 𝑛 𝑛 ( ) + ( ) + ( ) + ⋯ + ( ) = 2𝑛 − 1 1 2 3 𝑛 Đây là số lượng không hề nhỏ nếu bộ dữ liệu của bạn có số lượng đặc trưng lớn. Chính vì thế phương pháp này được coi là Exhaustive và chỉ phù hợp với những bộ dữ liệu có số lượng đặc trưng nhỏ. Ưu điểm của phương pháp này mang 10 lại đó là giúp tìm ra được tập con đặc trưng tốt nhất trực tiếp thông qua đánh giá Accuracy.

b, Sequential Feature Selection Nếu như ta tìm kiếm trên toàn bộ các bộ kết hợp đặc trưng đầu vào của mô hình sẽ rất lâu. Do đó việc đầu tiên ta cần thực hiện là giới hạn không gian tìm kiếm. Tuỳ theo hướng tìm kiếm là tăng biến hoặc giảm biến mà phương pháp này bao gồm hai hai lựa chọn là: forward hoặc backward tương ứng. Theo lựa chọn forward thì ban đầu ta xuất phát từ lựa chọn 1 đặc trưng đầu vào mà mô hình có kết quả tốt nhất.

Ở các bước tiếp theo ta sẽ tìm ra một đặc trưng phù hợp nhất để thêm vào mô hình sao cho thước đo đánh giá mô hình là lớn nhất. Quá trình này tiếp tục cho đến khi số lượng các đặc trưng được thêm vào đạt mức tối đa k_features hoặc tới khi hàm loss fuction mô hình không giảm nữa. Theo chiều ngược lại, bắt đầu từ toàn bộ các đặc trưng và loại dần đặc trưng thì sẽ là backward. So với phương pháp Exhaustive Search thì Sequential Feature Selection ít tốn kém hơn về chi phí nhưng không đảm bảo chắc chắn rằng tập hợp đặc trưng tìm được là tối ưu.

Hướng di chuyển tìm kiếm theo forward và backward cũng hoàn toàn là lựa chọn may rủi. Bên dưới ta sẽ tiến hành áp dụng phương pháp Sequential Feature Selection để tìm kiếm đặc trưng theo backward với số biến cần lựa chọn là k_features=3. %%script echo skipping !pip install mlxtend from mlxtend.feature_selection import SequentialFeatureSelector selector = SequentialFeatureSelector(logit, scoring = 'accuracy', verbose = 2, k_features = 3, forward = False, n_jobs = -1) selector.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Nghiên Cứu Giảm Chiều Dữ Liệu và Ứng Dụng Trong Phân Lớp Dữ Liệu Lớn" cung cấp cái nhìn sâu sắc về các phương pháp giảm chiều dữ liệu, một kỹ thuật quan trọng trong việc xử lý và phân tích dữ liệu lớn. Tài liệu này không chỉ giải thích các khái niệm cơ bản mà còn trình bày các ứng dụng thực tiễn của chúng trong việc phân lớp dữ liệu, giúp người đọc hiểu rõ hơn về cách tối ưu hóa quy trình phân tích dữ liệu.

Đặc biệt, tài liệu nhấn mạnh lợi ích của việc giảm chiều dữ liệu trong việc cải thiện hiệu suất của các thuật toán học máy, từ đó giúp người đọc có thể áp dụng những kiến thức này vào thực tiễn. Để mở rộng thêm kiến thức, bạn có thể tham khảo tài liệu Bài toán xấp xỉ hàm nhiễu biến và mạng rbf, nơi cung cấp cái nhìn về các phương pháp xấp xỉ hàm trong bối cảnh dữ liệu phức tạp.

Ngoài ra, tài liệu Mạng nơron wavelet ứng dụng cho xấp xỉ phi tuyến sẽ giúp bạn khám phá thêm về các mạng nơron và ứng dụng của chúng trong việc xấp xỉ phi tuyến, một lĩnh vực liên quan mật thiết đến phân lớp dữ liệu. Cuối cùng, tài liệu Nghiên cứu một số thuật toán học máy để phân lớp dữ liệu và thử nghiệm sẽ cung cấp cho bạn cái nhìn tổng quan về các thuật toán học máy hiện có, giúp bạn nắm bắt được các phương pháp phân lớp hiệu quả hơn.

Những tài liệu này không chỉ mở rộng kiến thức của bạn mà còn cung cấp những góc nhìn đa dạng về các vấn đề liên quan đến phân tích và xử lý dữ liệu lớn.