MỘT SỐ PHƯƠNG PHÁP PHÂN LỚP DỮ LIỆU VÀ ỨNG DỤNG PHÂN LỚP DỊCH VỤ WEB Tìm hiểu các thuật toán về phân lớp dữ liệu trong khai phá dữ liệu. Nghiên cứu, xây dựng tập dữ liệu mẫu về các dịch vụ web để thử nghiệm các thuật toán phân lớp. Thử nghiệm các thuật toán phân lớp trên phần mềm khai phá dữ liệu để từ đó đánh giá, so sánh các kết quả của các thuật toán phân lớp cho các dịch vụ web.
HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Phùng Thị Anh MỘT SỐ PHƢƠNG PHÁP PHÂN LỚP DỮ LIỆU VÀ ỨNG DỤNG PHÂN LỚP DỊCH VỤ WEB Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 TÓM TẮT LUẬN VĂN THẠC SĨ Hà Nội, Năm 2014 Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG Ngƣời hƣớng dẫn khoa học: PGS.TS TRẦN ĐÌNH QUẾ Phản biện 1: ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Phản biện 2: ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: giờ ngày tháng năm Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông 1 MỞ ĐẦU Dịch vụ Web là sự đột phá quan trọng trong sự phát triển mạnh mẽ của ngành công nghiệp Công nghệ thông tin, dịch vụ Web cho phép tương tác tốt như Web nhưng lại không phụ thuộc vào nền tảng và ngôn ngữ tự nhiên, phù hợp cho việc truy cập từ môi trường không đồng nhất. Với sự tăng trưởng mạnh mẽ về số lượng của các dịch vụ web trên mạng, việc tìm kiếm trên khối lượng dữ liệu khổng lồ này ngày càng trở nên phức tạp. Trước đây, việc phân loại thường được thực hiện thủ công theo cách chỉ định cho một dịch vụ vào một thể loại nào đó đã được phân loại (hay còn gọi là được gán nhãn) theo các quy tắc đã được đặt ra. Tuy nhiên, cách này có nhiều bất cập khi khối lượng dịch vụ trở nên khổng lồ, kéo theo các quy tắc phân loại cũng gia tăng, có nhiều người tham gia duy trì hoặc chia sẻ dịch vụ trong một kho dữ liệu chung. Vì vậy, việc cần thiết có một cơ chế tự động phân loại các dịch vụ web trở nên quan trọng. Cơ chế tự động này có thể hỗ trợ các nhà xuất bản dịch vụ web (web services publisher) trong phân loại các dịch vụ mà mình cung cấp còn người dùng chỉ cần đặt một truy vấn, trình phân loại tự động sẽ xác định các loại phù hợp nhất. Kết quả là cả nhà cung cấp dịch vụ và người người tiêu dùng có thể khai thác các dịch vụ web tốt hơn. Nội dung tập trung vào các vấn đề như sau: Tìm hiểu các thuật toán về phân lớp dữ liệu trong khai phá dữ liệu. Nghiên cứu, xây dựng tập dữ liệu mẫu về các dịch vụ web để thử nghiệm các thuật toán phân lớp. Thử nghiệm các thuật toán phân lớp trên phần mềm khai phá dữ liệu để từ đó đánh giá, so sánh các kết quả của các thuật toán phân lớp cho các dịch vụ web. 2 CHƢƠNG 1: CỞ SỞ LÝ THUYẾT VỀ PHÂN LỚP DỮ LIỆU VÀ BÀI TOÁN PHÂN LỚP DỊCH VỤ WEB Chương này trình bày cơ sở lý thuyết của đề tài bao gồm lý thuyết về khai phá dữ liệu, phân lớp dữ liệu, các thuật toán phân lớp dữ liệu; lý thuyết về khai phá dữ liệu web nói chung và các khái niệm, đặc điểm, cấu trúc của dịch vụ Web. 1.1 Giới thiệu về Khai phá dữ liệu 1.1.1 Tại sao lại cần khai phá dữ liệu Với sự bùng nổ thông tin trong những thập kỷ gần đây thì lượng thông tin ngày càng trở nên khổng lồ. Làm thế nào để khai thác được “kho” thông tin đó đang là một câu hỏi cần thiết được đặt ra. Khai phá dữ liệu (Data Mining) ra đời như là một hướng giải quyết hữu hiệu câu hỏi trên. Có khá nhiều định nghĩa về Data Mining như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những khó dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó. 1.2 Khái niệm Khai phá dữ liệu (Data Mining) là một quá trình chắt lọc hay khai phá tri thức từ một lượng dữ liệu lớn. Theo Frawley, Piatetski-Shapiro và Matheus [7] Khai phá là một bước trong quá trình phát triển tri thức trong cơ sở dữ liệu. thi hành một thuật toán khai phá dữ liệu để tìm ra các mẫu từ dữ liệu. 3 Hình 1.1 Các bƣớc của quá trình phát triển tri thức trong cơ cở dữ liệu Khai phá dữ liệu là bước thứ 5 trong 7 bước của quá trình phát triển tri thức trong cơ cở dữ liệu 1.1.3 Một số kỹ thuật khai phá dữ liệu Các kỹ thuật khai phá dữ liệu bao gồm: Phân lớp (phân loại) dữ liệu (Classification) Phân nhóm/ phân cụm dữ liệu (Clustering) Phân tích luật kết hợp (Asociation Rules) Hồi quy (Regression) Tổng hợp hóa (Summarization). 1.2. Các thuật toán phân lớp điển hình 1.2.1 Support Vector Machine (SVM) Support Vector Machine (SVM) lần đầu tiên được đề xuất bởi Vapnik trong những năm 1960 để phân loại dữ liệu và từ đó đã thu hút được sự quan tâm cao trong cộng đồng nghiên cứu máy học. 4 SVM là một phương pháp có tính tổng quát cao nên có thể được áp dụng cho nhiều loại bài toán nhận dạng và phân loại Ý tưởng chính của SVM: Là chuyển tập mẫu từ không gian biểu diễn Rn của chúng sang một không gian Rd có số chiều lớn hơn. Trong không gian Rd, tìm một siêu phẳng tối ưu để phân hoạch tập mẫu này dựa trên phân lớp của chúng, cũng có nghĩa là tìm ra miền phân bố của từng lớp trong không gian Rn để từ đó xác định được phân lớp của 1 mẫu cần nhận dạng. Ta có thể hiểu, siêu phẳng là một mặt hình học f(x) trong không gian N chiều, với x RN Các ƣu điểm chính của SVM – SVM rất hiệu quả để giải quyết bài toán dữ liệu có số chiều lớn (ảnh của dữ liệu biểu diễn gene,protein, tế bào) – SVM giải quyết vấn đề overfitting rất tốt (dữ liệu có nhiễu và tách dời nhóm hoặc dữ liệu huấn luyện quá ít) – Là phương pháp phân lớp nhanh – Có hiệu suất tổng hợp tốt và hiệu suất tính toán cao Các ứng dụng của SVM: – Nhận dạng: tiếng nói, ảnh, chữ viết tay (hơn mạng nơron) – Phân loại văn bản, khai mỏ dữ liệu văn bản – Phân tích dữ liệu theo thời gian – Phân tích dữ liệu gien, nhận dạng bệnh, công nghệ bào chế thuốc – Phân tích dữ liệu marketing – V v 1.2.2 Thuật toán Bayes Thuật toán Bayes là một trong những thuật toán phân lớp điển hình trong học máy và khai phá dữ liệu. Đây cũng là một trong những thuật toán được sử dụng rộng rãi nhất trong phân lớp văn bản. Trong học máy, Bayes được coi như là thuật toán học máy chuẩn (base line) để so sách với các thuật toán khác Ý tưởng chính của thuật toán là tính xác suất hậu nghiệm của sự kiện c xuất hiện sau khi sự kiện x đã có trogn không gian ngữ cảnh t thông qua tổng hợp các xác suất tiên nghiệm của sự kiện c xuất hiện khi sự kiện x đã có trong tất cả các điều kiện T thuộc không gian t: p(c|x,t) = p(c|x,T)p(T|x) (với T in t) 5 Định lý Bayes Gọi X = là một mẫu, các thành phần của nó biểu diễn các giá trị được tạo ra trên một tập n thuộc tính. Theo phương pháp Bayesian, X được xem là “bằng chứng” hay “dấu hiệu” (“evidence”). H là một giả thuyết nào đó, chẳng hạn như dữ liệu X thuộc một lớp cụ thể C. Với các bài toán phân lớp, mục tiêu của chúng ta là xác định P(H|X), xác suất mà giả định H xảy ra với các dấu hiệu cho trước. Nói một cách khác, chúng ta đang đi tìm xác suất để mẫu X thuộc về lớp C khi đã biết được các thuộc tính mô tả mẫu X. Theo định lý Bayes, xác suất mà chúng ta muốn tính P(H|X) có thể được biểu diễn qua các xác suất P(H), P(X|H) và P(X) như sau: Và các xác suất này có thể được thiết lập từ tập dữ liệu cho trước. 1.2.3 Luật kết hợp Luật Kết hợp là tìm các mẫu phổ biến, sự kết hợp, sự tương quan hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ và những kho thông tin khác để đưa ra các mỗi liên kết giữa các phần tử dữ liệu. Định nghĩa Luật kết hợp Cho một tập I = {I1, I2, , Im} là tập các thuộc tính riêng biệt, mỗi thuộc tính gọi là một mục. Gọi D là một Cơ sở dữ liệu chứa n giao dịch, trong đó mỗi bản ghi T là một giao dịch và chứa các tập mục, X I. T được gán nhãn với một định danh duy nhất. Ta nói rằng, một giao dịch T D hỗ trợ một tập X I nếu nó chứa tất cả các mục của X. Một tập X được gọi là tập mục k phần tử (k-itemset) nếu lực lược của X bằng k (tức là |X|=k) Định nghĩa 1: Độ hỗ trợ của X, ký hiệu là support(X), là tỉ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch D, nghĩa là: Định nghĩa 2: Một luật kết hợp có dạng R:X=>Y, trong đó X,Y là tập các mục, X,Y I và X Y = 6 – X được gọi là tiên đề – Y được gọi là hệ quả của luật Hai thông số quan trọng của luật kết hợp là độ hỗ trợ (support) và độ tin cậy (confidence). Định nghĩa 3: Độ hỗ trợ (support) của luật kết hợp X=>Y là tỉ lệ phần trăm giữa số lượng các giao dịch chứa cả X và Y (X Y) với tổng số các giao dịch có trong cơ sở dữ liệu. Đơn vị tính %. Support = Tổng số lượng giao dịch hỗ trợ X Y/Tổng số giao dịch Định nghĩa 4: Độ tin cậy (confidence) là tỉ lệ phần trăm giữa số lượng các giao dịch chứa cả X và Y (X Y) với số giao dịch có chứa X. Đơn vị tính %. Confidence = Tổng số lượng giao dịch hỗ trợ X Y / Tổng số giao dịch hỗ trợ X. Một số thuật toán khai phá luật kết hợp – Thuật toán Apriori – Thuật toán Apriori-TID – Thuật toán Apriori-Hybrid – Thuật toán Count Distribution (CD) – Thuật toán Data Distribution (DD) – Thuật toán Candidate Distribution – Thuật toán khai phá luật kết hợp phân tán nhanh(FDM) – Thuật toán khai phá phân tán luật kết hợp(DMAR) – Thuật toán lai tạp Apriori - Decision Tabble (Decision Tabble) 1.3 Dịch vụ Web 1.3.1 Khái niệm Dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet. 7 1.3.2 Các đặc điểm của Dịch vụ Web – Cho phép các ứng dụng trên máy chủ và máy khách có thể tương tác được với nhau thông qua môi trường mạng Internet mà không yêu cầu chúng phải chạy cùng một hệ điều hành, cũng như không cần bất cứ yêu cầu nào về sự tương thích giữa hai hệ điều hành. – Công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới mà nó có thể kết hợp dựa trên các mã nguồn mở và những công nghệ tiêu chuẩn sẵn có như XML, SOAP, WSDL, UDDI… – Dịch vụ Web có thể gồm nhiều mô đun độc lập, mỗi mô đun sẽ thực hiện một c hức năng ứng dụng, số lượng mô đun tùy thuộc vào các hoạt động của khách hàng và chủ thể, các mô đun này được công khai trên mạng internet và được thực thi trên máy chủ. – dịch vụ Web ở tất cả lĩnh vực trong cuộc sống như: các hệ thống tìm kiếm thông tin thư viện; hệ thống bán hàng qua mạng; đặt mua vé tàu xe; cập nhật các thông tin về thị trường, tiền tệ… 1.3.3 Kiến trúc của dịch vụ Web Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration). Hình 1 mô tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL. Hình 1.4:Chồng giao thức của dịch vụ Web WEBSERVICES UDDI (Discovery) WSDL (Description) SOAP (Remote sevice call) HTTP (Transport application protocol) TCP/IP (Transport protocol) 8 1.3.4 Các thành phần của Dịch vụ Web XML – eXtensible Markup Language WSDL – Web Service Description Language Universal Description, Discovery, and Integration (UDDI) SOAP – Simple Object Access Protocol 1.4 Kết luận Chương này đã khái quát được các lý thuyết liên quan đến việc thực hiện đề tài bao gồm các khái niệm, kỹ thuật về khai phá dữ liệu; Lý thuyết về các thuật toán phân lớp điển hình được lựa chọn để thực hiện luận văn. Nội dung của chương nhằm mục đích cung cấp một cái nhìn tổng quan và cơ sở để thực hiện việc giải quyết bài toán áp dụng các thuật toán phân lớp để phân lớp các dịch vụ Web ở Chương 2 và Chương 3. [...]... file WebServices.arff 3.4.1 Phân lớp các dịch vụ web áp dụng SVM Phần này sử dụng Weka để phân lớp các dịch vụ web bằng thuật toán SMO – một thuật toán của SVM 3.3 Phân lớp các dịch vụ web áp dụng Bayes Phần này sử dụng Weka để phân lớp các dịch vụ web bằng hai thuật toán BayesNet và Navie Bayes 3.4.3 Phân lớp các dịch vụ web áp dụng Luật kết hợp Phần này sử dụng Weka để phân lớp các dịch vụ web bằng... WSDL và thực hiện việc thử nghiệm phân lớp các dịch vụ Web theo 3 phương pháp đã được phân tích tại Chương 2 trên phần mềm Weka 3.1 Phát biểu bài toán Bài toán phân lớp dịch vụ web là bài toán xây dựng một tập dữ liệu huấn luyện của các dịch vụ web, từ đó áp dụng một trong các thuật toán phân lớp dữ liệu, phân lớp cho các dịch vụ web mới được đưa vào Để thực hiện thử nghiệm và đánh giá các thuật toán phân. .. Định nghĩa Lớp A Trình phân lớp Lớp N Hoạt động Hình 2.1: Kiến trúc hệ thống phân lớp dịch vụ Web 2.2 Áp dụng các thuật toán phân lớp cho bài toán phân lớp dịch vụ Web 2.2.1 Phân lớp dịch vụ Web dựa trên SVM Quá trình phân lớp các dịch vụ Web bằng SVM dựa vào cấu trúc WSDL của các trang Web bằng việc biểu diễn dưới dạng văn bản sử dụng mô hình không gian vector SVM xem mỗi dịch vụ Web là một vector... cầu mới Phân loại, sắp xếp dịch vụ web là hướng nghiên cứu khác của dịch vụ web Mỗi dịch vụ web có một file WSDL – ngôn ngữ định miêu tả dịch vụ web – định nghĩa và miêu tả thông tin của dịch vụ web như tên dịch vụ web, hoạt động và đầu vào/đầu ra Bài toán phân loại dịch vụ web thực chất là bài toán phân tích khai phá văn bản để phân loại các tài liệu WSDL (Web Service Description Language Từ đó phân. .. các loại dịch vụ Web và giao diện của nó được mô tả bởi WSDL [11a] cho việc phân lớp dịch vụ web Luật kết hợp được sử dụng để xây dựng bộ phân lớp dịch vụ web để tự động phân lớp dịch vụ web Đây là xác định các mục của dịch vụ web, cho một tập hợp các loại được xác định trước Mục tiêu của nghiên cứu này là: – Xây dựng một hệ thống phân lớp sử dụng luật kết hợp áp dụng trên các mục của dịch vụ web, nó... trọng số biểu diễn dịch vụ Web đó vào phương trình siêu phẳng của SVM, từ đó tì ra được nhãn lớp của các dịch vụ Web chưa gán nhãn Như vậy, thực chất của quá trình phân lớp các dịch vụ Web bằng SVM áp dụng với dữ liệu huấn luyện là các dịch vụ Web còn tập working set hay còn gọi là dữ liệu chưa gán nhãn là những dịch vụ Web được các dịch vụ Web đã có nhãn trong tập huấn luyện trỏ tới Tập dữ liệu huấn... toán phân lớp cho bài toán cụ thể là phân lớp các dịch vụ Web 2.1 Bài toán phân lớp dịch vụ Web 2.1.1 Đặt vấn đề Ngày nay, ứng dụng dựa trên dịch vụ web như lập trình giao diện /ứng dụng ngày càng phổ biến Các ứng dụng này phải có tính năng: không phụ thuộc vào môi trường và không phụ thuộc vào việc thực thi Điều này tạo nên khả năng xây dựng một dịch vụ web mới tự động kết hợp những thứ đã có và những... toán phân lớp dịch vụ Web, áp dụng 3 thuật toán phân lớp điển hình là SVM, Bayes, Luật kết hợp cho bài toán phân lớp dịch vụ Web Nội dung của chương tập trung vào phân tích cơ chế và hoạt động phân lớp của các thuật toán phân lớp đó cho các dịch vụ Web 15 CHƢƠNG 3: THỬ NGHIỆM, ĐÁNH GIÁ Chương này của luận văn sẽ mô tả quá trình thiết kế, xây dựng tập dữ liệu mẫu là các dịch vụ Web với các tham số độc... tả hoạt động /dịch vụ web, tên của hoạt động và danh sách tham số chứa trong cả tên biến đầu vào và đầu ra Sau đó, ánh xạ tất cả chúng thành vector, chỉ phụ thuộc vào thuật toán khác nhau và sử dụng bộ phân lớp để miêu tả nhóm có thể và lưu trữ kết quả cho việc sử dụng về sau TRÌNH PHÂN LỚP DỊCH VỤ WEB Trình quản lý phân lớp dịch vụ web Phân tích cú pháp WSD L WSDL Sinh các luật phân lớp Lớp B Kho chứa... tiếp cận khác cho bài toán phân lớp dịch vụ web là khai phá dữ liệu và phân lớp tài liệu WSDL (webservice description language) dựa trên thuật toán luật kết hợp Ứng dụng để phân tích mức độ độc lập giữa nội dung WSDL và các mục của dịch vụ web Một bộ phân loại học máy được sử dụng để suy diễn một dãy các lớp được lựa chọn thành một bộ tiền xử lý mô tả dịch vụ web (preprocessed web service description) . giới thi u ở các phần trước của luận văn, công cụ được lựa chọn để thử nghiệm đánh giá ở đây là phần mềm khai phá dữ liệu Weka. Chi tiết về phần mềm sẽ được giới thi u ở mục sau. 3.2 Thi t. được phát hành. Hầu hết các dịch vụ web tìm thấy thông qua website: http://www.xmethods.net và được trích xuất thông tin để thi t kế thành file dữ liệu phù hợp với định dạng của phần mềm thử. nghiệm có thể được thi t lập bởi: Với các tập dữ liệu cho trước có nhiều thuộc tính, nó sẽ tốn chi phí để tính P(X| ). Để giảm bớt chi phí tính toán lượng giá P(X| ) P( ), giả thi t về sự độc