CHƯƠNG 1: CƠ SỞ LÝ LUẬN VỀ PHÂN LỚP DỮ LIỆU MẤT CÂN BẰNG 1. Phân lớp dữ liệu 1. Khái niệm về phân lớp dữ liệu và bài toán phân lớp dữ liệu • Phân lớp dữ liệu: Phân lớp dữ liệu (classification) là một trong những hướng nghiên cứu chính của khai phá dữ liệu. Thực tế đặt ra nhu cầu là từ một cơ sở dữ liệu với nhiều thông tin ẩn con người có thể rút trích ra các quyết định nghiệp vụ thông minh.
Phân lớp là một dạng của phân tích dữ liệu nhằm rút trích ra một mô hình mô tả các lớp dữ liệu quan trọng hay dự đoán xu hướng dữ liệu trong tương lai. Phân lớp dự đoán giá trị của những nhãn xác định (categorical label) hay những giá trị rời rạc (discrete value), có nghĩa là phân lớp thao tác với những đối tượng dữ liệu mà có bộ giá trị là biết trước. Trong khi đó, dự đoán lại xây dựng mô hình với các hàm nhận giá trị liên tục. Ví dụ mô hình phân lớp dự báo thời tiết có thể cho biết thời tiết ngày mai là mưa, hay nắng dựa vào những thông số về độ ẩm, sức gió, nhiệt độ,.
của ngày hôm nay và các ngày trước đó. Hay nhờ các luật về xu hướng mua hàng của khách hàng trong siêu thị, các nhân viên kinh doanh có thể ra những quyết sách đúng đắn về lượng mặt hàng cũng như chủng loại bày bán. Một mô hình dự đoán có thể dự đoán được lượng tiền tiêu dùng của các khách hàng tiềm năng dựa trên những thông tin về thu nhập và nghề nghiệp của khách hàng. Trong những năm qua, phân lớp dữ liệu đã thu hút sự quan tâm các nhà nghiên cứu trong nhiều lĩnh vực khác nhau như học máy (machine learning), hệ chuyên gia (expert system), thống kê (statistics).
Công nghệ này cũng ứng dụng trong nhiều lĩnh vực khác nhau như: thương mại, marketing, nghiên cứu thị trường, bảo hiểm, y tế, giáo dục. Phần lớn các thuật toán ra đời trước đều sử dụng cơ chế dữ liệu cư trú trong 4 bộ nhớ (memory resident), thường thao tác với lượng dữ liệu nhỏ. Một số thuật toán ra đời sau này đã sử dụng kỹ thuật cư trú trên đĩa cải thiện đáng kể khả năng mở rộng của thuật toán với những tập dữ liệu lớn lên tới hàng tỷ bản ghi. • Bài toán phân lớp dữ liệu: Là quá trình phân lớp một đối tượng dữ liệu vào một hay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model).
Mô hình này được xây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gán nhãn (còn gọi là tập huấn luyện). Quá trình phân lớp là quá trình gán nhãn cho đối tượng dữ liệu. Nhiệm vụ của bài toán phân lớp là cần tìm một mô hình phân lớp để khi có dữ liệu mới thì có thể xác định được dữ liệu đó thuộc vào phân lớp nào. Bài toán phân lớp dữ liệu có thể được mô tả như hình 1.
Mô hình mô tả bài toán phân lớp dữ liệu Bài toán phân lớp dữ liệu có thể phát biểu tổng quát như sau: Cho U = {A1, A2,…., Am} là tập có m thuộc tính, Y = {y1, y2, …., yn} là tập các nhãn của lớp: với 𝐷 = 𝐴1 × … × 𝐴𝑚 là tích Đề - các của các miền của m thuộc tính tương ứng có n số lớp và N là số mẫu dữ liệu. Mỗi dữ liệu 𝑑𝑖 ∈ 𝐷 thuộc một lớp 𝑦𝑖 ∈ 𝑌 tương ứng tạo thành từng cặp (𝑑𝑖 , 𝑦𝑖 ) ∈ (𝐷, 𝑌). Quy trình thực hiện phân lớp dữ liệu Quy trình thực hiện phân lớp dữ liệu thường được thực hiện theo 2 bước: Bước thứ nhất (learning) quá trình học để xây dựng mô hình phân lớp và bước thứ hai áp dụng mô hình phân lớp ở bước thứ nhất để phân lớp dữ liệu mới. 5 • Bước thứ nhất (learning) Quá trình học nhằm xây dựng một mô hình mô tả một tập các lớp dữ liệu hay các khái niệm định trước.
Đầu vào của quá trình này là một tập dữ liệu có cấu trúc được mô tả bằng các thuộc tính và được tạo ra từ tập các bộ giá trị của các thuộc tính đó. Mỗi bộ giá trị được gọi chung là một phần tử dữ liệu (data tuple), có thể là các mẫu (sample), ví dụ (example), đối tượng (object), bản ghi (record) hay trường hợp (case). Khoá luận sử dụng các thuật ngữ này với nghĩa tương đương. Trong tập dữ liệu này, mỗi phần tử dữ liệu được giả sử thuộc về một lớp định trước, lớp ở đây là giá trị của một thuộc tính được chọn làm thuộc tính gán nhãn lớp hay thuộc tính phân lớp (class label attribute).
Đầu ra của bước này thường là các quy tắc phân lớp dưới dạng luật dạng if-then, cây quyết định, công thức logic, hay mạng nơron. Quá trình này được mô tả như trong hình 1. Quá trình phân lớp dữ liệu - Bước xây dựng mô hình phân lớp 6 • Bước thứ hai (classification) Bước thứ hai dùng mô hình đã xây dựng ở bước trước để phân lớp dữ liệu mới. Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra được ước lượng.
Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó. Kỹ thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp. Các mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo. Độ chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỷ lệ phần trăm các các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế).
Nếu độ chính xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu. Quá vừa dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực tế vì quá trình xây dựng mô hình phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập dữ liệu đó. Do vậy cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo. Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là chưa biết.3 Quá trình phân lớp dữ liệu - Ước lượng độ chính xác của mô hình 7 Hình 1.4 Quá trình phân lớp dữ liệu - Phân lớp dữ liệu mới Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định tới sự thành công của mô hình phân lớp.
Do vậy chìa khóa của vấn đề phân lớp dữ liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả năng mở rộng được. Trong đó khả năng mở rộng của thuật toán được đặc biệt chú trọng và phát triển. Các độ đo đánh giá mô hình phân lớp dữ liệu Để đánh giá một mô hình phân lớp dữ liệu, việc đầu tiên, và thông thường nhất mà các chuyên gia thường thực hiện đó là chia tập dữ liệu thành các phần phục vụ cho việc huấn luyện mô hình (Training Data) và kiểm chứng mô hình (Testing Data). Xây dựng model thông qua việc lựa chọn thuật toán, xác định các biến dữ liệu, hay điều chỉnh các tham số… sao cho phù hợp sẽ dựa trên dữ liệu training.
Sau khi hoàn thành cơ bản mô hình, tiến hành sử dụng dữ liệu test để thử nghiệm mô hình bằng cách kết hợp nhiều công thức, chỉ số khác nhau để đánh giá mức độ chính xác với input là các kết quả có được khi chạy mô hình với dữ liệu test. Vậy quá trình đánh giá mô hình phân lớp thường chia làm 2 phần hay hướng tiếp cận: phân chia bộ dữ liệu để huấn luyện và kiểm chứng mô hình; sử dụng các chỉ số để đánh giá độ hiệu quả. Một số tiêu chí mô tả độ hiệu quả của mô hình phân lớp: 8 - Accuracy: Khả năng mô hình phân lớp dự báo, phân loại hay xác định đúng class cho dữ liệu cần phân loại. - Speed: Tốc độ hay khả năng mô hình đưa ra kết quả phân tích nhanh chóng, nó còn liên qua đến chi phí tính toán khi xây dựng, và sử dụng mô hình.
- Robustness: Khả năng của mô hình xử lý nhiễu hoặc dữ liệu với các giá trị bị thiếu và đưa ra dự đoán chính xác. - Scalability: Phương pháp hay khả năng xây dựng mô hình phân lớp hiệu quả trong xử lý, phân tích lượng lớn dữ liệu. - Interpreability: Liên quan đến khả năng giải thích, mứa độ phức tạp của mô hình hay nói cách khác cấu trúc mô hình, phương pháp xây dựng mô hình có dễ hiểu hay không. Đánh giá mô hình là một phần không thể thiếu trong quá trình phát triển mô hình, giúp tìm ra mô hình tốt nhất, phù hợp nhất với mục tiêu nghiên cứu, và loại dữ liệu.
Có 2 phương pháp đánh giá phổ biến là holdout và cross- validation. • Holdout: Phương pháp Holdout, là phương pháp phân chia ngẫu nhiên tập dữ liệu thành 2 tập dữ liệu độc lập là: tập dữ liệu huấn luyện và tập kiểm định mô hình. Mục đích của phương pháp Holdout là kiểm tra độ hiệu quả của mô hình khi sử dụng nhiều tập dữ liệu khác nhau. Cụ thể trong phương pháp Holdout ta sẽ có các tập dữ liệu: - Training set: Dữ liệu phục vụ xây dựng mô hình, xác định các thuật toán, biến dữ liệu phù hợp - Validation set: Là dữ liệu được sử dụng để đánh giá hiệu suất của mô hình được xây dựng trong giai đoạn huấn luyện, hỗ trợ thử nghiệm để tinh chỉnh các tham số mô hình và chọn mô hình hoạt động tốt nhất.
Tuy nhiên không phải mọi thuật toán phân lớp nào cũng cần Validation set, nên phương 9 pháp Holdout thông thường chỉ cần 2 tập dữ liệu training và test data mà thôi. - Test set: Là dữ liệu được sử dụng để đánh giá độ hiệu quả của mô hình, mức độ chính xác trong việc phân loại dữ liệu (không chứa nhãn phân loại). Thường tỉ lệ phân chia cho training data set là 70% và test data set là 30%. Ưu điểm của Holdout là nhanh chóng, đơn giản và linh hoạt.
Tuy nhiên, phương pháp này thường dẫn đến độ biến thiên cao do sự khác biệt lớn trong 2 tập dữ liệu, dẫn đến sự khác biệt trong việc phân lớp hay dự đoán. Do đó việc áp dụng Holdout cần kết hợp các phương pháp để kiểm tra mức độ khác biệt của 2 tập dữ liệu.