Đề tài Phát hiện luật bằng cách sử dụng siêu phẳng tối ưu theo hướng tiếp cân tập thô

Tài liệu Đề tài Phát hiện luật bằng cách sử dụng siêu phẳng tối ưu theo hướng tiếp cân tập thô: TÓM TĂT KHOÁ LUẬN TỐT NGHIỆP Cùng với sự phát triển của Công Nghệ Thông Tin ngày nay, khai phá tri thức trong các cơ sở dư liệu lớn là một trong nhưng lĩnh vực được rất nhiều nhà nguyên cứu và ứng dụng tin học đặc biệt quan tâm. Việc nguyên cứu những phương pháp có thể tự động phát hiện những tri thức mới trong cơ sở dư liệu trên máy tính đã tỏ ra thực sự hữu ích trong việc hỗ trợ quyết định cho con người. Hiện nay, trên thế giới có rất nhiều thuật toán khai phá tri thức bằng cách phân lớp và rời rạc dữ liệu như: Sử dụng cây quyết định, phương pháp thống kê, các mạng nơ ron, thuật toán di truyền,...Trong một vài năm gần đây, lý thuyết tâp thô được nhiều nhóm nguyên cứu hoạt động trong lĩnh vực tin học nói chung và khai phá tri thức nói riêng nguyên cứu và áp dụng trong thực tế. Lý thuyết tập thô được xây dựng trên nền tảng toán học vững chắc giúp cung cấp những công cụ hữu ích để giải quyết những bài toán phân lớp dữ liệu và khai phá luật,...Với đặc tính có thể ...

