ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ --- LƯỜNG HỒNG GIANG ỨNG DỤNG MỘT SỐ KỸ THUẬT KHAI PHÁ DỮ LIỆU ĐỂ PHÂN TÍCH DỮ LIỆU VIỄN THÔNG NHẰM TĂNG CƯỜNG CHẤT LƯỢNG DỊCH VỤ KHÁ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
-
LƯỜNG HỒNG GIANG
ỨNG DỤNG MỘT SỐ KỸ THUẬT KHAI PHÁ DỮ LIỆU
ĐỂ PHÂN TÍCH DỮ LIỆU VIỄN THÔNG NHẰM TĂNG CƯỜNG CHẤT LƯỢNG DỊCH VỤ KHÁCH HÀNG
LUẬN VĂN THẠC SĨ
Hà Nội - 2012
Trang 22
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân tôi, không sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều đã trình bày là của cá nhân tôi hoặc là được tôi tổng hợp từ nhiều nguồn tài liệu Tất cả các nguồn tài liệu tham khảo có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin chịu toàn bộ trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của tôi
Hà Nội, tháng 10 năm 2012
Lường Hồng Giang
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Chuyên ngành : Hệ thống thông tin
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS NGUYỄN HÀ NAM
Hà Nội - 2012
Trang 34
MỤC LỤC
Chương 1 Mở đầu 12
1.1 Khai phá dữ liệu 12
1.2 Quá trình khai phá tri thức trong cơ sở dữ liệu 12
1.3 Các kỹ thuật tiếp cận trong khai phá dữ liệu 14
1.4 Kiến trúc của hệ thống khai phá dữ liệu 15
1.5 Ứng dụng của khai phá dữ liệu 17
1.6 Hướng tiếp cận của luận văn 17
1.6.1 Ứng dụng quản lý và chăm sóc khách hàng 18
1.6.2 Hướng nghiên cứu của đề tài 19
Chương 2 Giới thiệu khai phá mẫu phổ biến, luật kết hợp 21
2.1 Khái niệm về khai phá mẫu phổ biến 21
2.1.1 Mẫu phổ biến 21
2.1.2 Ý nghĩa của khai phá mẫu phổ biến 21
2.1.3 Bài toán thực tế 22
2.2 Tổng quan về luật kết hợp 24
2.2.1 Khái niệm luật kết hợp 24
2.2.2 Giải thuật Apriori để sinh các luật kết hợp 27
2.2.3 Mô tả thuật toán Apriori dưới dạng giả mã 28
2.2.4 Ví dụ minh họa thuật toán Apriori 30
2.2.5 Một số kỹ thuật cải tiến thuật toán Apriori 34
Chương 3 Lưu trữ dữ liệu lớn dựa trên Oracle DBMS 38
3.1 Giới thiệu hệ quản trị CSDL Oracle 38
3.2 Phương pháp tiếp cận và kiến trúc 41
3.3 Giới hạn trong CSDL Oracle 44
Trang 45
Chương 4 Phân tích Luật kết hợp dựa trên Cơ Sở Dữ Liệu Oracle 45
4.1 Đặc tả bài toán 45
4.2 Sinh tập các ứng viên 46
4.2.1 Thực hiện phép nối giữa tập mục phổ biển Fk 46
4.2.2 Thực hiện bước tỉa loại bỏ ứng viên không có lợi 47
4.3 Tính độ hỗ trợ 49
4.4 Sinh các luật kết hợp từ các tập mục phổ biến 50
4.4.1 Kết hợp các tập mục phổ biến có độ dài từ 1 đến k 50
4.4.2 Sinh các tập con bảng tập mục phổ biến FISETS 51
4.4.3 Sinh các luật kết hợp 52
4.5 Ví dụ minh họa 53
Chương 5 Ứng dụng vào phân tích dữ liệu viễn thông tại Beeline 56
5.1 Mô tả và chuyển đổi dữ liệu 56
5.1.1 Mô tả các bảng dữ liệu 56
5.1.2 Các bước chuyển đổi dữ liệu 56
5.2 Xây dựng hệ thống thực nghiệm 58
5.2.1 Sinh tập các ứng viên và tính độ hỗ trợ 59
5.2.2 Sinh các luật kết hợp từ các tập mục phổ biến 60
5.3 Phân tích dữ liệu kết quả thực nghiệm 61
5.3.1 Mật độ phân bố luật kết hợp trên độ hỗ trợ và độ tin cậy 61
5.3.2 Xác định mối quan hệ giữa các dịch vụ gia tăng 62
Kết luận 64
Tài liệu tham khảo 65
Trang 52
TÓM TẮT LUẬN VĂN
Ngành công nghiệp viễn thông lưu trữ một khối lượng dữ liệu khổng lồ, bao gồm chi tiết cuộc gọi, thông tin cảnh báo trình trạng của hệ thống mạng viễn thông và thông tin dữ liệu về khách hàng Ứng dụng kỹ thuật khai phá dữ liệu (data mining) để phát hiện các quy luật ẩn chứa trong khối dữ liệu khổng lồ đó sẽ mang lại cho các doanh nghiệp viễn thông nhiều cơ hội để phát triển các ứng dụng mang tính thực tiễn cao Đây là một hướng đi phù hợp và đã sớm được áp dụng phổ biến ở nhiều công ty viễn thông lớn trên thế giới
Với sự phát triển mạnh mẽ của khoa học công nghệ cùng với sự lớn mạnh của thị trường viễn thông tại Việt Nam, đến nay có 08 doanh nghiệp được cấp phép hoạt động dịch vụ điện thoại di động Tính đến hết tháng 8/2012, tổng số thuê bao điện thoại di động của Việt Nam đã lên đến 140 triệu thuê bao, đạt mật độ 160 máy/100 dân Với tỷ
lệ điện thoại cao gấp 1,6 lần dân số, thị trường viễn thông di động Việt Nam xem như
đã bước vào giai đoạn bão hoà Tốc độ tăng trưởng thuê bao dự báo sẽ rơi từ mức 50%/năm hiện nay xuống chỉ còn 5-15%/năm trong 4-5 năm tới
40-Ở Việt Nam, nhu cầu dịch vụ viễn thông ngày càng gia tăng và mở rộng với nhiều dịch vụ tiện ích, bao gồm cả internet và băng rộng, có thể trở thành truy cập phổ cập, thay thế nhu cầu viễn thông cố định Chính vì vậy, một nhu cầu đặt ra cho các nhà cung cấp các dịch vụ viễn thông là đối mặt được với áp lực cạnh tranh khốc liệt từ các nhà cung cấp dịch vụ trong nước đến các tập đoàn viễn thông đa quốc gia
Đối với ngành viễn thông, thị phần và khách hàng là hai yếu tố hết sức quan trọng, quyết định sự thành công của doanh nghiệp Chính vì vậy việc nắm được các nhu cầu sở thích của khách hàng cũng như những xu hướng biến động của thị trường
là một lợi thế to lớn cho các doanh nghiệp cạnh tranh và mở rộng thị trường của mình Ngày nay, các công ty viễn thông không ngừng nâng cao, cải tiến các dịch vụ của mình và tìm kiếm dich vụ mới để đáp ứng nhu cầu ngày càng lớn của khách hàng Đòi hỏi các nhà mạng cần phải có định hướng, chiến lược kinh doanh hợp lý để đứng vững trong môi trường viễn thông hiện nay tại Việt Nam Khai phá dữ liệu chính là một trong những kỹ thuật hữu ích nhất để giải quyết những vấn đề này
Trang 63
Vấn đề đặt ra: Bài toán đặt ra cho các nhà mạng di động là thu thập được các tri
thức từ các kho dữ liệu khách hàng khổng lồ Phân loại dữ liệu cước di động là một phương pháp giúp cho các nhà mạng di động có thể phân loại được các nhóm đối tượng khách hàng khác nhau, từ đó đưa ra các chiến lược kinh doanh phù hợp với từng đối tượng khách hàng
Luận văn “ứng dụng một số kỹ thuật khai phá dữ liệu để phân tích dữ liệu
viễn thông nhằm tăng cường chất lượng dịch vụ khách hàng”
Đề tài được nghiên cứu dựa trên luật kết hợp, một trong những những kỹ thuật rất quan trọng của khai phá dữ liệu Nội dung chính của luận văn được chia thành năm chương như sau:
Chương 1: Mở đầu
Chương 2: Giới thiệu khai phá mẫu phổ biến, luật kết hợp
Chương 3: Lưu trữ dữ liệu lớn dựa trên Oracle DBMS
Chương 4: Áp dụng Luật kết hợp vào Cơ Sở Dữ Liệu Oracle
Chương 5: Ứng dụng vào phân tích dữ liệu viễn thông tại Beeline:
Phân tích một cơ sở dữ liệu, trình bày về cách cài đặt chương trình khai thác luật kết hợp trong việc sử dụng các dịch vụ giá trị gia tăng của khách hàng Dựa vào kết quả này mà người quản lý của các doanh nghiệp viễn thông nắm bắt được những nhóm dịch vụ nào có liên quan tới nhau, phục vụ cho mục đích quản lý và lựa chọn các dịch vụ và thời điểm phát hành các loại dịch vụ cho các nhóm khách hàng khác nhau
Trang 74
Chương 1 Mở đầu
1.1 Khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỷ 80 Nó
bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu
Ở một mức độ trừu tượng nhất định có thể định nghĩa: Khai phá dữ liệu (Data Mining) là một quá trình tìm kiếm, phát hiện các tri thức mới, tiềm ẩn, hữu dụng trong CSDL lớn
Khai phá tri thức (KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái
niệm đó được xem như hai lĩnh vực tương đương nhau Nhưng, nếu phân chia một cách tách bạch thì khai phá dữ liệu là một bước chính trong quá trình KDD
1.2 Quá trình khai phá tri thức trong cơ sở dữ liệu
Khai phá tri thức trong CSDL ( Knowledge Discovery in Databases - KDD) là lĩnh vực liên quan đến các ngành như: thống kê, học máy, CSDL, thuật toán, trực quan hóa dữ liệu, tính toán song song và hiệu năng cao,…
Quá trình KDD có thể phân thành các giai đoạn sau:
Trang 85
Hình 1.1: Khai phá dữ liệu là một bước trong quá trình khai phá tri thức
1.3 Các kỹ thuật tiếp cận trong khai phá dữ liệu
Nếu đứng trên quan điểm của học máy (Machine Learning), thì các kỹ thuật trong Data Mining, bao gồm: Học có giám sát (Supervised learning, Học không có giám sát (Unsupervised learning, Học nửa giám sát (Semi - Supervised learning
Nếu căn cứ vào lớp các bài toán cần giải quyết, thì Data Mining bao gồm các kỹ thuật sau: Phân lớp và dự đoán (Classification & prediction), Luật kết hợp (Association rules), Khai thác mẫu tuần tự (Sequential/temporal patterns), Phân cụm (Clustering/segmentation)
1.4 Kiến trúc của hệ thống khai phá dữ liệu
Như đã trình bày ở trên, khai phá dữ liệu là một giai đoạn trong quá trình phát hiện tri thức từ số lượng lớn dữ liệu lưu trữ trong các cơ sở dữ liệu, kho dữ liệu hoặc các nơi lưu trữ khác
Hình 1.2: Kiến trúc của hệ thống khai phá dữ liệu
1.5 Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu nhờ vào tính ứng dụng thực tiễn của nó Khai phá dữ liệu có nhiều ứng dụng trong thực tế Một trong số ứng dụng điển hình như: phân tích dữ liệu và hỗ trợ ra quyết định, tài
Trang 9 Ứng dụng khai phá dữ liệu dựa trên việc xem xét luật kết hợp giữa các dịch vụ viễn thông khách hàng sử dụng
Một vấn đề khá phổ biến ở các công ty viễn thông hiện là sự thay đổi nhà cung cấp dịch vụ (customer churn) Đây là vấn đề khá nghiêm trọng ảnh hưởng đến tốc độ phát triển thuê bao, cũng như doanh thu của các nhà cung cấp dịch vụ
Cuối cùng, một ứng dụng cũng rất phổ biến đó là phân lớp khách hàng (classifying) Dựa vào dữ liệu khách hàng và chi tiết cuộc gọi có thể tìm ra các luật
để phân loại khách hàng
1.6.2 Hướng nghiên cứu của đề tài
Đề tài phân tích dữ liệu viễn thông nhằm nhận diện được những đặc tính của khách hàng và thông qua đó có thể đưa ra các chính sách chăm sóc khách hàng thích hợp dựa trên dự đoán hoặc có một chiến lược tiếp thị hiệu quả Ứng dụng khai phá dữ liệu dựa trên việc xem xét luật kết hợp giữa các dịch vụ viễn thông khách hàng sử dụng Dựa vào kết quả này mà người quản lý của các doanh nghiệp viễn thông nắm bắt được những nhóm dịch vụ nào có liên quan tới nhau, phục vụ cho mục đích quản lý và lựa chọn các dịch vụ giá trị gia tăng và thời điểm phát hành các loại dịch vụ giá trị gia tăng cho các nhóm khách hàng khác nhau Xây dựng chiến lược phát triển hệ thống và tìm những khách hàng tiềm năng cho các gói sản phẩm khác nhau
Trang 107
Chương 2 Giới thiệu khai phá mẫu phổ biến, luật kết hợp
2.1 Khái niệm về khai phá mẫu phổ biến
2.1.1 Mẫu phổ biến
Mẫu phổ biến (Frequent pattern): là mẫu (tập mục - itemsets, dãy mục – itemlists,
dãy con – subsequence, hoặc cấu trúc con – substructures…) mà xuất hiện phổ biến trong một tập dữ liệu
Agrawal, Imielinski, Swami – 1993 – trong ngữ cảnh bài toán tập phổ biến và luật kết hợp
2.1.2 Ý nghĩa của khai phá mẫu phổ biến
Tìm kiếm mẫu phổ biến đóng vai trò thiết yếu trong khai phá luật kết hợp, tìm kiếm mối tương quan, và các mối quan hệ trong cơ sở dữ liệu Hơn nữa nó giúp phân lớp, phân cụm dữ liệu, và hỗ trợ các nhiệm vụ khai phá dữ liệu khá tốt Do vậy, khai phá mẫu phổ biến đã trở thành nhiệm vụ quan trọng trong khai phá dữ liệu
2.1.3 Bài toán thực tế
Có thể kết luận rằng, khai phá mẫu phổ biến là quá trình tìm kiếm mối quan hệ
tuần hoàn, lặp đi lặp lại trong một cơ sở dữ liệu
Ví dụ, thông tin khách hàng mua máy giặt thì cũng có xu hướng mua xà phòng giặt máy tại cùng một thời điểm được mô tả trong luật kết hợp dưới đây:
Máy giặt => Xà phòng giặt [độ hỗ trợ = 2%, độ tin cậy = 60%]
2.2 Tổng quan về luật kết hợp
2.2.1 Khái niệm luật kết hợp
Tập toàn bộ các mục I = {i1, i2, …, ik}: “tất cả các mặt hàng” Cho D là một cơ sở dữ liệu giao dịch như là danh sách các mặt hàng (mục: item) trong một phiếu mua hàng của khách hàng Giao dịch T là một tập mục Một giao dịch T là một tập con của I: T
Trang 11 Luật kết hợp XY có độ hỗ trợ (support) s trong CSDL giao dịch D nếu trong
D có s% các giao dịch T chứa XY: chính là xác suất P(XY)
Support (XY) = P(XY) : 1 s (XY) 0 (2)
Luật kết hợp XY có độ tin cậy (confidence) c trong CSDL D nếu như trong
D có c% các giao dịch T chứa X thì cũng chứa Y: chính là xác suất P(X|Y)
Confidence (XY) = P(X|Y) : 1 c (XY) 0 (3)
Luật XY được gọi là đảm bảo độ hỗ trợ s trong D nếu s(XY) s Luật XY được gọi là đảm bảo độ tin cậy c trong D nếu c(XY) c Luật thỏa mãn cả hai ngưỡng hỗ trợ tối thiểu (min_sup) và ngưỡng tin cậy tối thiểu (min_conf) được gọi là luật mạnh Độ hỗ trợ và độ tin cậy nhận giá trị trong khoảng từ 0% đến 100% hoặc từ
0.0 đến 1.0 giá trị min_sup và min_conf được xác định bởi người dung hoặc hệ
chuyên gia
Như vậy, quá trình khai phá luật kết hợp phải được thực hiện thông qua hai bước:
Bước 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu do
người dùng xác định Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục phổ biến
Trang 129
Bước 2: Tạo luật liên kết mạnh từ tập mục phổ biến sinh ra các luật mong muốn Ý
tưởng chung là nếu gọi XYZW và XY là các tập mục phổ biến, thì chúng ta có thể xác định luật nếu XY => ZW giữ lại với tỷ lệ độ tin cậy:
( )
Sup XYZW conf
Sup XY
Nếu conf ≥ min_conf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì XYZW là phổ biến)
2.2.2 Giải thuật Apriori để sinh các luật kết hợp
Để hình dung rõ hơn các giai đoạn trong quá trình phát hiện luật kết hợp, chúng ta sẽ xem xét giải thuật Apriori phát hiện luật kết hợp từ cơ sở dữ liệu tác vụ
Tính chất Apriori: Mọi tập con khác rỗng của tập mục phổ biến cũng phải phổ
biến Ví dụ, nếu {bia, bỉm, hạnh nhân} là phổ biến thì {bia, bỉm} cũng vậy, mọi giao
dịch chứa {bia, bỉm, hạnh nhân} cũng chứa {bia, bỉm}
Giải thuật Apriori:
a Duyệt (Scan) toàn bộ cơ sở dữ liệu giao dịch để có được độ hỗ trợ (support) S của 1-itemset, so sánh S với độ hỗ trợ tối thiểu min_sup, để có được 1-itemset (F1)
b Sử dụng Fk-1 nối (kết nối) Fk-1 để sinh ra candidate k-itemset Loại bỏ các itemsets không phải là tập phổ biến thu được k-itemset ( bước cắt tỉa)
c Tiếp tục duyệt cơ sở dữ liệu giao dịch để có được độ hỗ trợ S của mỗi candidate k-itemset, so sánh S với min_sup để thu được tập phổ biến k –itemset (Fk)
d Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy tập phổ biến)
e Với mỗi tập phổ biến I, sinh tất cả các tập con s không rỗng của I
Trang 13- Cơ sở dữ liệu giao dịch D = {t|t : giao dịch}
- Độ hỗ trợ tối thiểu min_sup > 0
Đầu ra: Tập hợp tất cả các tập phổ biến
Phương pháp:
(0) mincount = min_sup * |D|;
(1) F 1 = {tất cả các tập mục phổ biến có độ dài bằng 1};
(2) For (k=2; F k-1 , k++){
(3) C k = Apriori-gen (F k-1 ); //Sinh mọi ứng viên có độ dài k
(4) For ( mỗi giao dịch t D) { // quét CSDL D để đếm
(5) C t = ( c C k | c t); //tất cả các ứng viên c thuộc C k với c là tập con của giao dịch t (6) For (mỗi ứng viên c C t )
Trang 1411
ứng viên của mỗi giao dịch được tính (bước 6 và 7) Cuối cùng, tất cả các ứng viên đáp ứng độ hỗ trợ tối thiểu (bước 9) cấu thành lên tập mục phổ biến kF
k (bước 11) Thủ tục được gọi sau đó để sinh luật kết hợp từ tập mục phổ biến
Thủ tục Apriori_gen thực hiện kết nối và cắt tỉa Trong thành phần kết nối, Fk-1được kết nối với Fk-1 để sinh các ứng viên tiềm năng (bước 1 đến bước 4) Thành phần tỉa (bước 5 đến bước 7) dựa vào tính chất Apriori để loại bỏ các ứng viên mà có tập con không phổ biến Thủ tục has_infrequent_subset dùng để kiểm tra các tập con không phổ biến
Procedure Apriori_gen (F k-1 : tập mục phổ biến có độ dài k-1)
(6) delete c; //bước tỉa: loại bỏ các ứng viên không có lợi
(7) Else thêm c vào C k ;
(8) }
(9) Return C k ;
Procedure has_infrequent_subset (c: ứng viên, F k-1 : tập các tập phổ biến có độ dài (k-1));
(1) For (mỗi (k-1) – tập con s của c)
(2) If s Fk-1 then
(3) Return TRUE;
(4) Return FALSE;