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.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Trang 2Luậ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:
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
Trang 3MỞ ĐẦ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
Trang 4CHƯƠ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 đó
Trang 5Hì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
Trang 6SVM 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)
Trang 7Theo đị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 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 =
Trang 8– 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
Trang 91.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)
Trang 101.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
Trang 11CHƯƠNG 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
Như đã trình bày trong phần mở đầu, mục đích của luận văn là tìm hiểu, nghiên cứu các thuật toán phân lớp, từ đó á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
Ở Chương 1 đã mô tả các phương pháp khai phá dữ liệu nói chung và các thuật toán phân lớp đặc trưng (cụ thể ở đây là 3 thuật toán: SVM, Bayes và Luật hết hợp) Chương 2 này sẽ mô tả chi tiết cơ chế thực hiện của các thuật 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 yêu 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 tích mức độ phụ thuộc giữa các nội dung của WSDL và các thể loại của dịch vụ Web
2.1.2 Framework khai phá WSDL
Đầu tiên, chúng ta có một cái nhìn tổng quát trong khai phá dữ liệu truyền thống: khai phá text và khai phá web So sánh khai phá dữ liệu, khai phá text tập trung vào trích xuất thông tin mà sử dụng mục đích cụ thể, không thể hiện rõ nội dung Khai phá web tập trung vào phân tích thuộc tính của cấu trúc web ví dụ như nội dung của những page khác link tới trang hiện tại Hiện nay, file tự miêu tả XML, ngôn ngữ đánh dấu mở rộng hỗ trợ rất nhiều trong việc truyền tải thông tin WSDL dựa trên cấu trúc XML và chuẩn W3C nghĩa là nó phải chứa cấu trúc 3 lớp của dịch vụ web, hoạt động, danh sách đầu vào đầu ra, cho phép dễ dàng phân tích Thực
tế, ý tưởng cơ bản của chúng tôi là dựa trên phần tử chứa trong kiến trúc 3 lớp
Trang 122.1.3 Kiến trúc hệ thống phân lớp dịch vụ Web
Chúng ta cần xây dựng một hệ thống phân lớp dịch vụ web Mỗi khi một dịch vụ web mới đưa vào, ta sẽ trích xuất tương ứng với file và tách chúng thành các token, bộ từ khóa token trong môt 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
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 f(d1, d2, d3…,dn) được biểu diễn như văn bản Áp dụng công thức trong phương trình của siêu phẳng là:
F(x1, x2, …,xn) = C + wixi
WSDL
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
Sinh các luật phân lớp
Kho chứa các mục của WSDL Định nghĩa
Hoạt động
Trình phân lớp
Lớp N Lớp B Lớp A
Trang 13Thay thế mỗi văn bản tương ứng với mỗi dịch vụ Web vào phương trình siêu phẳng này: F(d1, d2, …,dn) = C + wixi
Với I = 1,…,n
Nếu f(d) >=0 thì dịch vụ Web thuộc lớp +1
Nếu f(d) <0 thì dịch vụ Web thuộc lớp -1
Cĩ thể thấy rằng quá trình áp dụng thuật tốn SVM vào bài tốn phân lớp các dịch vụ Web là việc thay thế vector 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 luyện được thu thập từ Internet, chúng đều là các ứng dụng dịch vụ web online được phát hành Hầu hết các dịch vụ web tìm thấy thơng qua website:
định dạng của phần mềm thử nghiệm là Weka
2.2.2 Phân lớp dịch vụ Web dựa trên Bayes
Bayes là phương pháp được sử dụng rộng rãi để phân loại và phân cụm [3][7] Phương pháp Bayes là một kỹ thuật xác suất đơn giản Naive Bayes được đánh giá tốt và hiệu quả Kết quả phân loại đạt trung bình 80% độ chính xác tùy theo thuật tốn
Trong một nghiên cứu của một nhĩm tác giả tại Viện cơng nghệ MLR Ấn độ và Đại học Berhampur Ấn độ đã nghiên cứu phân lớp các dịch vụ Web bằng Naive Bayes, mơ hình
Markov và Tìm kiếm Tabu Trong nghiên cứu đĩ, các tác giả đã thực hiện phân lớp tập dữ liệu
mẫu gồm các dịch vụ Web được tập hợp từ Internet dựa vào các tài liệu mơ tả về chúng như UDDI, WSDL bằng cách sử dụng phương pháp phân lớp Nạve Bayes, so sánh với mơ hình Markow và mạng tìm kiếm Tabu Kết quả nghiên cứu Nạve Bays cĩ khả năng phân lớp chính xác cao hơn Độ chính xác trung bình của phân loại bằng Naive Bayes là 85,62%, tiếp theo là tìm kiếm Tabu 82 45% và mơ hình Markov là 81,36%
Phương pháp phân lớp Bayes hoạt động như sau:
Trang 14Cho T là một tập đào tạo của các mẫu, mỗi mẫu có các nhãn lớp của chúng Có tất cả k lớp, Mỗi mâu được biểu diễn bởi một vector n chiều, , vector này chứa giá trị của n thuộc tính tương ứng
Cho một mẫu X, phương pháp phân lớp sẽ dự đoán X thuộc lớp có xác suất hậu nghiệm cao nhất với các điều kiện của X Khi đó X được dự đoán là thuộc lớp nếu và chỉ nếu:
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 lập của lớp điều kiện được tạo ra Nó giả định rằng giá trị của các thuộc tính điều kiện là độc lập với nhau Xét về mặt toán học, điều này có nghĩa là:
Các xác suất ) có thể được dễ dàng thiết lập từ tập huấn luyện Nhớ lại rằng, ở đây tham chiếu đến giá trị thuộc tính cho mẫu X
Nếu là thuộc tính rời rạc, thì P( |C) được ước lượng bởi tần số liên quan của các mẫu có giá trị cho thuộc tính thứ k trong lớp C
Nếu là thuộc tính liên tục, thì P( |C) được ước lượng thông qua một hàm mật độ Gaussian