pdf63 trang | Chia sẻ: hunglv | Lượt xem: 1203 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Phát hiện luật bằng cách sử dụng siêu phẳng tối ưu theo hướng tiếp cân tập thô, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TÓM TĂT KHOÁ LUẬN TỐT NGHIỆP Cùng với sự phát triển của Công Nghệ Thông Tin ngày nay, khai phá tri thức trong các cơ sở dư liệu lớn là một trong nhưng lĩnh vực được rất nhiều nhà nguyên cứu và ứng dụng tin học đặc biệt quan tâm. Việc nguyên cứu những phương pháp có thể tự động phát hiện những tri thức mới trong cơ sở dư liệu trên máy tính đã tỏ ra thực sự hữu ích trong việc hỗ trợ quyết định cho con người. Hiện nay, trên thế giới có rất nhiều thuật toán khai phá tri thức bằng cách phân lớp và rời rạc dữ liệu như: Sử dụng cây quyết định, phương pháp thống kê, các mạng nơ ron, thuật toán di truyền,...Trong một vài năm gần đây, lý thuyết tâp thô được nhiều nhóm nguyên cứu hoạt động trong lĩnh vực tin học nói chung và khai phá tri thức nói riêng nguyên cứu và áp dụng trong thực tế. Lý thuyết tập thô được xây dựng trên nền tảng toán học vững chắc giúp cung cấp những công cụ hữu ích để giải quyết những bài toán phân lớp dữ liệu và khai phá luật,...Với đặc tính có thể xử lý được những dữ liệu mơ hồ, không chắc chắn tập thô tỏ ra rất hữu ích trong việc giải quyết những bài toán thực tế. Từ những bảng dữ liệu lớn với dữ liệu dư thừa, không hoàn hảo, dữ liệu liên tục, hay dữ liệu dưới dạng ký hiệu lý thuyết tập thô cho phép khai phá tri thức từ những khối dữ liệu này nhằm phát hiện những luật tiềm ẩn từ khối dữ liệu này. Trong khoá luân tốt nghiệp chúng tôi đã trình bày một số phương pháp rời rạc hoá dữ liệu theo hướng tiếp cận tập thô. Và xây dựng chương trình thử nghiệm: phát hiện luật bằng cách sử dụng siêu phẳng tối ưu theo hướng tiếp cân tập thô. Chương trình được xây dựng để thử nghiệm trên bộ dữ liệu chứa thông tin về 768 bệnh nhân bị bệnh tiểu đường cung cấp bởi tổ chức “National Institute of Diabetes and Digestive and Kidney Diseases”. Từ đó xây dựng hệ thống các luật dựa trên cây quyết định dùng để hỗ trợ việc khám bệnh của các bác sĩ. MỤC LỤC MỤC LỤC .......................................................................................................................2 PHẦN MỞ ĐẦU .............................................................................................................5 Chương 1 TỔNG QUAN VỀ KHAI PHÁ TRI THỨC ...............................................8 1.1 . Khai phá tri thức....................................................................................................8 1.1.1. Định nghĩa khai phá tri thức .........................................................................8 1.1.2. Các giai đoạn của quá trình khai phá tri thức ...............................................8 1.1.3. Khai phá dữ liệu..........................................................................................10 1.2 . Khai phá tri thức theo cách tiếp cận tập thô........................................................12 1.2.1. Một số khái niệm ........................................................................................12 1.2.1.1. Khái niệm hệ thông tin ..................................................................12 1.2.1.2. Khái niêm về bảng quyết định.......................................................13 1.2.1.3. Khái niệm quan hệ không phân biệt được trong hệ thông tin. ......15 1.2.1.4. Khái niệm tập các nhát cắt, nhát cắt trong bảng quyết định..........16 1.2.1.5. Tập thô trong không gian xấp xỉ. ..................................................17 1.2.2. Khai phá tri thức theo cách tiếp cận tập thô. ..............................................19 1.2.2.1. Sự rời rạc hoá dữ liệu theo cách tiếp cận tập thô. .........................19 1.2.2.2. Lựa chọn thuộc tính dựa trên tập thô.............................................19 1.2.2.3. Khám phá luật bới bảng phân bố tổng quát dựa trên tập thô. .......20 1.2.2.4. Khám phá mẫu trong hệ thông tin. ................................................20 1.3 . Kết luận. ..............................................................................................................21 Chương 2 KHAI PHÁ LUẬT KẾT HỢP...................................................................22 2.1 . Khai phá luật kết hợp trong cơ sở dữ liệu. ..........................................................22 2.1.1. Bài toán xuất phát. ......................................................................................22 2.1.2. Mô hình hoá bài toán. .................................................................................22 2.1.3. Thuật toán khai phá luật kết hợp. ...............................................................25 2.1.3.1. Tập phổ biến. .................................................................................25 2.1.3.2. Khai phá luật dựa trên tập mục phổ biến.......................................25 2.1.4. Kết luận.......................................................................................................28 2.2 . Sinh cây quyết định từ hệ thông tin.....................................................................29 2.2.1. Thuật toán học cây quyết định....................................................................29 2.2.2. Một số phương pháp giải quyết vấn đề rời rạc hoá. ...................................35 2.2.2.1. Maximal Discernibility (MD) Heuristic........................................35 2.2.2.2. Sự rời rạc hoá định nghĩa bằng siêu phẳng. ..................................36 2.2.2.3. Những tính chất của phương thức MD..........................................39 2.2.2.4. Xây dựng cây quyết định không đối xứng. ...................................43 2.2.3. Kết luận.......................................................................................................50 Chương 3 CHƯƠNG TRÌNH THỬ NGHIỆM. .........................................................51 3.1 . Mô tả dữ liệu. ......................................................................................................51 3.2 . Xây dựng chương trình. ......................................................................................53 3.3 . Kết quả thử nghiệm. ............................................................................................57 3.4 . Nhận xét. .............................................................................................................61 KẾT LUẬN. ..................................................................................................................62 Tài liêu tham khảo: ........................................................................................................63 CÁC KÝ HIỆU SỬ DỤNG TRONG LUẬN VĂN Ký hiệu Mô tả A Hệ thông tin hay bảng quyết định A, B Tập các thuộc tính trong hệ thông tin D Tập thuộc tính quyết định trong hệ thông tin a Một thuộc tính điêu kiện trong hệ thông tin Va Tập giá trị của thuộc tính điều kiện a U Tập tất cả các đối tượng ∅ Tập rỗng ⊆ Bị chứa trong ∈ Thuộc (phần tử thuộc tập hơp) ≥ Lớn hơn hoặc bằng ≤ Nhỏ hơn hoặc bằng ≠ Khác ∪, ∩ phép lấy giao và hợp của tập hợp PHẦN MỞ ĐẦU Trong một vài năm gần đây, ngành công nghệ thông tin trên toàn thế giới đã phát triển mạnh mẽ với một tốc độ rất nhanh. Song song với điều đó chúng ta cũng phải đối mặt với một thách thức mới là sự bùng nổ về lượng thông tin. Tuy nhiên, một thực tế diễn ra rất phổ biến là mặc dù có một lượng dữ liệu rất lớn nhưng thông tin mà thực sự chúng ta có là rất ít, những hiểu biết thực sự của chúng ta về lượng dữ liệu mà chúng ta có còn rất hạn chế. Xuất phát từ thực tế đó mà trong một vài năm gần đây các nhà nguyên cứu và ứng dụng tin học phải nguyên cứu, tìm kiếm những phương pháp mới để khai thác triệt để nhưng thông tin có trong cơ sở dữ liệu. Từ cuối những năm của thập kỷ 1980 khái niệm phát hiện tri thức trong cơ sở dữ liệu lần đầu tiên được nói đến, đây là quá trình phát hiện tri thức tiềm ẩn, không biết trước và hữu ích trong các cơ sở dữ liệu lớn. Khắc phục hạn chế của những mô hình cơ sở dữ liệu truyền thống chỉ với những công cụ truy vấn dữ liệu không có khả năng tìm kiếm các thông tin mới, các thông tin tiềm ẩn trong cơ sở dữ liệu. Khai phá tri thức trong cơ sở dữ liệu là một quá trình có thể tìm ra những thông tin mới, những thông tin hữu ích, và tiềm ẩn trong cơ sở dữ liệu. Quá trình phát hiện tri thức gồm nhiều giai đoạn, trong đó giai đoạn khai phá dữ liệu là quan trọng nhất. Đây là giai đoạn chính tìm ra những thông tin mới trong cơ sở dữ liệu. Quá trình phát hiện tri thức là sự tiếp thu, sử dụng và phát triển các thành tựu của nhiều lĩnh vực nguyên cứu ứng dụng tin học trước đó như: lý thuyết nhận dạng, hệ chuyên gia, trí tuệ nhân tạo, thống kê, v.v. Từ đầu những năm 80 Z. Pawlak đã đề xuất ra lý thuyết tập thô với một cơ sở toán học rất chắc chắn. Trong những năm gần đây, lý thuyết tập thô được nhiều nhóm nguyên cứu hoạt động trong lĩnh vực tin học nói chung và khai phá tri thức trong cơ sở dữ liệu nói riêng nguyên cứu và áp dụng trong thực tế [2,4,6,10,12]. Lý thuyết tập thô ngày càng được áp dụng rộng rãi trong lĩnh vực phát hiện tri thức. Nó tỏ ra rất hữu ích trong việc giải quyết các bài toán phân lớp dữ liệu, phát hiện luật và đặc biệt hữu ích trong các bài toán phải xử lý các dữ liệu mơ hồ, không chắc chắn. Các mối quan hệ giữa dữ liệu trong mô hình này được biểu diễn qua mối quan hệ “không phân biệt được”, các tập dữ liệu là mơ hồ, không chắc chắn được biểu diễn thông qua tập xấp xỉ trên và xấp xỉ dưới của nó. Nhờ vào những điều này mà dữ liệu có thể phân tích và xử lý bằng những công cụ toán học. Cụ thể trong lý thuyết tập thô dữ liệu được biểu diễn thông qua hệ thông tin hay bảng quyết. Từ trong thực tế, với những bảng dữ liệu lớn với dữ liệu không hoàn hảo, có dữ liệu dư thừa, dữ liệu liên tục hay biểu diễn dưới dạng các ký hiệu, lý thuyết tập thô cho phép khai phá tri thức trong những cơ sở dữ liệu như thế này nhằm phát hiện những tri thức tiềm ẩn từ những khối dữ liệu “thô” này. Tri thức tìm được được thể hiện dưới dạng các luật, các mẫu. Sau khi tìm được những quy luật chung nhất để biểu diễn dữ liệu, người ta có thể tính toán độ mạnh và độ phụ thuộc giữa các thuộc tính trong hệ thông tin. Theo Skowron và NingZong [2], cách tiếp cận tập thô để phân tích dữ liệu có rất nhiều điểm lợi quan trọng như sau: − Cho phép xử lý hiệu quả bảng dữ liệu lớn, loại bỏ dữ liệu dư thừa, dữ liệu không hoàn hảo, dữ liệu liên tục. − Hiệu quả trong việc tìm kiếm những mẫu tiềm ẩn trong cơ sở dữ liệu. − Sử dụng được tri thức kinh nghiệm. − Nhận ra được những mối quan hệ mà khi sử dụng các phương pháp thống kê khác không phát hiện được. − Sử dụng quan hệ thứ lỗi trong quá trình phát hiện mẫu. − Làm việc hiệu quả trên tập rút gọn. − Cách giải thích rõ ràng và dễ hiểu. Với những đặc điểm trên thì tập thô đã chứng tỏ là một trong những lý thuyết rất hiệu quả trong lĩnh vực khai phá dữ liệu. Trong khoa luận tốt nghiệp này chúng tôi xin trình bày một số ứng dụng và lý thuyết cơ bản của tâp thô. Việc phát hiện tri thức được thực hiện bằng cách phân lớp, rời rạc hoá dữ liệu từ đó sinh ra các luật, các tri thức mới. Phương pháp nguyên cứu chủ yếu của khoá luận tốt nghiệp là tìm hiểu và phân tích nội dung các bài báo được công bố về lĩnh vực khai phá tri thức trong những năm gần đây. Từ những kiến thức thu được chúng tôi đã xây dựng được chương trình thử nghiệm mô phỏng thuật toán xây dựng cây quyết định tối ưu bằng cách sử dụng siêu phẳng tối ưu được trình bày trong [9]. Chương trình tiến hành khai phá tri thức trong cớ sở dữ liệu lưu thông tin về 678 bệnh nhân tiểu đường cung cấp bởi tổ chức “National Institute of Diabetes and Digestive and Kidney Diseases”. Từ đó sinh ra các luật quyết định hỗ trợ trong quá trình khám bệnh của bệnh nhân. Khoá luận tốt nghiệp được trình bày gôm 3 phần: Phần mở đầu, 3 chương và phần kết luận. Trong đó: Chương 1: Khóa luận trình bày những kiến thức chung nhất về khai phá tri thức và khai phá tri thức theo cách tiếp cận tập thô. Chương 2: Khóa luận trình bày về chi tiết một số thuật toán khai phá tri thức, chủ yếư là khai phá các luật trong các cơ sở dữ liệu. Trong đó đáng chú ý là thuật toán xây dựng cây quyết định tối ưu bằng cách sử dụng siêu phẳng tối ưu. Chương 3: Khóa luận trình bày kết quả thử nghiệm bài toán khai phá luật trong cây quyết định tối ưu trình bày ở chương 2 và áp dụng trên cơ sở dữ liệu bệnh nhân bị tiểu đường được lấy về từ trên mạng. Qua đó đánh giá được sự hiệu quả của thuật toán được trình bày trong [9]. Khóa luận được hoàn thành duới sự giúp đỡ của Tiến Sĩ. Hà Quang Thuỵ , Bộ môn các hệ thông thông tin, Khoa Công Nghệ, ĐHQG Hà Nội. Em xin bày tỏ lòng kính trọng và sự biết ơn sâu sắc tới Thầy đã hướng dẫn, động viên và tạo điều kiện cho em trong quá trình làm khoá luận tốt nghiệp. Em xin chân thành cảm ơn Thầy Đỗ Văng Thành, Văn phong chính phủ, người đã truyền thụ cho em những kiến thức nền tảng và cơ sở để em có thể hoàn thành bản khoá luận tôt nghiệp này. Em xin chân thành cảm ơn các thầy cô giáo trong bộ môn Các Hệ Thống Thông Tin, nhóm “Seminar Data Mining and KDD”. Cuối cùng em xin chân thành cảm ơn tới những người thân trong gia đình, bạn bè đã giúp đỡ và động viên em rất nhiều trong quá trình nguyên cứu và học tập. Chương 1 TỔNG QUAN VỀ KHAI PHÁ TRI THỨC 1.1 . Khai phá tri thức Phát hiện tri thức là khái niệm ra đời vào những năm cuối của thập kỷ 80 và đã trở thành một lĩnh vực được nguyên cứu rộng rãi trên toàn cầu. Sự ra đời của phát hiện tri thức là sự kết hợp kết quả nguyên cứu của nhiều ngành khoa học khác lại với nhau như: Quản trị cơ sở dữ liệu, học máy, thống kê v.v. 1.1.1. Định nghĩa khai phá tri thức Khai phá tri thức (Khai phá tri thức-Knowledge Discovery in Databases) trong các cơ sở dữ liệu là quá trình phát hiện những tri thức tiềm ẩn, không biết trước, và có ích trong trong cơ sở dữ liệu. Thực chất đó là quá trình tìm kiếm những thông tin có trong cơ sở dữ liệu nhưng bị che giấu trong các khối dữ liệu. Tri thức ở đây có thể được hiểu là một biểu thức trong một ngôn ngữ nào đó diễn tả một hoặc nhiều mối quan hệ giữa các thuộc tính trong các dữ liệu đó. Các ngôn ngữ thường dùng để biểi diễn tri thức trong việc biểu diễn tri thức trong quá trình phát hiện tri thức từ cơ sở dư liệu là các khung (frames), các cây và đồ thị, các luật, các công thức trong logic mệnh đề hoặc logic tân từ cấp một . . . Việc khai phá tri thức thường được áp dụng để giả quyết một loạt những yều cầu phục vụ những mục đích nhất định. Do vậy nên quá trình phát hiện tri thức mang tính chất hướng nhiệm vụ, không phải là phát hiện mọi tri thức mà phát hiện những tri thức phục vụ tốt một nhiệm vụ đề ra. Vì vậy, quá trình phát hiện tri thức là một hoạt động tương tác giữa một người sử dụng hoặc một chuyên gia phân tích với các công cụ tin học. 1.1.2. Các giai đoạn của quá trình khai phá tri thức Mục đích của quá trình khai phá tri thức: Từ những cơ sở dữ liệu ngoài cuộc sống thực tế sau một hoặc một số bước của quá trình sẽ rút ra được những tri thức mới. Các bước trong quá trình này có thể lặp đi lặp lại nhiều lần và được mô tả theo hình sau [4,8]: Hình 1. Mô hình mô tả quá trình khai phá tri thức. Giai đoạn 1:Xác định và định nghĩa vấn đề. − Tìm hiểu lĩnh vực ứng dụng và nhiệm vụ đề ra, xác định các tri thức đã có và các mục tiêu của người sử dụng. − Tạo và chọn lựa cơ sở dữ liệu. Giai đoạn 2: Thu nhập và tiền xử lý dữ liệu. − Xử lý và làm sạch dữ liệu trước: Bỏ đi các dữ liệu tạp bao gồm các lỗi và các dạng không bình thường. Xử lý dữ liệu bị mất, chuyển đổi dữ liệu phù hợp. − Rút gọn kích thước dữ liệu nhận được: Nhận ra các thuộc tính hữu ích cho quá trình phát hiện tri thức. Giai đoạn 3: Khai phá dữ liệu. − Chọn nhiệm vụ khai phá dữ liệu. − Lựa chọn các phương pháp khai phá dữ liệu. − Khai phá dữ liệu để rút ra các mẫu, các mô hình. Giai đoạn 4:Giải thích kết quả và đánh giá các mẫu, các mô hình tìm được ở giai đoạn 3. Xác định và định nghĩa vấn đề Thu nhập và tiền xử lý dữ liệu Khai phá dữ liệu Giải thích kết quả và đánh giá Sử dụng tri thức phát hiện được 1 2 3 4 5 Giai đoạn 5: Sử dụng tri thức phát hiện được. − Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống. Tuy nhiên để sử dụng được tri thức đó đôi khi cần đến các chuyên gia trong các lĩnh vực quan tâm vì tri thức rút ra có thể chỉ có tính chất hỗ trợ quyết định. − Tri thức tìm được có thể được sử dụng cho một quá trình khai phá tri thức khác. Như vậy khai phá tri thức gồm 5 giai đoạn chính, trong 5 giai đoạn trên thì giai đoạn khai phá dữ liệu là quan trọng nhất. Đây là giai đoạn duy nhất tìm được các thông tin tiềm ẩn trong cơ sở dữ liệu. 1.1.3. Khai phá dữ liệu Khai phá dữ liệu (hay data mining) được định nghĩa như là quá trình phát hiện các tri thức mới, có giá trị từ những dữ liệu lớn được lưu trữ trong cơ sở, datawarehouse hay các kho chứa thông tin khác. Khai phá dữ liệu là một giai đoạn quan trọng trong quá trình phát hiện tri thức. Về bản chất nó là giai đoạn duy nhất tim ra được thông tin mới, thông tin tiềm ần có trong cơ sở dữ liệu. Mục đích nguyên thủy của khai phá dữ liệu là mô tả và dự đoán [4]. Các kỹ thuật khai phá dữ liệu được chia thành những mảng chính sau: • Phân cụm và phân lớp dữ liệu: Quá trình này có thể xem là quá trình phân tích một tập dữ liệu và sinh ra một tập nhóm các luật mà chúng ta có thể sử dụng để phân lớp dữ liệu trong tương lai. Khi phân lớp dữ liệu người ta thường dựa trên một tập các mẫu huấn luyện để sinh ra các luật. Có rất nhiều phương pháp để phân lớp dữ liệu được nguyên cứu như: Các phương pháp học cây quyết định, phương pháp thông kê, các mạng nơ ron, các mạng xác xuất Bayes,. . . • Khai phá luật kết hợp: Mong muốn tìm ra những mối quan hệ giữa các thuộc tính hoàn toàn độc lập với nhau trong cơ sở dữ liệu. Luật kết hợp có thể dùng để hỗ trợ quyết định. Ví dụ như các bài toán kinh doanh. • Khai phá chuỗi: Luật chuỗi và khai phá chuỗi có thể coi như là một cách trừu tượng của luật kết hợp và phát hiện các luật kết hợp trong cơ sở dữ liệu phụ thuộc thời gian. Có rất nhiều phương pháp để có thể tiến hành khai phá dữ liệu đã được nguyên cứu và đề ra như: − Các phương pháp sinh cây quyết định. − Các phương pháp thống kê. − Các mạnh nơ ron. − Các mạng xác suất Bayes. − Các thuật toán di truyền. − Phương pháp người láng giềng gần nhất. − Luật suy diễn. − Trực quan hoá dữ liệu. − .v.v. Như vậy, khai phá dữ liệu là một giai đoạn quan trọng trong quá trình khai phá tri thức và nó đang được áp dụng rộng rãi trong nhiều lĩnh vực như: − Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support) − Điều trị y học (medical treatment) − Text mining & Web mining − Tài chính và thị trường chứng khoán (finance & stock market) − Bảo hiểm (insurance) − Nhận dạng (pattern recognition) − .v.v. 1.2 . Khai phá tri thức theo cách tiếp cận tập thô 1.2.1. Một số khái niệm 1.2.1.1. Khái niệm hệ thông tin Trong hầu hết các hệ quản trị cơ sở dữ liệu thông thương thì thông tin thường được biểu diễn dưới dạng các bảng, trong dó mỗi hang biểu diễn thông tin về một đối tượng, mỗi cột biểu diễn thông tin về một thuộc tính của đối tượng. Tứ đầu những năm 80 Pawlak đã định nghĩa một khái niệm mới là hệ thông tin (infomation system) dựa trên khái niệm bảng truyền thống như sau [2,5,10,12]: Đinh nghĩa 1: Hệ thông tin là một cặp A = (U,A). Trong đó: U : là một tập hữu hạn khác rỗng các đối tượng. A : là một tập hữu hạn khác rỗng các thuộc tính. a: U → Va với mọi a ∈ A. Tập Va được gọi là tập giá trị của thuộc tính a. Ví dụ: Có một hệ thông tin được biểu diễn như bảng sau: Trong bảng có 7 đối tượng và có 3 thuộc tính là số lần mang thai của bệnh nhân (1), lượng glucose trong huyết tương sau 2 giờ uống thuốc (2), tuổi của bệnh nhân (8). Mỗi đối tượng của bảng là một bệnh nhân đang tham gia khám bệnh tiểu đường, trong đó các bác sĩ dựa vào một số chỉ số tương ứng với các thuộc tính sau để xác định tình trạng của bệnh nhân. Để thuận tiện cho việc trình bày từ giờ chúng ta chỉ ký hiệu các thuộc tính là (1), (2), (8). (1) (2) (8) X1 2 102 31 X2 4 146 70 X3 3 102 28 X4 2 90 37 X5 2 90 31 X6 2 146 28 X7 2 102 31 Bảng 1. Ví dụ về hệ thông tin. Trong ví dụ trên thì ta có một hệ thông tin A =(U, A). U={X1, X2, X3, X4, X5, X6, X7}. A={1,2,8,9}. Nhìn vào các đối tượng trong ví dụ trên ta thấy X1 và X7 là có các giá trị của các thuộc tính là giống nhau. Như vậy, X1 và X7 là không phân biệt được theo các thuộc tính trong bảng trên. Chúng ta sẽ tiếp tục đề cập đến điều này trong các ví dụ sau. Định nghĩa 2: Với một hệ thông tin bất kỳ A = (U,A) và một tập không rỗng các thuộc tính B⊆A định nghĩa một hàm thông tin B như sau: InfB = {(a, a(x)): a∈ B} với mọi x ∈ A. Trường hợp đặc biệt B=A, khi đó tập {InfA(x): x ∈ A} được gọi là tập thông tin A, viết tắt là INF(A). 1.2.1.2. Khái niêm về bảng quyết định. Để có thể biểu diễn một dữ liệu thực tế, trong đó có những thuộc tính quyết đinh, chúng ta xét một trường hợp đặc biệt của hệ thông tin được gọi là bảng quyết định được định nghĩa như sau[9]. Định nghĩa 3: Bảng quyết định là một hệ thông tin có dạng A = (U, A∪{d}) Trong đó: d ∉A là thuộc tính phân biệt, được gọi là thuộc tính quyết định. Các thành phần của A được gọi là các thuộc tính điều kiện. Ví dụ: Bảng 2 mô tả một bảng quyết định, với các thuộc tính điều kiện lấy ở bảng 1 và thêm vào thuộc tính quyết đinh (9).Trong đó thuộc tính thứ (9) chỉ nhận hai giá trị là 1(ứng với trường hợp bị bệnh), và 2(ứng với trường hợp không bị bệnh) (1) (2) (8) (9) X1 2 102 31 1 X2 4 146 70 2 X3 3 102 28 1 X4 2 90 37 2 X5 2 90 31 1 X6 2 146 28 2 X7 2 102 31 2 Bảng 2. Ví dụ một bảng quyết định. Nhìn vào bảng 2 ta tiếp tục xét các đối tượng X1 và X7 ta thấy chúng có giá trị của các thuộc tính điều kiện là giống nhau, nhưng đối với kết quả quyết định đối với 2 đối tượng là khác nhau. Như thế chỉ dùng các thuộc tính điều kiện xét trong ví dụ trên thì không thể xác định rõ tính chất bị bệnh hay không bị bệnh của một đối tượng bất kỳ. Sẽ tồn tại trường hợp mà với những giá trị điều kiện được đưa ra ta không thể xác định đối tượng đó có bị bệnh hay không. Chúng ta giả sử rằng tập các giá trị của giá trị quyết định d tương đương với tập {1, . . ., r(d)} là các số nguyên dương từ 1 đến r(d), tập này được gọi là phạm vi của thuộc tính quyết đinh d. Ta định nghĩa một lớp quyết định thứ k như sau: Địng nghĩa 4: Một lớp quyết định thứ k (ký hiệu là Ck) là một tâp các đối tượng thoả mãn: Ck ={u ∈ U: d(u)=k}. Trong đó 1≤ k ≤r(d). Khi đó giá trị quyết định d sẽ chia tập các đối tượng thành r(d) lớp quyết định phần:{C1,..., Cr(d)}. Chú ý: Trong trường hợp tổng quát thì có thể có nhiểu thuộc tính quyết định, khi dó bảng quyết định có dạng [10] A=(U, Con∪Dec). Trong đó: Con: là tập các thuộc tính điều kiện. Dec: là tập các thuộc tính quyết định. 1.2.1.3. Khái niệm quan hệ không phân biệt được trong hệ thông tin. Một trong những đặc điểm cơ bản của lý thuyết tập thô là dùng để lưu giữ và sử lý các dữ liệu trong đó có sự mập mờ, không phân biệt được [2,5,12]. Trong một hệ thông tin theo định nghĩa trên cũng có thể có những đối tương không phân biệt được. Trước tiên ta nhắc lại định nghĩa quan hệ tương đương như sau: Định nghĩa 5: Một quan hệ hai ngôi (quan hệ nhị phân) R ⊆ U × U trên U là một quan hệ tương đương khi nó có cả 3 tính chất: • Phản xạ: Mọi đối tượng đều quan hệ với chính nó. • Đối xứng: Nếu xRy thì yRx. • Bắc cầu: Nếu xRy và yRz thì xRz. Quan hệ tương đương R sẽ chia tập các đối tượng U thành các lớp tương đương. Lớp tương đương của phần tử x∈U, ký hiệu là [x], chứa tất cả các đối tượng y mà xRy. Bây giờ chúng ta bắt đầu định nghĩa một quan hệ tương đương trên hệ thông tin. Quan hệ này sau này được sử dụng đê biểu diễn những thông tin mập mờ, không rõ ràng. Định nghĩa 6: Một quan hệ tương đương (ký hiệu là INDA(B)), được định nghĩa như sau: INDA(B)={(x,x’) ∈ U2 ⏐∀a ∈ B: a(x) = a(x’)} Trong đó: B: là một tập thuộc tính của các đối tượng, B∈A. x, x’: là hai đối tượng bất kỳ thuộc U. Khi đó INDA(B) là một quan hệ không phân biệt được B. Khi đó thì hai đối tượng x, x’, mà (x, x’)∈INDA(B) thì khi đó hai đối tượng x, x’ được gọi là không phân biệt được bởi các thuộc tính trong B. Khi xét trên một hệ thông tin xác định thì ký hiệu A thường được bỏ qua, ta sẽ viết là IND(B) thay cho INDA(B). Lớp tương đương chứa x của quan hệ không phân biệt được trên B được ký hiệu là [x]B. Ví dụ:Tiếp tục xét ví dụ trong bảng 2, ta xem xét các tập thuộc tính điều kiện là: |(1)|, |(2)|, |(1), (2)|. Khi đó các quan hệ không phân biệt được trên các tập thuộc tính điều kiện trên sẽ chia tập các đối tương trên thành các tập sơ cấp tương ứng như sau: IND(|(1)|)=| | X1, X4, X5, X6, X7 |, | X2 |, |X3| |. IND(|(2)|)=| | X1, X3, X7 |, | X4, X5 |, |X2, X6| |. IND(|(2)|, |(1)|)=| | X1, X7 |, | X4, X5 |, |X2|, |X3|, |X6| |. Định nghĩa 7: Với một hệ thông tin bất kỳ A = (U,A) và một tập không rỗng các thuộc tính B⊆A ta định nghĩa một hàm σB=U→2{1, . . .,r(d)} gọi là quyết định phổ biến như sau: σB(u)={i:∃u’∈U[(u IND(B) u’)∧d(u’)=i]}. Một bảng quyết định A được gọi là thống nhất nếu card(σa(u)) với mọi u∈ U, ngược lại thì A được coi là không thống nhất. 1.2.1.4. Khái niệm tập các nhát cắt, nhát cắt trong bảng quyết định Trong quá trình phân lớp và rời rạc dữ liệu, ta có thể dùng nhiều phương pháp. Tuy nhiên, sử dụng nhát cắt để phân lớp dữ liệu là một trong những phương pháp phổ biến. Ta xét đinh nghĩa nhát cắt dưới đây. Định nghĩa 8: Xét một bảng quyết định A =(U, A ∪ {d} ). Trong đó: U= {x1, . . . ,xn}, A={a1, . . . ,ak} và d:U→{1,. . .,r} Giả sử Va=[la, ra) ⊂ R với mọi a thuộc A Chúng ta giả sử rằng A là một bảng quyết định thống nhất. Xét Pa là một cách chia Va thành các khoảng con như; { }),[.,.),.,[),,[ 12110 akakaaaaa aa ccccccP += với ka là một số nguyên khi: a a k a k aa a rccccl aa =<<<<= +110 K và ).,[...),[),[ 12110 a k a k aaaa a aa ccccccV +∪∪∪= Khi đó Pa sẽ định nghĩa duy nhất tập các nhát cắt trên Va : { }akaaa acccC ,,, 10 K= và bộ (a,c) trong đó a∈A và c ∈ Ca được gọi là một nhát cắt trên Va. Định nghĩa nhát cắt trên đây cho thấy mỗi nhát cắt sẽ phân hoạch tập các đối tượng thành hai tập con các đối tượng rời rạc nhau. Khái niệm nhát cắt sẽ được sử dụng để rời rạc hoá dữ liệu trong thuật toán được trình bày ở chương 2 phần 2.2.2.1. 1.2.1.5. Tập thô trong không gian xấp xỉ Để hiểu rõ về việc hệ thông tin biểu diễn và xử lý dữ liệu thô như thế nào ta xét định nghĩa dưới đầy. Ta xét R là một quan hệ tương đương theo định nghĩa 6 với trường hợp đặc biệt B=A gồm tất cả các thuộc tính. Lớp tương đương theo quan hệ R được gọi là các tập sơ cấp [2,10] và gọi E là tập các tập sơ cấp. Z. Pawlak đã đưa ra khái niệm tập mô tả được như sau [10]. Định nghĩa 9: Một tập con X khác rỗng các đối tượng được gọi là mô tả được khi và chỉ khi X là tập hợp của các tập sơ cấp trong hệ thông tin (trong trường hơp đặc biệt tập rỗng cũng được coi là tập mô tả được). Như vậy một tập các đối tượng bất kỳ có thể là mô tả được hoặc không mô tả được theo các tập sơ cấp E. Một vấn đề đặt ra là làm sao có thể tìm ra một cách để biểu diễn các tập không mô tả được theo các tập sơ cấp E. Nhìn vào bảng quyết định, ta xét một tập các đối tượng X có cùng một giá trị của thuộc tính quyết định là d, khi đó sẽ có nhiều trường hợp X không mô tả được theo các tập sơ cấp. Ta chỉ tìm được một tập mô tả được (có số đối tượng là nhỏ nhất) không những chứa tất cả các phần tử thuộc X mà còn chứa các phần tử không thuộc X. Ví dụ:Ta tiếp tục xét bảng 2, và tập B là tâp các thuộc tính điều kiện. Khi đó thì tập các tập sơ cấp của quan hệ không phân biệt được trên tập thuộc tính B là: [X1]B=[X7]B={X1, X7}, [X2]B={X2}, [X3]B={X3}, [X4]B={X4}, [X5]B={X5}, [X6]B={X6} Ta xét một tập X các bệnh nhân là bị bệnh (thuộc tính quyết định có giá trị 1) X={X1, X3, X5}. Khi đó tập X là không mô tả được theo tập các tập sơ cấp trên. Hai bệnh nhân X1 và X7 thuộc cùng một tập sơ cấp nhưng có giá trị quyết định khác nhau. Khi diễn tả tập X có bênh nhân X1 thì phải chứa tập sơ cấp [X1]B. Mà tập [X1]B thì lại chứa bênh nhân X7 là không bị bệnh (thuộc tính quyết định có giá trị là 2). Như vậy tập X là không mô tả được theo các tập sơ cấp trên. Khắc phục hạn chế trên ta có thể dùng tính chất của lý thuyết tập thô để biểu diễn tập X ở trên. Chúng ta không trực tiếp biểu diễn tập X mà đi tìm các tập là mô tả được là tập xấp xỉ trên và tập xấp xỉ dưới của X. Tập xấp xỉ dưới của X là tập bao gồm những người chắc chắn bị bệnh {X3, X5}, còn tập xấp xỉ trên của X là tập những người có khả năng bị bệnh {X1, X3, X5, X7}. Ta xem xét các bệnh nhân không thuộc tập những người chắc chắn bị bệnh mà lại thuộc tập những người có khả năng bị bệnh {X1, X7}.Tập này là vùng ranh giới giữa trường hợp chắc chắn và trường hợp có khả năng bị bệnh. Nếu tập ranh giới này không rỗng thì tập này được gọi là thô. Ta có định nghĩa sau [10]: Định nghĩa 10: Giả sử A =(U,A) là một hệ thông tin và B ⊆ A và X ⊆ U, thì các tập xấp xỉ của X theo thông tin có từ B, được tính theo các công thức sau: (1) Tập B-xấp xỉ dưới của X, ký hiệu là XB , là tập XB ={x∈U: [x]B ∈ X}. (2) Tập B-xấp xỉ trên của X, ký hiệu là XB , là tập XB ={x∈U:[x]B∩X≠∅}. Theo định nghĩa trên thì khi gặp một tập X mà ta không thể mô tả được bằng các tập sơ cấp E là các lớp tương đương của quan hệ INDA(B), ta chỉ có thể có được xấp xỉ trên và xấp xỉ dưới của nó. a) Các tính chất của sự xấp xỉ[2,12]: (1) XB ⊆ X ⊆ XB , (2) B (∅) = B (∅), B (U) = B (U) = U, (3) B (X ∪ Y) = B (X) ∪ B (Y), (4) B ( X ∩ Y) = B (X) ∩ B (Y), (5) Nếu X ⊆Y thì B (X) ⊆B (Y) và B (X) ⊆ B (Y), (6) B ( X ∪ Y) ⊇ B (X) ∪ B (Y), (7) B (X ∩Y) ⊆ B (X) ∩B (Y), (8) B (-X) = - B (X), (9) B (-X) = - B (X), (10) B ( B (X)) = B ( B (X)) = B (X), (11) B ( B (X)) = B ( B (X)) = B (X). Ký hiệu –X biểu thi thay cho U-X. b) Bốn loại tập thô cơ bản: Người ta phân tập thô thành 4 loại [9]: • X là xác định thô thực sự theo B nếu XB ≠ ∅ và XB ≠ U. • X là không xác định bên trong theo B nếu XB = ∅ và XB ≠ U. • X là không xác đinh bên ngoài theo B nếu XB ≠ ∅ và XB = U. • X là không xác định thực sự theo B nếu XB = ∅ và XB = U. c) Độ đo liên quan biên xấp xỉ: Tập thô được chỉ số hoá bởi hệ số sau: Trong đó: )(XBα : gọi là độ đo liên quan xấp xỉ của X. |X| : là lực lượng của X. Ta có thể thấy 0≤ )(XBα ≤1. Nếu )(XBα =1 thì X đúng hoàn toàn đối với tập thuộc tính B, ngược lại thì )(XBα <1 thì X là thô đối với B. 1.2.2. Khai phá tri thức theo cách tiếp cận tập thô. Như đã trình bày ở trên, khai phá tri thức từ cơ sở dữ liệu đang là vấn đề được rất nhiều người quan tâm [2,12]. Việc tìm kiếm tri thức trong các cơ sở dữ liệu được tiến hành theo rất nhiều phương pháp khác nhau. Trong đó khai phá tri thức theo cách tiếp cân tập thô là một phương pháp tỏ ra đặc biệt hiệu quả đối với những dữ liệu lớn và nhiều kiểu khác nhau. Hơn thế nữa nó con có thể làm tốt với những cơ sở dữ liệu không chắc chắn, có tính mơ hồ, không phân biệt được. 1.2.2.1. Sự rời rạc hoá dữ liệu theo cách tiếp cận tập thô Trong lĩnh vực khai phá tri thức, một vấn đề đặt ra là làm sao chúng ta có thể xử lý cả được những dữ liệu hỗn tạp với những giá trị liên tục. Có rất nhiều thuật toán được sử dụng trong lĩnh vực rời rạc hoá dữ liệu như: Các phương pháp lập luận logic, thuật toán NAIVE, . . . tuy nhiên không có một thuật toán được gọi là tối ưu và hiệu quả nhất. Việc lưa chọn thuật toán vẫn còn phụ thuộc vào dạng dữ liệu mà chúng ta cần xử lý. Các tác giả trong [1,2] đã đưa ra một số phương pháp rời rạc hoá dữ liệu dựa trên tập thô và lập luận logic. Khi sử dụng phương pháp rời rạc hoá dữ liệu thì có nghĩa là chúng ta đã chấp nhận sai số trong dữ liệu. Một ví dụ là khi đo về nhiệt độ của cơ thể thì ta thương gặp những số thực nhưng chúng ta thường phải quy về giá trị nguyên hay những khoảng khác nhau tuỳ từng bài toán cụ thể. Việc phân chia các giá trị thực thành các khoảng hợp lý là rất phức tạp. Khi đó thường cần phải có các chuyên gia trong các lĩnh vực cụ thể tham gia cùng. 1.2.2.2. Lựa chọn thuộc tính dựa trên tập thô Các cơ sở dữ liệu trong thực tế thương có rất nhiều thuộc tính, những thuộc tính cần thiết cho lĩnh vực mà bài toán khai phá dữ liệu mà chúng ta đang xử lý không phải là tất cả. Việc lựa chọn những thuộc tính phù hợp để tiến hành các phương pháp khai phá dữ liệu là rất cần thiết. Các thuộc tính dư thừa không cần thiết trong quá trình khai phá tri thức không chỉ làm cho bài toán trở lên phức tạp mà còn dẫn đền một thực , )( )( )( XB XB XB =α tế là số tri thức được phát hiện sẽ không nhiều vì phải phụ thuộc vào cả những thuộc tính không được coi là đặc trưng của bài toán. Mục tiêu của việc lựa chọn thuộc tính là phải đưa ra được một tập tối ưu các thuộc tính trong cơ sở dữ liệu. Từ đó các luật sinh ra trong cơ sở dữ liệu sẽ đạt được hiệu quả cao nhất, dữ liệu mà chúng ta thực sự phải làm việc sẽ nhỏ đi rất nhiều. Có hai phương pháp lựa chọn thuộc tính thường được sử dụng là lọc và bọc. Trong đó thì phương pháp lọc thực chất là tìm những thuộc tính tối thiểu trong tập các thuộc tính, chọn ra các thuộc tính có độ phù hợp cao hơn theo tiêu chuẩn sau: − Lựa chọn những thuộc tính là cho số trường hợp thoả mãn tăng nhanh. − Chọn những thuộc tính có it giá trị khác nhau. Phương pháp này là khá đơn giản và tốc độ là tương đối nhanh. Phương pháp thứ hai sử dụng thuật toán quy nạp đánh giá. Tư tưởng của thuật toán này là sử dụng 3 cách tìm kiếm: tìm kiếm toàn bộ, tìm kiếm kinh nghiệm và tìm kiếm không xác định. Phương pháp này sử dụng các thuật toán quy nạp nên độ phức tạp lớn nhưng bù lại thì kết quả mang lại sẽ chính xác và toàn diện hơn. 1.2.2.3. Khám phá luật bới bảng phân bố tổng quát dựa trên tập thô Bảng phân bố tổng quát có những đặc điểm sau: − Bảng phân bố tổng quát mô tả quan hệ xác suất giữa các trường hợp có thể và các bộ sinh có thể. − Những trường hợp không thấy trong quá trình khai phá dữ liệu sự không chắc chắn của luật bao gồm cả khả năng dự đoán trước các trường hợp nó không được thể hiện rõ ràng trong độ mạnh của luật. − Có thể sử dụng tri thức nền làm cơ sở cho việc lập bảng phân bố tổng quát và quá trình khai phá. A. Skowronvà Ning Zong [2] đã đưa ra phương pháp khám phá luật sư dụng bảng phân bố tổng quát dựa trên tập thô với ý tưởng như sau: − Từ bảng quyết định xây dựng bảng phân bố tổng quát. − Dựa trên các bảng phân bố tổng quát này sinh các vector phân biệt được. − Tạo ra các tập rút gọn được từ các tập vector phân biệt được. − Sinh ra các luật bao phủ tất cả các trường hợp. 1.2.2.4. Khám phá mẫu trong hệ thông tin Việc tìm những mẫu quan hệ phức tạp được phát hiện trong những cơ sở dữ liệu lớn một cách tự động là một trong những hướng nghiên cứu đang được chú trọng trên thế giới. Trong trường hợp đơn giản thì mẫu chỉ là một vector có giá trị độ dài đủ lớn của một sô thuộc tính được hỗ trợ của một lượng đủ lớn các đối tượng. Các bài toán tìm mẫu thường có độ phức tạp lớn đòi hỏi những thuật toán tối ưu, thuật toán đánh giá kinh nghiệm đủ tốt để có thể rút ra các mẫu gần tối ưu từ những cơ sở dữ liệu lớn. Một lớp quan trọng của của phương pháp tìm kiếm mẫu là dựa trên những khuôn mẫu quan hệ. Những khuôn mẫu này được xác định từ một bảng dữ liệu cho trước sử dụng quan hệ thứ lỗi trong một số lớp quan hệ thứ lỗi giả định trước. Một quan hệ thứ lỗi là tối ưu nếu tập các tham số miêu tả quan hệ này cho phép xây dựng những khuôn mẫu dữ liệu thích hợp trên những bảng dữ liệu cho trước. Có rất nhiêu ứng dụng cho việc phát hiện những khuôn mẫu trong hệ thông tin. Một số có thể dùng để tách các bảng dữ liệu lớn, bảng dữ liệu lớn có thể được phân chia thành một cây nhị phân của các mẫu và khuôn mẫu. Mỗi nút của cây phụ thuộc vào một bước phân tách. Quá trình phân chia dừng lai khi thu được những bảng có kích thước đủ nhỏ để có thể áp dụng nhưng phương pháp khai phá tri thức khác. Người ta áp dụng những phương pháp tìm kiếm mẫu quyết định từ những bảng quyết đinh gắn với các lá đã có dựa trên cách tiếp cận tập thô. Quá trình phân lớp cho một đối tượng mới bắt đầu bằng việc tìm ra đường đi trên cây bằng cách so sánh các mẫu. Sau đó, đối tượng được phân lớp dựa trên luật quyết định được sinh ra từ bảng con gắn với các lá ở trên đường đó. Việc lựa chon một chiến lược tìm kiếm khuôn mẫu có trong các lớp quyết định đã được thảo luận rất nhiều. Quá trình này có thể coi là quá trình tìm luật quyết định xấp xỉ mạnh ngầm định. Các phương pháp này cũng có thể dùng để tìm luật quyết định xấp xỉ tổng hợp từ các bảng dữ liệu. Bản chất xấp xỉ của những luật này được mô tả bởi một số rằng buộc. 1.3 . Kết luận Trên đây chúng tôi đã trình bày một số khái niêm cơ bản về khai phá tri thức, và đăc biệc là khai phá tri thức theo cách tiếp cận tập thô. Khai phá tri thức có thể được hiểu đơn giản là quá trình tìm kiếm nhưng thông tin mới trong cơ sở dữ liêu. Nó bao gồm 5 quá trình, trong đó quá trình khai phá dữ liệu là quan trong nhất. Các kỹ thuật khai phá tri thức được chia thành 3 mảng chính: phân cụm và phân lớp dữ liệu,khai phá các luật kết hợp, khai phá chuỗi. Lý thuyết tập thô do P. Pawlak đưa ra trong những năm đầu của thập kỷ 80 đã tỏ ra là rất hiệu quả trong lĩnh vực khai phá tri thức. Nó tỏ ra thực sự hiểu quả trong các bài toán thực tế, những bài toán có dữ liệu thương ở dạng thô, chưa qua xử lý, trong dữ liệu có nhiều thông tin dư thừa. Chương 2 KHAI PHÁ LUẬT KẾT HỢP Khai phá luật kết hợp là một kỹ thuật quan trọng và phát triển mạnh mẽ trong những năm gần đây. Lần đầu tiên được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất năm 1993 [6]. Sau đó được nhiều nhà khoa học phát triển và cải tiến. 2.1 . Khai phá luật kết hợp trong cơ sở dữ liệu 2.1.1. Bài toán xuất phát Cho trước một cơ sở dữ liệu lưu thông tin bán hàng của một siêu thị. Với lượng dữ liệu được lưu giữ là tương đối lớn, người sử dụng mong muốn có những tri thức từ cơ sở dữ liệu trên để có thể hoạch định kế hoạch kinh doanh phù hợp: Những câu hỏi được đặt ra như nên đầu tư cho những mặt hàng nào, số lượng là bao nhiêu? Sắp xếp các mặt hàng trong siêu thị như thế nào là hợp lý v . v ? Với những câu hỏi như trên thì người sử dụng mong muốn có những thông tin như là: ”75% những người mua bánh mì sẽ mua sữa”, hoặc “5% những người mua rượu sẽ mua lạc”. Những phát biểu trên được gọi là các luật kết hợp. Bản thân nó ngầm định một số quan hệ kết hợp một tập các đối tượng cùng tham gia mua hàng. Từ những luật dạng trên thì người sử dụng có thể dùng để hỗ trợ những quyết định của họ trong kinh doanh. Họ sẽ có chiến lược chẳng hạn như đầu tư lượng bánh mi và sữa gần bằng nhau sao cho hiệu quả. Trong phần này chúng tôi chỉ giải quyết ở mức độ là người khách hàng đó có mua mặt hàng đó hay không, khi đó thì mỗi thuộc tính chỉ có 2 giá tri khác nhau là 0 ứng với trường hợp người đó không mua mặt hàng này và bằng 1 nếu người đó có mua mặt hàng đó. 2.1.2. Mô hình hoá bài toán Trước tiên ta có một số định nghĩa như sau: I = {i1,i2,....,im} là tập toàn bộ các mục (chính là các mặt hàng trong bài toán trên). D : là cơ sở dữ liệu, nó bao gồm các tác vụ, trong đó mỗi tác vụ có thể coi như là một vector t=(t1, t2, . . .,tm) với ti = 0 nếu tác vụ t mua mặt hàng i, i=1, . . .,m. Với những định nghĩa trên thì cơ sở dữ liệu bán hàng của một siêu thị sẽ được biệt diễn là một tập D các tác vụ t. Trong đó I là tập các thuộc tính hay tập các mặt hàng. Ta có định nghĩa luật kết hợp như sau: Định nghĩa 11: Luật kết hợp là biểu thức có dạng X⇒Y trong đó X ⊂ I, Y ⊂ I và X∩Y=∅. Trong đinh nghĩa trên thì X được gọi là tiên đề. Y được gọi là kết quả của luật. Định nghĩa 12: Độ hỗ trợ của một tập mục X, ký hiệu là Supp(X), là tỉ số giữa số các tác vụ mà tập mục đó xuất hiện trên tổng số các tác vụ. Với định nghĩa trên thì ta dễ dàng có tính chất: Nếu A ⊆ B thì Supp(A)≥Supp(B). Định nghĩa 13: Độ hỗ trợ của luật X⇒Y , ký hiệu là Supp(X⇒Y) được xác định như sau: Supp(X⇒Y)= Supp(X∪Y). Định nghĩa 14: Độ tin cậy của luật dạng r=X⇒Y, ký hiệu là conf(X⇒Y) được định nghĩa: Conf(X⇒Y)=Supp(X∪Y)/Supp(X).ư Ta thấy độ tin cậy của một luật chính là xác suất có điều kiện của tác vụ chứa Y xét trong điều kiện chứa X Ví dụ: Để hiểu rõ hơn các định nghĩa trên chúng ta xét ví dụ sau: Cho một cơ sở dữ liệu như bảng sau: ID Tác vụ Các mục T1 A, C, D T2 B, E T3 A, B, C, E T4 B, E T5 B, D, F Bảng 3. Ví dụ về một cơ sở dữ liệu. Trong cơ sở dứ liệu trên gồm 5 tác vụ thao tác trên 6 tập mục là A, B, C, D, E, F. Khi đó thì độ hỗ trợ tương ứng của từng mục sẽ là: Ở đây tổng số tác vụ là 5, trong khi mục A xuất hiện trong 2 tác vụ là T1 và T3 nên có độ hỗ trợ là 2/5=40% { }( ) )( : )( Dcard TXTcard XSupp ∈= Mục Số tác vụ chứa mục Độ hỗ trợ A 2 40% B 3 80% C 2 40% D 2 40% E 3 60% F 1 20% Bảng 4. Độ hỗ trợ tương ứng của từng mục đơn. Tiếp tục tính độ hỗ trợ của các tập mục lớn hơn với mỗi tập gồm 2 mục ta có bảng : Mục Số tác vụ chứa mục Độ hỗ trợ A, C 2 40% A, B 1 20% B, D 1 20% C, D 1 20% A, B, C 1 20% A, B, E 1 20% A, C, D 1 20% B, D, F 1 20% A, B, C, E 1 20% Bảng 5. Độ hỗ trợ tương ứng của các tập mục khác Ta xét một số luật sinh từ các tập mục phổ biến trên trong bảng sau. Trong các luật của bảng ta xét luật A⇒B thì supp({A, B})=20%, supp(A)=40% vì vậy conf(A⇒B)=50%. Luật kết hợp Độ tin cậy conf(X⇒Y) A⇒C 100% A⇒B 50% B⇒D 25% A,B⇒C 100% A,C⇒B 50% B,E⇒A 33% Bảng 6. Độ tin cậy của các luật. 2.1.3. Thuật toán khai phá luật kết hợp. 2.1.3.1. Tập phổ biến. Định nghĩa 15: Tâp mục X⊆I được gọi phổ biến nếu thoả mãn supp(X) ≥ minsup. Trong đó minsup là một độ hỗ trợ tối thiểu cho trước. Khái niệm phổ biến này cho phép chúng ta chỉ xét những tập mục xuất hiện trong cơ sở dữ liệu là đủ lớn, lớn hơn một minsup nào đó. Khi đó luật của chúng ta sinh ra sẽ đáng tin cậy hơn. Ta có hệ quả sau: Cho A và B là hai tập mục, A⊆B. a. Nếu B là tập mục phổ biến thì A cũng là tập mục phổ biến. b. Nếu A là tập mục không phổ biến thì B cũng là tập mục không phổ biến. 2.1.3.2. Khai phá luật dựa trên tập mục phổ biến. Việc tìm kiếm luật kết hợp trong cơ sở dữ liệu được quy về 2 giai đoạn [7]: − Tìm tất cả các luật có độ hỗ trợ lớn hơn một minssup. Các tập mục này chính những tập mục phổ biến. Các thuật toán Apriori và AprioriTid nhằm giải quyết vấn đề này. − Từ các tập mục tìm được ở trên tiến hành sinh những luật có độ tin cậy lớn hơn một minconf nào đó. Hai tham số minsupp và minconf được người sử dụng đưa vào khi hệ thống khai phá tri thức. Các giá trị này thường được đưa ra bởi các chuyên gia kinh tế hoặc những người có kinh nghiệm. Ở trong giai đoạn nhất việc phát hiện những tập mục phổ biến tiến hành duyệt dữ liệu rất nhiều lần. Việc tìm các tập mục phổ biến thực hiện dựa trên hệ quả của định nghĩa 14 trình bày ở trên. Và thực hiện lần luợt các bước sau: − Đầu tiên người ta khởi tạo một tập thật giống các tập mục phổ biến và sinh các tập mục phổ biến dựa trên tập mục hạt giống này. − Từ các tập mục phổ biến người ta thực hiện ghép các tập mục phổ biến để được các tập mục lớn hơn, các tập mục này được gọi là tập ứng cử viên. − Để tính được độ hỗ trợ của các tập mục phổ biến người ta phải thực hiện duyệt toàn bộ dữ liệu. Khi đó sẽ tìm được những tập mục ứng cử viên là tập mục phổ biến. − Tập các tập mục ứng cử viên là phổ biến này được sử dụng là tập hạt giống cho bước tiếp theo. Cụ thể các thuật toán Apriori và AprioriTid sinh ra các tập ứng cử viên đó được tính trong một lần duyệt bằng việc sử dụng các tập mục được coi là phổ biến trong lần duyệt trước mà không cần quan tâm tới các tác vụ trong cơ sở dữ liệu. Việc chỉ xét các tập mục là phổ biến trong lần trước để sinh các tập mục ứng cử viên dựa hệ quả rút ra từ định nghĩa 14 đã trình bày ở trên: “Bất kỳ tập con của một tập mục phổ biến nào cũng là tập mục phổ biến”. Vì vậy tập ứng cử viên có k mục có thể sinh ra bởi tập các tập mục phổ biến có k-1 mục. Điều này có thể dẫn đến việc giảm đáng kể các tập mục ứng cử viên, là giảm độ phức tạp trong tính toán. Thuật toán Apriori: Đây là thuật toán dùng để phát sinh các tập mục phổ biến. − Lk là tập các tập mục phổ biến có kích thước k. − Ck là tập ứng cử viên, là các tập mục có tiềm năng trở thành tập mục phổ biến. − Thuật toán được tiến hành cho đến khi không tìm được một tập mục phổ biến nào trong một lần duyệt. Các bước của thuật toán được trình bày dưới đây: Lần duyệt 1 1. Phát sinh các ứng cử viên C1. Thực chất tất cả các tập mục đơn của cơ sở dữ liệu. 2. Kiểm tra và ghi lại những tập mục thuộc C1 là tập mục phổ biến và L1. Lần duyệt thứ k: 1. Phát sinh các tập ứng cử viên từ các tập mục phổ biến Lk-1. a. Kết hợp các Lk-1 để được tất cả các Ck. b. Với mỗi ứng cử viên Ck phát sinh tất cả k-1 tập con của Ck. c. Tỉa tất cả các ứng cử viên từ Ck trong đó có tập con (k-1) của nó không có trong tập mục phổ biến Lk-1. 2. Duyệt trong cơ sở dữ liệu để xác định độ hỗ trợ của các tập ứng cử viên Ck. 3. Ghi lại các tập mục phổ biến Lk. Trong bước thứ 2 của mỗi lần duyệt, để có thể tính độ hỗ trợ của các tập ứng cử viên thì thuật toán phải tiến hành duyệt lại toàn bộ cớ sở dữ liệu. Quá trình này là thực sự đáng kể với những cơ sở dữ liệu lớn. Khắc phục hạn chế trên thuật toán ApriporiTid đã lưu lai thông tin về các tác vụ gắn liền với mỗi tập mục phổ biến. Điều này có thể giúp chúng ta khắc phục được hạn chế về việc phải đọc dữ liệu nhiều lần tuy nhiên lại gây khó khăn hơn cho chúng ta khi tổ chức bộ nhớ chương trình. Ở giai đoạn 2, giai đoạn sinh luật với mỗi tập mục phổ biến l ta tiến hành xây dựng những luật dạng ( )ala −→ ở đây a là tập con của l sao cho ( ) ( ) confap lp min sup sup ≥ Ta có, với một tập aa ⊂* thì ( ) ( )apap sup*sup ≥ nên độ tin cây của luật dạng ( )** ala −→ không thể lớn hơn luật dạng ( )ala −→ . Do đó nếu luật ( )ala −→ không được chấp nhận thì luật dạng ( )** ala −→ cũng không thể chấp nhận được. Nhờ tính chất này mà ta có thể tiến hành xây dựng các luật chỉ có một tập mục ở phía phải sau đó kết hợp các luật thành dạng có 2 mục, 3 mục, ... ở phia phải 2.1.4. Kết luận. Việc tìm kiếm các luật kết hợp trong cơ sở dữ liệu được thực hiện theo thuật toán nguyên thuỷ Apriori và AprioriTid. Tuy nhiên một thực tế là số tập mục phổ biến có thể là rất nhiều, khắc phục hạn chế này chúng ta có thể dùng thuật toán CHARM được Mohammed .J Zaki và Ching-jui Hsiao đưa ra trong năm 2000 [13]. Thuật toán CHARM không tiến hành tìm những tập mục phổ biến mà tiến hành tìm những tập mục phổ biến đóng. Điều này dẫn đến số tập mục phổ biến tìm được là giảm đi rất nhiều và tại các bước của thuật toán việc cắt nhánh trong quá trình thực hiện là rất hiệu quả. Một hạn chế đáng kể của các thuật toán trình bày ở trên là chỉ làm việc với dữ liệu ở dạng nhị phân, tức là giá trị của các thuộc tính chỉ nhận 2 giá trị là 0 và 1. Điều đó dẫn đến việc thuật toán khó có thể áp dụng trực tiếp trên những cơ sở dữ liệu tự nhiên. Muốn thực hiện được thuật toán cần phải định lượng các thuộc tính thành dạng nhị phân. Quá trinh này làm giảm tính chính xác của kết quả thu được. Trong chương sau chúng tôi sẽ trình bày một thuật toán có thể làm việc được với dữ liệu là đa trị, dữ liêu là dạng số thực. 2.2 . Sinh cây quyết định từ hệ thông tin. 2.2.1. Thuật toán học cây quyết định. Phương pháp học cây quyết định là một trong những phương pháp được sử dụng rông rãi nhất cho việc học quy nạp từ một tập mẫu lớn [11]. Đây là phương pháp xấp xỉ các hàm mục tiêu có giá trị rời rạc. Mặt khác cây quyết định còn có thể chuyển sang dạng biểu diễn tương đương dưới dạng tri thức là các luật Nếu – Thì (if ... then). Xét một ví dụ về cây quyết định. Cho một bảng dữ liệu sau: Doc ai timetable system patallel relation database process graphic Class AI D1 1 1 0 0 0 0 0 0 1 D2 1 0 0 0 0 0 0 0 1 D3 0 1 0 0 1 1 1 1 1 D4 1 0 0 0 0 0 0 1 1 D5 1 1 1 1 1 0 0 1 1 D6 0 0 1 1 0 0 0 0 0 D7 0 0 1 0 0 0 0 1 0 D8 0 0 1 0 1 1 0 0 0 D9 1 0 1 1 0 1 0 0 0 D10 1 1 0 0 1 1 1 0 0 Bảng 6. Các ví dụ huấn luyện tron cây quyết định. Ta có cây quyết định: Hình trên là một ví dụ về cây quyết định phân lớp AI các mẫu đưa vào theo bảng 5. Mỗi nút của cây biểu diễn một thuộc tính trong các mẫu, mỗi một nhánh tới nút tương ứng với một trong những giá trị cụ thể cho thuộc tính này. Để đơn giản ta chỉ xét các thuộc tính nhị phân, tức là chỉ lấy giá trị là 0 và 1. Trong bảng 5, dữ liệu huấn luyện là 10 văn bản (trong các bài toán thực tế thì số lượng văn bản có thể lên tới hàng nghìn). Mỗi văn bản có 8 thuộc tính nhị phân tương ứng với việc văn bản đó có hay không có từ đó. Đó là các thuộc tính ai, system, paralell, relation, database, process, graphics.Thuộc tính cuối Class AI cùng là thuộc tính quyết định. Đó là hàm mục tiêu của chúng ta, nó nhận giá trị 1 tức là văn bản đó thuộc lớp AI, 0 tức là văn bản đó không thuộc lớp AI. Mặt khác, từ cây quyết định trên chúng ta có thể sinh ra được các luật như sau: 1) Nếu (System=1) và (Timetable =1 ) thì class AI =Yes. 2) Nếu (System=1) và (Timetable =0 ) thì class AI =No. 3) Nếu (System=0) và (Process =1 ) thì class AI =No. 4) Nếu (System=0) và ( Process=0 ) thì class AI =Yes. System Process Timetable 0 1 0 1 0 1 Yes No Yes No Hình 2.Một ví dụ về cây quyết đinh. Giải thích cụ thể hơn ta có: 1) Nếu văn bản có từ System và từ Timetable thì thuộc lớp AI. 2) Nếu văn bản có từ System và không có từ Timetable thì không thuộc lớp AI. 3) Nếu văn bản không có từ System và có từ Process thì không thuộc lớp AI. 4) Nếu văn bản không có từ System và không có từ Process thì thuộc lớp AI. Những bài toán nên sử dụng việc học cây quyết định: Trong [10], Mitchel đã chỉ việc sử dụng cây quyết định phù hợp với việc giải quyết các bài toán sau: − Các mẫu huấn luyện được biểu diễn thành những cặp giá trị - thuộc tính, các thuộc tính là một tập cố định. Các giá trị thuộc tính là rời rạc. Tuy nhiên trong các thuật toán sinh cây quyết định cải tiến sau này cho phép các thuộc tính nhận giá trị là giá trị thực. Đặc biệt là thuật toán sinh cây quyết định sử dụng siêu phẳng được đưa ra trong[9] sẽ được trình chi tiết sau. − Hàm mục tiêu phải có giá trị rời rạc, trong bài toán phân lớp văn bản trên thì hàm mục tiêu có thể mở rộng thành nhiều giá trị đầu ra. − Trong trường hợp cần biểu diễn kết quả thu được dưới dạng các mô tả: Chẳng hạn như là dưới dạng luật thì cấu trúc cây quyết định có thể chuyển sang một cách dễ dàng. − Tập dữ liệu huấn luyện có thể chứa lỗi: Phương pháp học cây quyết định có thể thực hiện tốt trên các tập dữ liệu chứa lỗi, cả trên các lỗi trong phân lớp ví dụ huấn luyện cũng như lỗi trên các giá trị thuộc tính trong các ví dụ này. − Tập dữ liệu có thể có những giá trị bị thiếu. Phương pháp cây quyết định có thể được sử dụng trong các trường hợp các ví dụ huấn luyện có những giá trị chưa biết. Thuật toán ID3 Đây là một thuật toán cơ bản nhất trong lĩnh vực học cây quyết đinh, hầu hết các thuật toán học cây quyết đinh cải tiến sau này đều dựa trên nó. ID3 và các thuật toán cải tiến của nó đều dựa vào cách tiếp cận từ trên xuống. Trong các thuật toán học cây quyết định thì thuật toán ID3 và thuật toán C4.5 là phổ biến nhất. Thuật toán ID3 lần đầu tiên được Quinlan giới thiệu năm 1975 trong tạp trí Machine Learning, Vol 1, No.1.Sau đây chúng tôi trình bày thuật toán ID3, thuật toán được mô tả như sau [9]: ID3(Examples, Target attribute, Attributes) Examples: Tập các ví dụ huấn luyện. Target attribute: là thuộc tính đầu ra cho cây quyết định. Attributes:Danh sách các thuộc tính. Kết quả trả về là một câu quyết định phân lớp đúng các mẫu ví dụ đưa ra. • Tạo một nút gốc Root cho cây quyết định. • Nếu toàn bộ Examples là ví dụ dương. Trả về cây Root một nút đơn, với nhãn +. • Nếu toàn bộ Examples là ví dụ âm. Trả về cây Root một nút đơn, với nhãn - . • Nếu tập thuộc tính là rỗng thì trả lại cây Root một nút đơn với nhãn bằng giá trị phổ biến nhất của Target_attribute trong Examples. • Ngược lại:Begin o A ←Thuộc tính từ tập Attributes mà phân lớp tốt nhất tập Examples. o Thuộc tính quyết định cho Root ←A. o For Mỗi giá trị cụ thể vi của A, ƒ Thêm một nhánh cây con ở dưới Root, phù hợp với biểu thức kiểm tra A=vi . ƒ Đặt Examplesvi là tập các ví dụ có giá trị của thuộc tính A là vi . ƒ Nếu Examplesvi rỗng • thì dưới nhánh mới thêm gán một nút lá với nhãn = giá trị phổ biến nhất của Target_attribute trong tập Examples. • ngược lại thì dưới nhánh mới này thêm một cây con: ID3(Examplesvi,Target_attribute,Attribute-{A}. • End. • Return Root. Chọn lựa thuộc tính tốt nhất Vấn đề quan trọng nhất của thuật toán ID3 là làm sao chọn lựa được thuộc tính tốt nhất để đưa vào các nút của cây. Để giải quyết vấn đề này, người ta sử dụng kết quả của lý thuyết thông tin là các độ đo là infomation gain và entropy. Entropy: Đây là đại lượng hết sức quan trọng trong lý thuyết thông tin. Entropy là đại lượng đo tính đồng nhất hay thuần tuý của các mẫu. Trước tiên ta xem xét trường hợp các thuộc tính của tập các mẫu huấn luyện S của cây quyết định chỉ có hai lớp phân biệt là mẫu ví dụ dương (possotive) và mẫu ví dụ âm (Negative). Khi đó Entropy của tập S được định nghĩa như sau: Entropy(S)≡-p⊕ log2p⊕--pΘ log2pΘ. Trong đó: p⊕ : là phân bố của các ví dụ dương trong S. pΘ : là phân bố của các ví dụ dương trong S. Chúng ta quy đinh 0log20 =0. Ví dụ: Xét trong ví dụ bảng 5, có10 mẫu huấn luyện, trong đó có 5 mẫu huấn luyện dương(Class AI=1) và 5 ví dụ âm (Class Ai=0). Khi đó đại lương Entropy S liên quan tới sự phân bố 2 lớp dương và âm của tập S là: Entropy(S) = -(5/10)log2(5/10)-(5/10)log2(5/10)= =1.0 Trong trường hợp tổng quát thì đại lượng Entropy được tính như sau: Trong đó: pi :là phân bố của lớp thứ i trong S. c : là số lớp trong S. Tương tự: Entropy(Sai=1) = -(4/6)log2(4/6)-(2/6)log2(2/6)=0,918. Entropy(Sai=0) = -(1/4)log2(1/4)-(3/4)log2(3/4)=0,812. ( ) ∑ = −= c i ii ppSEntropy 1 2log Information Gain Trong khi Entropy là đại lượng đo độ không đồng nhất của các mẫu, người ta đưa ra một độ đo sự ảnh hưởng của một thuộc tính trong mẫu đó trong việc phân lớp là information gain. Information gain của một thuộc tính A được tính như sau: Trong đó Sv là tập các phần tử mà thuộc tính A có giá trị là v. Ví dụ: Tiếp tục xét ví dụ trong bảng 5 ta có. Gain(S,ai) = Entropy(S)-(6/10)Entropy(Sai=1)-(4/10)Entropy(Sai=0) = 1.0-(6/10).0,918-(4/10).0,812 = 0,1244 Tương tự ta có thể xét các Gain của các thuôc tính khác có giá trị như bảng sau. Attribute ai timetable system parallel relation database process graphic Gain 0,1244 0,1244 0,2871 0,0349 0,0 0,1244 0,0 0,1244 Bảng 7. Giá trị informatin Gain của các thuộc tính. Khi đó theo thuật toán ID3 thì thuộc tính đầu tiên được chọn là thuộc tính system vì có giá trị information Gain là lớn nhất. ∑ ∈ −≡ )( )()(),( AValuesV V V SEntropy S S SEntropyASGain ( ) )()(, }1,0{ v v v SEntropy S S SEntropyaiSGain ∑ ∈ −= 2.2.2. Một số phương pháp giải quyết vấn đề rời rạc hoá 2.2.2.1. Maximal Discernibility (MD) Heuristic Theo như định nghĩa 8 được trình bày trong Chương 1 phần 1.2.1.4 trên một bảng quyết định bất kỳ ta luôn có thể định nghĩa một tập các nhát cắt. Từ tính chất này ta có thể xây dựng thuật toán sau: Từ một bảng quyết định A =(U, A∪{d}), chúng ta xây dựng một bẳng quyết định mới. A* =(U*, A*∪{d*}) như sau: • U* ={(u, v)∈ U2 : d(u)≠d(v)} ∪ {⊥}. • A* ={c: c là một nhát cắt trên A}. c(⊥)=0; c((ui, uj))=1 nếu c phân biệt được ui và uj. 0 nếu ngược lại. • d(⊥) và d*(ui, uj)=1. Ta thu được bảng quyết định dạng sau: A* c1 c2 . . . ck . . . d* (u1, u2) 1 0 . . . 0 . . . 1 (u1, u2) 1 1 . . . 1 . . . 1 . . (u1, u2) 0 1 1 . . . . ⊥ 0 0 . . . 0 . . . 0 Bảng 8. Một dạng của bảng quyết định dạng A* Như vậy việc tìm kiếm một sự rời rạc hoá tối ưu bảng quyết định A tương đương với việc tìm tập rút gọn nhỏ nhất trong bảng quyết định A*. Thuật toán MD[9] được xây dựng dựa trên việc tìm kiếm nhát cắt với số cặp đối tượng được phân biệt bởi nhát cắt là nhỏ nhất được mô tả như sau: Từ tập tất cả các nhát cắt A*, nhát cắt phân biệt số lớn nhất các cặp đối tượng thuộc những lớp quyết định khác nhau sẽ được chọn. Quá trình thực hiện đến khi hai đối tượng bất kỳ từ những lớp quyết định khác nhau đều bị phân biệt bởi một hoặc vài nhát cắt. Phương pháp này rất hiệu quả vì để tìm được nhát cắt với sự phân biệt là lớn nhất chúng ta chỉ cần O(nk) bước, trong đó n là số đối tượng và k là số thuộc tính.Vì thế tổng thời gian rời rạc hoá là O(nk.| P |), với P là tập nhát cắt cuối cùng tìm được. 2.2.2.2. Sự rời rạc hoá định nghĩa bằng siêu phẳng Ở trên chúng ta đã trình bày một phương pháp khá đơn giản để rời rạc hóa dữ liệu bằng nhát cắt theo định nghĩa 8. Chúng ta xét một chiến lược tương tự, nhưng thay vì tập các nhát cắt như trên chúng ta dùng tập các siêu phẳng [9]. Ta xét một bảng quyết định A =(U, A∪{d}) Trong đó: U={u1,. . ., un} A={f1, . . ., fk} d:U→{1,. . .,m} Giả sử rằng những đối tượng ui được phân biệt bởi thuộc tính điều kiện chúng ta có thể diễn tả chúng trong không gian quan hệ k chiều như sau: Pi=(f1(ui), f2(ui), . . .,fk(ui)) với i ∈{1, 2, 3, . . ., n}. Như vậy ta có thể coi mỗi đối tượng như một điểm trong không gian quan hệ k chiều. Và các điểm đó lập thành các lớp quyết định: Ci={u∈U :d(u)=i}. với i=1,. .,m Ta xét một siêu phẳng H được diễn tả đầy đủ bởi một bộ (k+1) số (a, a1,. . .,ak) ∈Rk: H={(x1,. . ., xn)∈Rk: a1x1+. . .+akxk+a=0} Khi đó siêu phẳng H chia lớp Ci thành hai lớp con sau đây: Chúng ta thêm một số đọ đo để đo chất lượng của siêu phẳng trong mỗi quan hệ giữa các lớp quyết định C1,C2,. . .,Cm. Ta xét độ đo sau để tính toán chất lượng của siêu phẳng: Nếu award(H)>award(H') thì số cặp đối tượng từ những lớp quyết định khác nhau bị phân biệt bởi siêu phẳng H sẽ nhiều hơn siêu phẳng H'. 0}a(u)fa...(u)fa: C{u kk11i , ≥+++∈=HUiC 0}a(u)fa...(u)fa: C{u kk11i , <+++∈=HLiC ∑ ≠ = ji HL j HU i CcardCcardHaward )().()( ., Đặt )( ,HUii Ccardu = và )( ,HLii Ccardl = với i=1,. . ., r và u=u1 + u2 + . . . +ur ;l=l1 + l2 + . . . +lm Khi đó , ta có công thức: Chúng ta tiếp định nghĩa hàm sau: Như vậy thì chất lượng của siêu phẳng H có thể được tính theo công thức sau: porwer1(H) =award(H). Để hiểu rõ cách tính đại lượng này chúng ta cùng xét ví dụ sau: Cho bảng dữ liệu sau gồm 6 đối tượng và mỗi đối tượng có 4 thuộc tính, trong đó thuộc tính thứ (9) là thuộc tính quyết định. Ở trong ví dụ này chỉ có hai lớp quyết định tương ứng với các giá trị 1 và 2 của thuộc tính quyết định (9). (1) (2) (8) (9) X1 2 102 31 1 X2 4 146 70 2 X3 3 102 28 1 X4 2 90 37 2 X5 2 90 31 1 X6 2 146 28 2 Bảng 9. Ví dụ về bảng quyết đinh. ∑∑ =≠ −== m i ii ji ji lululuHaward 1 .)( ( ) ( ) ( ) ∑∑ == =⋅= m i ii HU i m i HU i juCcardCcardHpenalty 1 , 1 , Ta xét 2 siêu phẳng ( ) ⎭⎬ ⎫ ⎩⎨ ⎧ =+−++∈= 124 2 146102.0.1.0:,, 321 3 3211 xxxRxxxH và ( ) ⎭⎬ ⎫ ⎩⎨ ⎧ =+−++∈= 96 2 90102.0.1.0:,, 321 3 3212 xxxRxxxH Thực chất 2 siêu phẳng trên là xét giá trị của thuộc tính thứ (2) và giá trị của thuộc tính đó so sánh với điểm giữa của các giá trị đó. Khi đó ta có: 1H các chia lớp quyết định của tập các đối tượng trên thành các tập con là: { }=1,1 HUC , { }5,3,11,1 XXXC HL = , { }2,61,2 XXC HU = , { }4,21,2 XXC Hl = . { }3,12,1 XXC HU = , { }51,1 XC HL = , { }2,61,2 XXC HU = , { }41,2 XC Hl = . Như vậy: ( ) ( ) ( ) ( ) ( ) 62.02.3 .. 1111 ,2 , 1 , 2 , 11 =+= += HLHUHUHL CcardCcardCcardCcardHpower và ( ) ( ) ( ) ( ) ( ) 41.22.1 .. 2222 ,2 , 1 , 2 , 12 =+= += HLHUHUHL CcardCcardCcardCcardHpower Vậy ta có ( ) ( )21 HpowerHpower > nên trong quá trình rời rạc hoá dữ liệu thì siêu phẳng 1H được ưu tiên hơn. Ngoài ra ta còn có thể xét một số hàm sau cũng như là hàm xác định chất lượng của siêu phẳng: và ( ) ( )( ) ;2 cHpenalty HawardHporwer += ( ) ( ) ( ).. 213 HpenaltywHawardwHporwer −= Cả 3 hàm power1(H), power2(H), power3(H) trên đều có thể được dùng để tính chất lượng của siêu phẳng. Cả 3 độ đo này đều có thể áp dụng cho thuật toán kinh nghiệm sẽ được trình bày sau. 2.2.2.3. Những tính chất của phương thức MD. Xét bảng quyết định A =(U, A∪{d}, các đối tượng trong U được chia thành m lớp quyết định C1, C2, . . ., Cm. Chúng ta xem xét một đặc tính mới f của các đối tượng trong U với giá trị từ tập V={v0, v1, . . .,vk} ⊂ R(với v0 < v1< . . .<vk). Tập các nhát cắt trên V được định nghĩa là một tập P = {c1, c2, . . ., ck} trong đó 2 1 ii i vvc += − với i=1,. . .,k. Đặt : ( ) ( )( ) ( )( )( )judcufUucardcl iij =∧<∈= : là số đối tượng của lớp quyết định Ci nằm ở bên trái của nhát cắt ci ( ) ( )( ) ( )( )( )judcufUucardcl iij =∧>∈= : là số đối tượng của lớp quyết định Ci nằm ở bên phải của nhát cắt ci. conf(A) =card {(u, v)∈U2 :d(u) ≠d(v)}, là số cặp đối tượng thuộc những lớp quyết định khác nhau. Theo như được trình bày trong [2] chúng ta có các định lý sau: Định lý 1:Hàm conf(A) có thể tính bằng công thức dưới đây. 1. Xét nj = card(Cj) với j=1,. . .,m ta có: ⎥⎥⎦ ⎤ ⎢⎢⎣ ⎡ =⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛= ∑∑ == m j j m j j nnAconf 1 2 2 12 1)( 2. Với một nhát cắt bất kỳ c ∈ P : ( ) ( ) ( )( ) ( ) ( )( )∑ < ++= ji jjii crclcrclAconf . Đinh nghĩa 16: Hàm “Discernible pair” dp:P→N (với N là tập các số nguyên không âm) như sau: ( ) ( ) ( ) ( )( ) ( ) ( )( ){ }vdudvfcufUvucardcdp ≠∧<<∈= :, 2 với mọi nhát cắt c thuộc P. Khi đó dp(c) chính là số cặp đối tượng từ cùng một lớp quyết định bị phân biệt bởi nhát cắt c∈P. Định lý 2: Với một nhát cắt bất kỳ c∈P ta có: ( ) ( ) ( ) ;. 1 ,1 ∑ ∑ = ≠= ⎟ ⎟ ⎠ ⎞ ⎜⎜⎝ ⎛= m j m jll lj crclcdp ( ) ( ) ( ) ( ) ( )∑∑∑ === −= m j jj m j j m j j crclcrclcdp 111 . . Theo định lý trên thì giá trị của hàm dp có thể tính theo công thức trên. Xét { }mi .,..,1⊆∂ là tập giá trị quyết định của tất cả các đối tượng nằm trong khoảng ( )1, +ii cc : ( )( ) ( )( ){ }1: +∈ <<∧=∃=∂ iiUui cufctudt Định lý 3: Nếu ( ) ( ) 11 =∂=∂ =ii cardcard và ci là cực đai địa phương định nghĩa trên hàm dp ( ) ( ) ( ) ( ) ( ) ( ) ( )( )1111 2,, −++− +≥≥≥ iiiiiii cdpcdpcdpcdpcdpcdpcdp thì ii ∂≠∂ −1 . Chứng minh: Theo định lý 2 ta có: ( ) ( ) ( ) ( ) ( )∑∑∑ === −= m j jj m j j m j j crclcrclcdp 111 . Nếu ii ∂=∂ −1 (Không làm giảm tính tổng quát ta có thể coi 11 =∂=∂ − ii ) thì: ( ) ( )( )⎩⎨ ⎧ ≠ =−= 1 111 jkhicl jkhiclcl j i ij và ( ) ( )( )⎩⎨ ⎧ ≠ =+= 1 111 jkhicr jkhicrcr j i ij Do đó: ( ) ( ) ( ) ( )[ ] ( )[ ] ( ) ( )∑∑∑ === −+−−⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ +⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ −= m j jjjjii m j jj m j jji crclcrclcrclcdp 1 11 11 .1111 ( ) ( ) ( ) ( ) ( ) ( )[ ]∑∑∑∑ ==== −+−= 1 1111 .. j ijij m j ijij m j ij m j ij crclcrclcrcl ( ) ( ) ( )[ ]∑ = −+= 1 1j ijiji crclcdp . Áp dụng tương tự với tham số là ( )1+icdp ta có: ( ) ( ) ( ) ( )[ ] ( )[ ] ( ) ( )∑∑∑ === + −−+−⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ −⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛ += m j jjjjii m j jj m j jji crclcrclcrclcdp 1 11 11 1 .1111 ( ) ( ) ( ) ( ) ( ) ( )[ ]∑∑∑∑ ==== −−−= 1 1111 .. j ijij m j ijij m j ij m j ij crclcrclcrcl ( ) ( ) ( )[ ]∑ = −−= 1 1j ijiji crclcdp . Như vậy ( ) ( ) ( )iii cdpcdpcdp .211 =+ −− , suy ra ic không thể là cực đại địa phương trên hàm dp. Sau đây ta sẽ xét một số tính chất đáng chú ý của siêu phẳng tốt nhất với một số điều kiện đặt ra. Định lý 4: Nếu một nhát cắt ic là cực đại địa phương của hàm dp, m=1 (số giá trị của thuộc tính quyết định chỉ là 2, giả sử là 1 và 2) và ( ) ( ) 111 =∂=∂ −− ii cardcard thì ( ) ( )Aconfcdp i .2 1≥ . Chứng minh: Từ định lý 4 ta có 1−∂≠∂ ii , không mất tính tổng quát chúng ta có thể giả sử rằng { }11 =∂ −i và { }2=∂ i . Từ định lý 2 ta có: ( ) ( ) ( )[ ] ( ) ( )[ ]iiii crclcrclAconf 2211 . ++= Từ định lý 3 ta có: ( ) ( ) ( ) ( ) ( )iiiii crclcrclcdp 1221 .. += ( ) ( )[ ] ( ) ( ) ( )[ ]( ) ( ) ( )iii iiiii crclcdp crclcrclcdp 22 12211 1..1 −+= ++−=− ( ) ( )[ ] ( ) ( ) ( )[ ]( ) ( ) ( )iii iiiii crclcdp crclcrclcdp 22 12211 1..1 −+= ++−=− Nhát cắt ic là cực đại địa phương của hàm dp khi ( ) ( )1−≥ ii cdpcdp và ( ) ( )1+≥ ii cdpcdp ; Điều kiện ( ) ( )1−≥ ii cdpcdp tương đương với: ( ) ( ) 022 ≤− ii crcl Điều kiện ( ) ( )1+≥ ii cdpcdp tương đương với: ( ) ( ) 011 ≤− ii crcl Ta suy ra được bất đẳng thức sau: ( ) ( )[ ] ( ) ( )[ ] 0. 1122 ≤−− iiii crclcrcl . Khai triển ra ra được: ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) 0.... 12212121 ≤−−+ iiiiiiii crclcrclcrcrclcl ⇔ ( ) ( )[ ] ( ) ( )[ ] ( ) ( ) ( ) ( )[ ]iiiiiiii crclcrclcrclcrcl 12212211 ...2. +≤++ . Từ đó suy ra: ( ) ( )icdpAconf .2≤ Dẫn đến ( ) ( )Aconfcdp i .2 1≥ là điều phải chứng minh. Trên đây chúng tôi đã trình bày một số tính chất của bài toán rời rạc hoá dữ liệu. Đó là những cơ sở toán học để chúng tôi tiến hành xây dựng thuật toán xây dựng cây quyết định không đối xứng sẽ được trình bày sau đây. 2.2.2.4. Xây dựng cây quyết định không đối xứng Theo nhận định của nhiều nhà nghiên cứu về học máy, thông thường tính cân bằng của các tập con được chia thường cho kết quả phân lớp tốt. Tuy nhiên, trong nhiều trường hợp cách thức phân hoạch không cân bằng lại cho kết quả tốt hơn, và tương ứng là phương pháp xây dựng cây quyết định không đối xứng. Để đủ đơn giản ta chỉ xét các bảng quyết định { }( )dAUA ∪= , , khi tập U các đối tượng chỉ gồm 2 lớp quyết định, giá trị của thuộc tính quyết định d chỉ là 1 và 2 ( { }2,1: →Ud ). Sử dụng theo ý tưởng thực hiện trong thuật toán ID3, các đối tượng là các lá của cây quyết định và siêu phẳng là nhãn của các nút khác (Nút trong). Một siêu phẳng bất kỳ: ( ){ }0...:,...,, 221121 =++++∈= axaxaxaRxxxH kkkk Ta định nghĩa một hàm RRH k →: như sau: ( ) axaxaxaxxxH kkk ++++= ...,..,, 221121 Một đối tượng trong kRu∈ có thể bị phân loai theo cách sau đây:Chúng ta bắt đầu từ gốc của cây quyết định. Xét H là một siêu phẳng được đánh nhãn ở gốc. Nếu ( ) 0>uH chúng ta sẽ đi theo hướng cây con bên phải và nếu ( ) 0<uH chúng ta sẽ đi theo nhánh cây bên trái. Quá trình tiến hành với tất cả trong khi các nút của cây quyết định đến khi tập các đối tượng được đánh nhãn không có cùng một giá trị quyết định. H L R H(u)>0 H(u)<0 u Hình 3. Hình ảnh cây quyế định nhị phân được thành lập. Chi tiết các bước của thuật toán xây dựng cây quyết định không đối xứng được trình bày sau đây: 1. Khởi tạo cây nhị phân trống T. 2. .Đánh nhãn gốc của cây bằng tập tất cả các đối tượng của thuộc U và đặt trạng thái của gốc là chưa sẵn sàng. 3. For mỗi trạng thái chưa sẵn sàng của lá L của T: a. Nếu tất cả các đối tượng của nhãn L có cùng giá trị quyết định thì Thay thế tập tất cả các đối tượng với giá trị quyêt định chung đó. Đặt trạng thái của L là săn sàng b. ngược lại: Tìm siêu phẳng HL tốt nhất cho tập các đối tượng của L. Thay thế nhãn của L bằng HL.-Khởi tạo 2 nút mới L1 và L2 với trạng thai là chưa săng sàng đánh nhãn như sau: L1={ x∈L : HL(x) < 0 } và L2={ x∈L : HL(x) > 0 } 4. Lặp lại bước 3 cho đến khi tất cả các lá của T là sẵn sàng. 4. Return T //Siêu phẳng tốt nhất là siêu phẳng với giá trị một trong các của hàm power1, power2, power3 là lớn nhất. Cây quyết định đưa ra bởi tập U các dữ liệu huấn luyên được gọi là tối ưu khi chiều cao và số lá là nhỏ nhất. Thuật toán trên hướng tới việc là nhỏ nhất số siêu phẳng có thể. Nó chỉ ra rằng số là (số luật) được sinh ra là nhỏ. Trong một cách khác cũng có thể chỉ rằng chiều cao của cây giành được là nhỏ nhất. Định lý 5 [9]:Chiều cao của cây quyết định xây dựng trong trường hợp dùng độ đo là power1 se không lớn hơn 2.log2n –2, khi n là số đối tượng đưa ra bởi bảng quyết định. Chứng minh: Đặt conf(h) là tổng của conf của tất cả các nút ở chiều cao h của cây quyết định. Chúng ta có: ( ) ( )1.2 −≥ hconfhconf Đặt n là số đối tượng của đưa ra bởi bảng quyết định và n1 và n2 là số đối tượng tương ứng với từng lớp quyết định.Sử dụng định lý 2 ta có: ( ) ( ) 42 0 22 21 21 nnnbnconfAconf =⎟⎠ ⎞⎜⎝ ⎛ +≤== Đặt ( )Th là chiều cao của cây quyết định T. thì chúng ta có ( )( ) 0=Thconf . Vì vây: ( ) ( )( ) 2log.2 4 loglog 2 2 22 −=⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛≤≤ nnTconfTh Giả sử rằng mọi nút trong của cây đều có cấu trúc thoả mãn điều kiện sau: ( ) ( )RL NconfNconf = Ta có: ( ) ( )( ) ( )NconfNconfNconf RL 4 1,max ≤ khi NL vaf NR là các nhánh con trái và phải của nút N. Suy ra: ( ) ( )( ) nnTconfTh 2 2 44 log14 log1log =+⎟⎟⎠ ⎞ ⎜⎜⎝ ⎛≤+≤ Và chiều cao của siêu phẳng có thể giảm khi chúng ta sử dụng hàm sau để tính độ mạnh của siêu phẳng: ( ) ( ) ( ) ( ) ( ) ( )( )⎥⎦ ⎤⎢⎣ ⎡ −⎥⎦ ⎤⎢⎣ ⎡ −= RL NconfNconfnconfnconfHawardHpower ,max2.24 với một siêu phẳng bất kỳ. Một vấn đề đặt ra với thuật toán trên là làm sao lựa chọn được tập các siêu phẳng để tìm được siêu phẳng có độ mạnh là lớn nhất. Sau đây chúng tôi đưa ra một cách lựa chọn siêu phẳng để thực hiện thuật toán trên trong chương trình thử nghiệm của mình. Để tìm được siêu phẳng tốt nhất cho thuật toán trên chúng tôi đã đưa ra một cách lựa chọn siêu phẳng gồm 2 bước sau: Bước 1: Chọn một thuộc tính tốt nhất a∈A theo cách chọn của thuật toán ID3 đã trình bày ở trên (Thuộc tính có Information Gain lớn nhất). Bước 2: Chọn một siêu phẳng trong các siêu theo cách định nghĩa sau: Định nghĩa 17 : Siêu phẳng H được định nghĩa như sau: Xét một thuộc tính bất kỳ a∈A. Va={v0, . . .,vk} là tập các giá trị của thuộc tính a. Đặt P={c1, . . .,ck} khi ci=(vi-1+vi)/2 với i=1,. . .,k ta có một siêu phẳng H={(x1,. . ., xk)∈ Rk: a((x1,. . .,xk))-ci=0} trong đó a(u) là phép lấy giá trị của thuộc tính a của đối tượng u ∈ U. Như vậy một siêu phẳng H thực tế là một bộ gồm 2 số (a,c) trong đó a là thuộc tính tốt nhất được chọn và c là một nhát cắt trên tập giá trị của thuộc tinh a. Để hiểu rõ các bước của thuật toán trên chúng ta sẽ xét ví dụ sau: Cho bảng quyết định như sau: (1) (2) (8) (9) X1 2 102 31 1 X2 4 146 70 2 X3 3 102 28 1 X4 2 90 37 2 X5 2 90 31 1 X6 2 146 28 2 Bảng 10. Ví dụ về bảng quyết định. Bảng trên chính là thông tin về 6 bệnh nhân đang khám bệnh tiểu đường. Trong đó thuộc tính (9) là thuộc tính quyết định giá trị thuộc tính này bằng 1 nếu người đó bị bệnh và bằng 2 nếu người đó không bị bệnh. Các thuộc tính (1) tương ứng với số lần mang thai của bệnh nhân đó, (2) lượng đường trong huyết tương sau 2 giờ chịu thuốc, (8) tương ứng với tuổi của bệnh nhân. Ta có Information Gain của 3 thuộc tính điều kiện được tính trong bảng sau: (1) (2) (8) Gain 0,3333 0,6667 0,6667 Bảng 11. Bảng giá trị infomation gain của các thuộc tính của các đối tượng trong bảng 10 (2),124 X1,X3,X4,X5 X2,X6 (d=2) Khi đó thuộc tính được chọn tốt nhất theo ID3 là thuộc tính (2) hoặc(8). Ta chọn thuộc tính (2) để tiếp tục thuật toán. Tâp giá trị của thuộc tính (2) là {90, 102, 146} suy ra một tập các nhát cắt cần xét là: {((2),124), ((2), 96). Khi đó độ mạnh của các siêu phẳng tương ứng với những nhát cắt trên sẽ là: siêu phẳng H (2),124 (2), 96 power1 6 4 Bảng 12. Bảng giá trị hàm power1 của các siêu phẳng chọn theo thuộc tính (2) Như vậy siêu phẳng được chọn sẽ tương ứng với nhát cắt ((2), 124) và cây quyết định khi đó sẽ là: Hình 4. Các nhánh cây bị phân theo thuật toán đối với các đối tượng ở bảng 10. Khi đó tập đối tượng được phân thành 2 tập gồm những đối tượng trong đó tập gồm 2 đối tượng {X2, X6} là hai đối tượng thuôc cùng một lớp quyết định nên ta không xét tiếp, ta xét các đối tượng còn lai trong bảng sau: (1) (2) (8) (9) X1 2 102 31 1 X3 3 102 28 1 X4 2 90 37 2 X5 2 90 31 1 Bảng 13. Bảng quyết định ứng với nhánh trái của cây quyết định hình 4. Khi đó thì information gain sẽ được tính theo bảng sau: (1) (2) (8) Gain 0,1226 0,3112 0,8112 Bảng 14. Bảng giá trị infomation gain của các thuộc tính của các đối tượng trong bảng 13 Và độ mạnh tương ứng của các siêu phẳng là: sieu phẳng H (8),34 (8), 19,5 power1 3 1 Bảng 15. Bảng giá trị hàm power1 của các siêu phẳng chọn theo thuộc tính (8) Và cây quyết định sẽ có dạng: Hinh 5. Cây quyết định sau khi áp dụng thuật toán với nhánh trái của cây hình 4 Nhìn vào hình 5 ta thấy tại tât cả các nút lá các đối tượng đều có cùng giá trị quyết định. Đến đây thuật toán có thể dùng lại. Sau khi kết thúc thuật toán thì cây quyết định có dạng: (2),124 (8), 34 X2,X6 (d=2) X1,X3, X5(d=1) X4(d=2) (2),124 (8), 34 (d=2) (d=1) (d=2) Hình 6. Cây quyết định được thành lập sau khi thực hiện thuật toán. và từ cây quyết định trên ta có thể có được các luật sau: Nếu ((2)>124) thì (9)=2. Nếu ((2)<124) và ((8)<43) thì (9)=1. Nếu ((2)43) thì (9)=2. Như vậy từ tập các mẫu huấn luyện ta có thể huấn luyên được cây quyết định theo thuật toán trên, từ cây quyết đinh đó ta có thể sinh ra được các luật. 2.2.3. Kết luận Chương này chúng tôi đã trình bày một số thuật toán khai phá dữ liệu. Trong đó thuật toán khai phá luật kết hợp theo hướng tiếp cận thông thường tỏ ra rất hiệu quả với những dữ liệu rõ ràng, giá trị của các thuộc tính là nhị phân. Do đó rất khó áp dụng cho các bài toán thực tế với những dữ liệu thường ở dạng thô, giá trị của các thuộc tính thường là các số thực,ở dang liên tục. Chương này cũng trình bày thuật toán rời rạc hóa dữ liệu sử dụng siêu phẳng tối ưu theo hướng tiếp cận tập thô. Đây là thuật toán có thể xử lý được trên dữ liệu thô, có các thuộc tính có giá trị thực. Vì vậy có thể áp dụng cho các bài toán thực tế mà không cần phải có những bước tiền xử dữ liệu phức tạp. Từ thuật toán xây dựng cây quyết định dùng siêu phẳng tối ưu được trình bày trong [9], chúng tôi đã đưa ra một cách lựa chọn siêu phẳng gồm hai bước (chúng tôi đề xuất định nghĩa 17 phục vụ cho cách lựa chọn của mình), để xây dựng chương trinh thử nghiêm cho thuật toán mà kết quả thử nghiệm sẽ được trình bày trong Chương 3. Khóa luận sẽ đưa ra các đánh giá về hiệu quả của thuật toán nói trên (đoạn 2.2.2.4) với cách lựa chọn siêu phẳng do chúng tôi đề xuất. Chương 3 CHƯƠNG TRÌNH THỬ NGHIỆM Chương trình thử nghiệm xây dựng cây quyết định dựa trên thuật toán đã trình bày trong phần 2.2.2.4 . Kết quả thử nghiệm của chương trình thực hiện trên cơ sở dư liệu khám bệnh tiểu đường được cung cấp bởi tổ chức “National Institute of Diabetes and Digestive and Kidney Diseases” (31KB), từ đó sinh ra các luật trên cây quyết định hỗ trợ quyết định khám bệnh cho các bác sĩ. 3.1 . Mô tả dữ liệu Chương trình tiến hành khai phá dữ liệu trong cơ sở dữ liệu bệnh nhân bị bệnh tiểu đường. Dữ liệu đầu vào là một file text có cấu trúc như sau: − Mỗi dòng là thông tin về một bệnh nhân. Cuối mỗi dòng có dấu kết thúc là dấu ‘.’. − Trên mỗi dòng một bệnh nhân thể hiện qua 9 thuộc tính, giữa 2 thuộc tính có dấu ‘,’ ngăn cách. − Thuộc tính thứ 9 là thuộc tính quyết định tương ứng với 2 trường hợp là bị bệnh (có giá trị là 1) và không bị bệnh (có giá trị là 2). Ví dụ về cơ sở dữ liệu: 1, 172, 68, 49, 579, 42.4, 0.702, 28, 2. 0, 173, 78, 32, 265, 46.5, 1.159, 58, 1. 6, 111, 64, 39, 0, 34.2, 0.260, 24, 1. 9, 152, 78, 34, 171, 34.2, 0.893, 33, 2. 0, 189, 104, 25, 0, 34.3, 0.435, 41, 2. 1, 122, 64, 32, 156, 35.1, 0.692, 30, 2. 3, 111, 56, 39, 0, 30.1, 0.557, 30, 1. 2, 125, 60, 20, 140, 33.8, 0.088, 31, 1. Các thuộc tính tương ứng với một số đại lượng mà các bác sĩ dùng để xác định tình trạng bệnh của bệnh nhân. − Thuộc tính (1): Số lần mang thai. − Thuộc tính (2): Plasma glucose concentration a 2 hours in an oral glucose tolerance test. − Thuộc tính (3) : Diastolic blood pressure (mm Hg). − Thuộc tính (4): Triceps skin fold thickness (mm). − Thuộc tính (5): 2-Hour serum insulin (mu U/ml). − Thuộc tính (6): Body mass index (weight in kg/(height in m)^2) − Thuộc tính (7): Diabetes pedigree function − Thuộc tính (8):Tuổi của bệnh nhân. − Thuộc tính (9): bằng 1 nếu bị bệnh và bằng 2 nếu không bị bệnh. Bộ dữ liệu gồm thông tin về 768 bệnh nhân, trong đó: • 500 (65.1%) người là bị bệnh. • 268 (34.9%) người là không bị bệnh. Trong ví dụ trên thì bệnh nhân có thông tin lưu trữ ở dòng 1 là một người không bị bệnh vì có thuộc tính thứ (9) có giá trị là 2. Một đặc điểm quan trọng trong cơ sở dữ liệu này là có thể có những dữ liệu là số thực, điều này khiến nhiều thuật toán không thể thực hiện được trước khi định lượng các giá trị đó. Thuật toán xây dựng cây quyết định nhờ sử dụng siêu phẳng được trình bày trong Chương 2 phần 2.2.2.4 có thể thực hiện trên loại dữ liệu này. 3.2 . Xây dựng chương trình Chương trình được xây dựng trên ngôn ngữ lập trình Visual C++ 6.0 theo phương pháp lập trình hướng đối tượng hoàn toàn, thực hiện thuật toán được trình bày trong Chương 2 phần 2.2.2.4. Chương trình có cấu trúc như sau: • Lớp các đối tượng CObj: class CObj { public: int FindTheBestAttribute(); int DelObject(); //hàm lấy thông tin về một đối tượng ở đầu danh sách. int GetObject(int &iNAttribute,float *arrAttri); //hàm thêm một đối ở đầu danh sách. void AddObject(int iNAttribute,float *arrAttr); // sô thuộc tính của đối tượng. int iNumberAttribute; //mảng giá trị của các thuộc tính. float *arrAttribute; //con trỏ đến đối tượng tiếp theo. CObj *pntNext; CObj(); virtual ~CObj(); }; Mỗi biến thuộc lớp này lưu thông tin về một danh sách các đối tượng, tại mỗi nút lưu thông tin về một đối tượng, con trỏ pntNext là con trỏ chỉ đến đối tượng tiếp theo thuộc danh sách. • Lớp siêu phẳng CHyperPlane: Khai báo: class CHyperPlane { public: float fPower; //độ mạnh của siêu phẳng // Thông tin về nhát cắt gồm thuộc tính iAttribute và giá trị nhát cắt trên thuộc tính đó fCut. float fCut; int iAttribute; CHyperPlane(); virtual ~CHyperPlane(); }; Mỗi đối tượng thuộc lớp này chứa thông tin về một siêu phẳng. Môt siêu phẳng đặc trưng bởi 2 giá trị là iAttribute là tên thuộc tính được chọn và fCut là giá trị trên nhát cắt đó được chọn. • Lớp tập giá trị của một thuộc tính CValueSet: class CValueSet { public: float arrValue[1000]; int iNumberValue; CValueSet(); virtual ~CValueSet(); }; Mỗi đối tượng chứa thông tin về các giá trị của một thuộc tính được tính bằng hàm GetValueSet() trong lớp CDecisionTree sẽ được trình bày sau đây. • Lớp cây quyết định CDecisionTree: class CDecisionTree { public: // Các biến của lớp float fValueDecision; CHyperPlane hypBest; CValueSet ValueSetCurrent; CObj *pntObjects ; CDecisionTree *pntLeft,*pntRight; // Các hàm thực hiện trên các biến của lớp int testObject(CObj *pntObj); void SinhLuat(char *strRule); void MDAlgoritthm(); float GetPower(float fCut,int iAttribute); void FindTheBestHyperPlane(); float GetGain(int iAttribute); int FindTheBestAttri(); void GetValueSet(int iAttribute); int GetNumberObject(int iAttribute=0, float fValue=0.0); float GetEntropy(int iAttribute=0,float fValueAttri=0); int DelObject(); void AddObjects(int iNAttribute,float *arrAttr); CDecisionTree(); virtual ~CDecisionTree(); }; Mỗi đối tượng thuộc lớp này thể hiện một nút trong cây quyết định. Các biến thuộc lớp có ý nghĩa như sau: Các biến: − fValueDecision là một biến kiểu float lưu giá trị quyết định ở các nút lá của cây quyết định. − hypBest là biến kiểu CHyperPlane lưu thông tin về siêu phẳng được chọn tại các nút trong của cây quyết định. Trong trường hợp là nút lá thì biến này không được xét đến. − ValueSetCurrent là biến kiểu CValueSet lưu thông tin về tập giá trị của thuộc tính tai thời điểm xét. − Con trỏ pntObjects là biến kiểu CObj lưu thông tin về tập các đối tượng thuộc nút. Trong trường hợp là nút là thì con trỏ có giá trị NULL. − Hai con trỏ pntLeft và pntRight là biến kiểu CDecisionTree chính là 2 nút con của nút hiện tại trong thuật toán. Các hàm: − testObject(CObj *pntObj) là hàm thực hiện kiểm tra xem đối tượng pntObj có được phân lớp đúng theo cấy quyết định được tạo ra không. − SinhLuat(char *strRule) thực hiện sinh luật dựa trên cây quyết định. − MDAlgoritthm() đây là hàm thực hiện thuật toán chính. − GetPower(float fCut,int iAttribute) là hàm trả về độ mạnh của siêu phẳng. − FindTheBestHyperPlane() là hàm tìm siêu phẳng tốt nhất. − GetGain(int iAttribute) là hàm lấy độ đo thông tin của thuộc tính iAttribute. − FindTheBestAttri() là hàm tìm thuộc tính tốt nhất. − GetValueSet(int iAttribute) là hàm lấy về tập giá trị của thuộc tính iAttribute trả về biến ValueSet. − GetNumberObject(int iAttribute=0, float fValue=0.0) trả về số đối tượng thuộc nút tai thời điểm gọi. − GetEntropy(int iAttribute=0,float fValueAttri=0) hàm tính Entropy. − DelObject() thực hiện xoá một đối tượng thuộc pntObjects. − AddObjects(int iNAttribute,float *arrAttr) thực hiện thêm một đối tượng thuộc pntObjects. Trong các hàm trên chú ý nhất là hàm MDAlgoritthm() là hàm thực hiện thuật toán. void CDecisionTree::MDAlgoritthm() { . . . } Hàm này thực hiện thuật toán chính của chương trình. Chương trình được xây dựng để có thể chạy không chỉ trên bộ dữ liệu về bệnh tiểu đường mà còn có thể thực hiện khai phá luật trên cả những bộ dữ liệu khác chỉ cần thoả mãn những điều kiện sau đây: − Giá trị của thuộc tính quyết định chỉ có 2 loại. − Tệp dữ liệu phải có câu trúc như đã trình bày ở trên. Tuy nhiên, số thuộc tính có thể nhiều hơn hoặc ít hơn 9 thuộc tính. Giao diện của chương trình: Chương trình cho phép bạn lựa chọn giữa việc sinh luật hoặc là kiểm tra độ chính xác trong phân lớp của thuật toán. Để sư dụng bạn thực hiện các bước sau: − Nhập tên file huấn luyện vào. − Nhập tên file dữ liệu kiểm thử. − Ấn nút tạo cây để chương trình tạo cây quyết định. − Ấn nút kiểm thử để chương trình thực hiện việc kiểm thử. − Ấn nút sinh luật để chương trình sinh luật ra một file dữ liệu luat.txt. 3.3 . Kết quả thử nghiệm Kết quả kiểm thử khai phá dữ liệu bệnh tiểu đường đã trình bày được ở trên. Bộ dữ liệu gồm 768 ví dụ được chia thành 2 bộ dữ liệu huấn luyện và dữ liệu kiểm thử như sau. Chúng tôi lấy 200 đối tượng đầu tiên để làm dữ liệu kiểm thử, còn lại 568 mẫu ví dụ khác chúng tôi lần lượt lấy số mẫu huấn luyện tương ứng là 50, 100, ...500 và tập huấn luyện cuối cùng là 568. Khi đó thu được kết quả như sau: Trương hợp 1: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 50 ví dụ: huanluyen1.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 114 mẫu kiểm thử là phân lớp đúng (62,00%). − 86 mẫu kiểm thử là phân lớp sai(38,00%). Trương hợp 2: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 100 ví dụ: huanluyen2.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 133 mẫu kiểm thử là phân lớp đúng (67,00%). − 67 mẫu kiểm thử là phân lớp sai(33,00%). Trương hợp 3: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 150 ví dụ: huanluyen3.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 134 mẫu kiểm thử là phân lớp đúng (64,50%). − 66 mẫu kiểm thử là phân lớp sai(35,50%). Trương hợp 4: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 200 ví dụ: huanluyen4.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 142 mẫu kiểm thử là phân lớp đúng (68,50%). − 58 mẫu kiểm thử là phân lớp sai(31,50%). Trương hợp 5: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 250 ví dụ: huanluyen5.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 124 mẫu kiểm thử là phân lớp đúng (62,50%). − 76 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 6: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 300 ví dụ: huanluyen6.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 137 mẫu kiểm thử là phân lớp đúng (62,50%). − 63 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 7: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 350 ví dụ: huanluyen7.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 132 mẫu kiểm thử là phân lớp đúng (62,50%). − 68 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 8: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 400 ví dụ: huanluyen8.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 137 mẫu kiểm thử là phân lớp đúng (62,50%). − 63 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 9: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 450 ví dụ: huanluyen9.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 130 mẫu kiểm thử là phân lớp đúng (62,50%). − 70 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 10: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 500 ví dụ: huanluyen10.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 132 mẫu kiểm thử là phân lớp đúng (62,50%). − 68 mẫu kiểm thử là phân lớp sai(37,50%). Trương hợp 11: Dữ liệu đầu vào: − Dữ liệu huấn luyện là 568 ví dụ: huanluyen11.txt . − Dữ liệu kiểm thử là 200 ví dụ: kiemthu.txt . Kết quả: − 133 mẫu kiểm thử là phân lớp đúng (62,50%). − 67 mẫu kiểm thử là phân lớp sai(37,50%). Ta có bảng tổng kết sau:( số mẫu kiểm thử là 200). Số mẫu đúng Số mẫu sai %Đúng 50 mẫu HL 114 86 57,00 100 mẫu HL 133 67 66,50 150 mẫu HL 134 66 67,00 200 mẫu HL 142 58 71,00 250 mẫu HL 124 76 62,00 300 mẫu HL 137 63 68,50 350 mẫu HL 132 68 66,00 400 mẫu HL 137 63 68,50 450 mẫu HL 130 70 65,00 500 mẫu HL 132 68 66,00 568 mẫu HL 133 67 66,50 Bảng 16. Kết quả thử nghiêm chương trình. 3.4 . Nhận xét đánh giá kết quả thực nghiệm Qua kết quả thực nghiệm của chương trình trong bảng 16 chúng tôi nhận thấy rằng thuật toán đã phần nào phân lớp được các đối tượng bị bệnh và không bị bệnh. Tỉ lệ số đối tượng được phân lớp đúng khoảng 65% đến 70%. Qua đó khẳng định thuật toán trình bày trong Chương 2 phần 2.2.2.4. là có khả năng phân lớp được dữ liệu dựa trên một cách chọn siêu phẳng khá đơn giản. Để nâng cao được kết quả thực nghiệm chúng ta cần có một phương pháp chọn siêu phẳng tổng quát hơn, hiệu quả hơn. Cách chọn siêu phẳng được trình bày trong Chương 2 phần 2.2.2.4. của khoá luận tốt nghiệp là khá đơn giản để lập trình, tuy nhiên chưa thực sự hiệu quả cho việc phân lớp. Nhất là với dữ liệu kiểu thực thì việc lựa chọn siêu phẳng dựa trên cách chọn thuộc tính tốt nhất dùng hàm độ đo thông tin Infomation Gain là không hiệu quả khi tập giá trị của thuộc tính đó của các đối tượng khác nhau là rất lớn, gần như bằng chính số đối tượng. Chương trình của chúng tôi đã thành công trong việc mô phỏng thuật toán của tác giả [1] với một cách chọn siêu phẳng khá đơn giản. Tuy nhiên, chương trinh còn có một số hạn chế như: − Chỉ làm việc được với một loại cấu trúc dữ liệu đầu vào. − Chưa đưa ra được một cách chọn siêu phẳng đủ mạnh để phân lớp dữ liệu theo thuật toán trình bày trong Chương 2 phần 2.2.2.4 − Thuộc tính quyết định chỉ được phép nhận 2 giá trị. − Tâp thuộc tính quyết định chỉ là một thuộc tính quyết định. KẾT LUẬN Sau một thời gian nguyên cứu và tìm hiểu trong quá trình làm luận văn Tài liêu tham khảo: [1]. Aleksander. Discernibility and Rough Sets in Medicine: Tools and Applications Knowledge Systems Group, Dept. of Computer and Information Science, Norwegian University of Science and Technology, Trondheim, Norway. [2]. Andrzej Skowron, Ning Zong (2000). Rough Sets in KDD. Tutorial Notes. [3]. Ho Tu Bao (1996). Introduction to Knowledge Discovery and Data mining. Institute of Information Technology National Center for Natural Science and Technology. [4]. Fayyad, Piatetsky-Shapiro, Smyth, “From Data Mining to Knowledge Discovery: An Overiew”, in Fayyad, Piatetsky-Shapiro, Smyth, Uthurusamy, Advances in Knowl\ledge Discovery and Data Mining, AAAI Press/ The MIT Press, Menlo Park, CA, 1996, pp,1-34 [5]. Sinh Nguyen Hoa, Andrzej Skowron, Piotr Synak (1998). Discovery of Data Patterns with Application to Decomposition and Classification Problems. [6]. Jan Komorowski, Zdzislaw Pawlak, Lech Polkowski, Andrzej Skowron (2000). Rough sets: A tutorial [7]. Rakesh Agrawal, Tomasz Imielinski, Arun Swami (1993). Mining Assosication Rules between Sets of item in Large Databases. Proceedings of the 1993 ACM SIGMOD conference Washington DC, USa, May 1993 [8] Ronald J.Branchman and Tej Anand. The Process of Knowledge Discoery inDatabases, 1996 [9] Nguyen Hung Son, Nguyen Sinh Hoa. From Optimal Hyperplanes to Optimal Decision Trees: Rough Set and Boolean Reasoning Approaches, Institute of Computer Sciences Warsaw University 02-097, Banacha 2, Warsaw, Poland [10] Hà Quang Thuỵ (1996). Một số vấn đề về không gian xấp xỉ, tập thô đối với hệ thông tin. Luận án Phó tiến sĩ Khoa học Toán Lý. ĐHKHTN, 1996 [11] Tom M. Mitchen. Machine Learning. Mc Graw Hill, pp52-76 [12]. Wojciech P. Ziarko (Ed., 1994). Rough Sets, Fuzzy Sets and Knowledge Discovery. Proceedings of the International Workshop on Rough Sets and Knowledge Discovery (RSKD'93), Banff, Alberta, Canada, 12-15 October 1993. Springer-Verlag.

Các file đính kèm theo tài liệu này:

  • pdfK44_Nguyen_Danh_Hoan_Thesis.pdf
Tài liệu liên quan