Tải bản đầy đủ (.pdf) (28 trang)

Ứ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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 28 trang )

ĐẠ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


ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
--------------o0o-----------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,

LƯỜNG HỒNG GIANG

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.

ỨNG DỤNG MỘT SỐ KỸ THUẬT KHAI PHÁ DỮ LIỆU ĐỂ
Tơi


xin chịu
tồn bộ
trách
nhiệmVIỄN
và chịuTHƠNG
mọi hình thức
kỷ luậtTĂNG
theo quy định
PHÂN
TÍCH
DỮ
LIỆU
NHẰM
cho lời cam
đoan củaCHẤT
tôi.
CƯỜNG
LƯỢNG DỊCH VỤ KHÁCH HÀNG
Ngành

: Công nghệ Thông tin

Chuyên ngành

: Hệ thống thông tin

Mã số

: 60 48 05


Hà Nội, tháng 10 năm 2012

LUẬN VĂN THẠCLường
SĨ Hồng Giang

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN HÀ NAM

Hà Nội - 2012
2


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 tố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

4


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
5.1

Ứng dụng vào phân tích dữ liệu viễn thông tại Beeline........................... 56

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

5


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 4050%/năm hiện nay xuống chỉ còn 5-15%/năm trong 4-5 năm tới.
Ở 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 đồ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.
2


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.

3


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 q trình KDD.

1.2 Q 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 tốn, trực quan
hóa dữ liệu, tính tốn song song và hiệu năng cao,…
Q trình KDD có thể phân thành các giai đoạn sau:

4


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
5


chính và thị trường chứng khốn, điều trị và chăm sóc y tế, text mining & web mining,
các lĩnh vực khoa học, mạng viễn thông.

1.6 Hướng tiếp cận của luận văn.
1.6.1 Các ứng dụng quản lý và chăm sóc khách hàng
Các công ty viễn thông quản lý một khối lượng lớn dữ liệu về thông tin khách
hàng và dữ liệu về chi tiết cuộc gọi (call detail records). Các ứng dụng khai phá dữ liệu
phổ biến trong lĩnh vực viễn thông:
 Ứ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ự đố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.

6


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à q trình tìm kiếm mối quan hệ
tuần hồ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
7


 I. Mỗi giao dịch T có một định danh là TID. X là một tập mục X  I và T là một
giao dịch: Gọi T chứa X nếu X  T. Gọi X  Y là một “luật kết hợp” nếu X  I, Y  I
và XY=.
 Kí hiệu support(X) (hoặc sup(X), s(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 trong D, nghĩa là:
sup  X  

|{T  D|X  T}|
D

(1)

Tập mục X có P(X)  s>0 (với s cho trước) được gọi là tập phổ biến (frequent
set)
 Luật kết hợp X  Y 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 XY: chính là xác suất P(XY).
Support (X  Y)

= P(XY) : 1  s (X  Y)  0 (2)

 Luật kết hợp X  Y 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 (X  Y) = P(X|Y)

: 1  c (X  Y)  0 (3)


Luật X  Y được gọi là đảm bảo độ hỗ trợ s trong D nếu s(X  Y)  s. Luật X  Y
được gọi là đảm bảo độ tin cậy c trong D nếu c(X  Y)  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.
8


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:
conf 

Sup( XYZW )
Sup( XY )

(5)

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

9


f. Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s) nếu độ tin cậy
(Confidence) của nó > =min_conf
2.2.3 Mơ tả thuật tốn Apriori dưới dạng giả mã
Đầu vào:
-

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) F1 = {tất cả các tập mục phổ biến có độ dài bằng 1};
(2) For (k=2; Fk-1   , k++){
(3)

Ck = Apriori-gen (Fk-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

 Ck| c  t); //tất cả các ứng viên c thuộc Ck với c là tập con của giao dịch t.

(5)

Ct = ( c

(6)

For (mỗi ứng viên c  Ct)

(7)

c.Count++;

(8)

} // kết thúc lặp các giao dịch t


(9)

Fk = { c

D

 Ck | c.count  min_sup }

(10) } //kết thúc vịng lặp.
(11) } Return

 k Fk

Thuật tốn Apriori được trình bày dưới dạng giả mã và các thủ tục liên quan. Bước 1
của Apriori là tìm tất cả các tập mục phổ biến F1 có độ dài bằng 1. Từ bước 2 đến bước
10, Fk-1 được sử dụng để sinh ứng viên Ck theo trình tự để tìm Lk với k ≥ 2. Thủ tục
Apriori_gen sinh các ứng viên và sử dụng tính chất Apriori để loại trừ những tập con
không phổ biến (bước 3). Thủ tục này được mơ tả phía dưới. Một khi tất cả các ứng
viên đã được sinh ra, CSDL sẽ được quyét (bước 4). Với mỗi giao dịch, một hàm con
được sử dụng để tìm tất cả các tập con của giao dịch đã được ứng cử (bước 5), và số
10


ứ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 k Fk (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 (Fk-1 : tập mục phổ biến có độ dài k-1)
(1) For (mỗi tập mục l1

 Fk-1)

(2)

For (mỗi tập mục l2

(3)

If ( l1[1] = l2[1]

 Fk-1)
 l1[2] = l2[2]  …  l1[k-2] = l2[k-2]  l1[k-1] = l2[k-1] ) then {

(4)

c = l1 ⋈ l2 ; // bước kết nối: sinh ứng viên

(5)

If has_infrequent_subset (c, Fk-1) then
delete c; //bước tỉa: loại bỏ các ứng viên khơng có lợi

(6)
(7)


Else thêm c vào Ck;

(8)

}

(9) Return Ck;

Procedure has_infrequent_subset (c: ứng viên, Fk-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)
(3)

If s

 Fk-1 then
Return TRUE;

(4) Return FALSE;

11


Chương 3 Lưu trữ dữ liệu lớn dựa trên Oracle DBMS
Hầu hết các nghiên cứu về khai phá dữ liệu đã đề xuất thuật tốn và tối ưu hóa làm
việc trên các flat files, chứ không phải là một DBMS, chủ yếu do những lý do sau đây:
-

Dễ dàng hơn để phát triển các thuật toán hiệu quả trong một ngơn ngữ lập trình
truyền thống.


-

Việc tích hợp các thuật tốn khai phá dữ liệu vào một DBMS sẽ mang lại khó
khăn trên nền tảng mơ hìnhquan hệ và kiến trúc hệ thống.

-

Hơn nữa, SQL có thể làm chậm và rườm rà cho các tính tốn phân tích số.

Do đó, người sử dụng các ứng dụng khai phá dữ liệu thường biến đổi các bộ dữ
liệu bên trong DBMS ra flat files sau đó mới đưa vào cơng cụ khai phá dữ liệu, để
tránh hiệu suất giảm và loại bỏ khả năng quản lý dữ liệu quan trọng như xử lý truy vấn
và an ninh dữ liệu, đồng thời kiểm soát và khả năng chịu lỗi.
Hầu hết các thuật toán đã được tối ưu hóa để giảm bớt số lần duyệt các tập dữ liệu.
Hệ thống có thể phân tích lượng lớn các tập dữ liệu nhanh hơn so với các cơng cụ khai
phá dữ liệu sử dụng flat files, ví dụ như weka.
Hướng nghiên cứu của đề tài nghiên cứu các vấn đề thực hiện khai phá dữ liệu bên
trong một DBMS, chú ý đến các bộ dữ liệu lớn. DBMS ngày càng phát triển và chiếm
ưu thế hiện nay như Oracle.

3.1 Giới thiệu hệ quản trị CSDL Oracle
Các công ty viễn thông quản lý một khối lượng lớn dữ liệu về thông tin khách
hàng và dữ liệu về chi tiết cuộc gọi (call detail records). Và CSDL Oracle là một lựa
chọn tối ưu để lưu trữ lượng dữ liệu lớn đó trong các doanh nghiệp viễn thơng.
Oracle bao gồm một tập hợp hoàn thiện các sản phẩm xây dựng ứng dụng và
người dùng cuối được trang bị các giải pháp kỹ thuật thơng tin hồn hảo. Các ứng
dụng Oracle tương thích với hầu hết các hệ điều hành từ các máy tính cá nhân đến các
hệ thống xử lý song song lớn. Oracle cung cấp một hệ quản trị cơ sở dữ liệu (Database
12



Management System - DBMS) uyển chuyển: Oracle Server để lưu giữ và quản lý các
thông tin dùng trong các ứng dụng.

3.2 Phương pháp tiếp cận và kiến trúc
Đề tài trình bày một hệ thống khai phá dữ liệu trên hệ quản trị cơ sở dữ liệu quan
hệ Oracle dựa trên các truy vấn SQL và các hàm định nghĩa trực tiếp bởi người dùng,
và sẽ chứng minh rằng “SQL là không hiệu quả hoặc không đầy đủ cho khai phá dữ
liệu là sai”. Mục đích của luận văn là khám phá rất nhiều những vấn đề gặp phải khi
CSDL được tích hợp vào q trình khai phá dữ liệu.
Hiện nay có nhiều cơng cụ khai phá dữ liệu thương mại sẵn có trên thị trường như
IBM‟s Intelligent Miner, DBMiner,Oracle Data Mining, …Chúng có khả năng cung
cấp khai phá dữ liệu trên CSDL quan hệ. Mặc dù chúng là những công cụ khai khá là
hiệu quả, chúng phát triển cho những hệ quản trị CSDL cụ thể.
Các file sử dụng cho các thuật toán khai phá, chúng được sử dụng làm dữ liệu đầu
vào và không chứa trong cơ sở dữ liệu. Chúng thường bị giới hạn số lượng giao dịch
có thể được khai phá. Ví dụ, DBMiner giới hạn số lượng giao dịch là 64K mà nó có
thể xử lý khai phá. Người sử dụng có thể lựa chọn RDBMS sử dụng cho các ứng dụng
của mình để hệ thống khơng giới hạn về số lượng giao dịch và có thể phải chuyển sang
RDBMSs khác một cách dễ dàng. Với hệ quản trị CSDL Oracle chúng ta sẽ có được
một số ưu điểm:
-

Phân tích kế hoạch truy vấn, lựa chọn kế hoạch tốt nhất cho mỗi tính tốn khai
phá dữ liệu, xác định tối ưu hóa hiệu năng.

-

Với các truy vấn SQL có rất nhiều bảng tạm thời được tạo ra trong quá trình

duyệt dữ liệu. Mỗi bảng tạm (temporary table) đều được kiểm soát để được lưu
trữ và lập chỉ mục (index) nếu cần thiết.

-

Khả năng viết lại câu truy vấn là rất cần thiết trong hệ quản trị CSDL.

-

Để có được hiệu năng tốt nhất, bảng dữ liệu lớn sẽ được tạo chỉ mục và phân
khu dữ liệu.

13


Chương 4 Áp dụng Luật kết hợp vào Cơ Sở Dữ Liệu Oracle
4.1 Đặc tả bài toán
Dữ liệu vào: định dạng đầu vào là một bảng có hai cột. Cột đầu tiên là định
danh giao dịch (tid) và cột thứ hai là danh mục mặt hàng (item). Trong mỗi giao dịch,
nếu có nhiều hơn một mặt hàng, thì sẽ có nhiều dòng dữ liệu trong bảng giao dịch với
cùng giá trị trong cột tid và các giá trị khác nhau trong cột mặt hàng.

Một tùy chọn khác có thể là định dạng bảng bình thường với nhiều cột, một cột
là tid và phần còn lại là các mặt hàng (items). Đối với giao dịch với số lượng lớn các
mặt hàng, định dạng đầu tiên sẽ có danh sách hữu hạn các mặt hàng như số lượng thực
tế mà các mặt hàng tồn tại trong giao dịch. Đề tài lựa chọn cách thứ nhất là vì hai lý
do:
1. Đầu tiên là chúng ta không biết số lượng của các mục trong mỗi giao dịch.
2. Ngoài ra cơ sở dữ liệu hiện tại trên thị trường có thể chỉ hỗ trợ số lượng nhất
định các cột cho một bảng. Nếu một trường hợp phát sinh trong đó có số lượng

mặt hàng trong một giao dịch hơn mức cho phép của các cơ sở dữ liệu cơ bản,
khơng có cách nào chúng ta có thể quản lý chính xác của dữ liệu. Cũng sẽ có rất
nhiều các giá trị null trong các hàng, các item không được sử dụng trong tất cả
các giao dịch.
Dữ liệu ra: Đầu ra là một tập các bộ quy tắc, dữ liệu được trình bày theo hình thức
bảng được đặt tên là RULES. Không phải luật kết hợp nào được sinh ra cũng cùng độ
dài do đó chúng ta sẽ sử dụng độ dài tối đa để xác định số lượng các cột của bảng đầu
ra. Một luật kết hợp được sinh ra cần phải có ít mặt hàng (item) hơn số lượng cột trong
14


bảng. Những cột bổ sung cho luật kết hợp được sinh ra được gán giá trị 0. Cấu trúc
bảng RULES (item1, item2, … ,itemk, nullm, rulem, confidence, support). Ở đây k là
độ dài của tập phổ biến có độ dài lớn nhất. Cột nullm là cột có giá trị 0 đầu tiên, rulem
là vị trí của „=>‟ trong luật kết hợp. Confidence và support lần lượt là độ tin cậy và độ
hỗ trợ của luật kết hợp được sinh ra.

4.2 Sinh tập các ứng viên
4.2.1 Thực hiện phép nối giữa tập mục phổ biển Fk
Thuật tốn Apriori đã được trình bầy trong chương 2, với mỗi k, tập ứng viên
có độ dài k (Ck) có thể được sinh từ tất cả các tập mục phổ biến có độ dài bằng k-1 (Fk1).

Fk-1 sẽ có k-1 cột: Item1, Item2, …, Itemk-1, các giá trị lần lượt của tập mục phổ

biến được sắp xếp theo thứ tự tăng dần.
insert into Ck
select I1.item1, … ,I1.itemk-1, I2.itemk-1
from Fk-1 I1, Fk-1 I2
where I1.item1 = I2.item1 and


I1.itemk-2 = I2.itemk-2 and
I1.itemk-1 < I2.itemk-1

Hình 4.1: Thực hiện phép nối giữa tập mục phổ biến Fk
Ví dụ, Tập mục phổ biến có độ dài k=3, F3: {{1, 2, 3}, {1, 2, 4}, {1, 3, 4}, {1, 3, 5},
{2, 3, 4}}, sinh tập các ứng viên có độ dài k = 4: C4: {1, 2, 3, 4}, and {1, 3, 4, 5}.
4.2.2 Thực hiện bước tỉa loại bỏ ứng viên khơng có lợi
Tiếp theo, là bước tỉa để loại bỏ các ứng viên khơng có lợi. Các tập con độ dài
(k-1) của tập các ứng viên Ck không tồn tại trong các tập mục phổ biến có độ dài bằng
k-1 (Fk-1) là được xóa bỏ. Chúng ta sử dụng phương pháp K-way join[15] để thực hiện,
dựa vào các giá trị lần lượt của tập mục phổ biến được sắp xếp theo thứ tự tăng dần và
tất cả tập con của tập phổ biến phải phổ biến. Các tập con (tập phổ biến) độ dài k-1 sẽ
xác nhận cho các tập phổ biến độ dài k. Điều này được thực hiện bằng việc thêm phép
kết nối với điều kiện để xác nhận lần lượt cho từng cột (item). Đầu tiên kiểm tra item1,
nếu tập ứng viên (I1.item2, I1.item3, …, I1.itemk-1, I2.itemk-1) thuộc Fk-1 như trong
phép kết nối với I3 được thể hiện ở hình bên dưới. Một phép kết nối với Ir (3 <= r <=
k) chúng ta sẽ kiểm tra item r-2 với điều kiện:
15


I1.item1 =

I1.itemr-3
I1.itemr-1

I1.itemk-1
I2.itemk-1

Ir.item1 and
= Ir.itemr-3 and

= Ir.itemr-2 and
= Ir.itemk-2 and
= Ir.itemk-1

Hình 4.2: Thực hiện bước tỉa loại bỏ ứng viên không có lợi

Hình 4.3: Sinh và tỉa tập các ứng viên có độ dài k
Ví dụ, bảng F3 có tập dữ liệu {{1 2 3}, {1 2 4}, {1 3 4}, {1 3 5}, {2 3 4}}. Sau
khi thực hiện kết nối F3 với chính nó ta được kết quả trả về là {{1 2 3 4}, {1 3 4 5}.
Bước tỉa sẽ xóa tập con {1 3 4 5} khơng phổ biến. Bởi vì tập {1 3 4 5} được sinh ra từ
hai tập con là {1 3 4} và {1 3 5} nhưng tập con {3 4 5} không tồn tại trong tập mục
phổ biến F3. Do đó nó bị xóa và tập các ứng viên có độ dài 4 (C4) là {1 2 3 4}.

16


Hình 4.4: Sinh và tỉa tập các ứng viên có độ dài k = 4

4.3 Tính độ hỗ trợ
Đây là một phần quan trọng và chiếm hầu hết thời gian của quá trình khai phá
dữ liệu. Bước này là cần thiết để xác định tất cả các tập phổ biến từ các tập ứng cử
viên. Trình bày phương pháp sử dụng chuẩn SQL-92 cho việc tính tốn độ hỗ trợ, Kway (Kwj) [15]:
Phương pháp cơ bản để tính độ hỗ trợ tại k bất kỳ, thực hiện kết nối giữa tập
các tập mục của tập các ứng viên với k bảng giao dich T và thực hiện hàm nhóm
(Group by) trên các tập mục của tập các ứng viên đó. Câu lệnh SQL và sơ đồ cây với
k-way kết nối được hiển thị dưới đây:
Insert into Fk
Select item1, … , itemk, count(*)
From Ck,Tt1,…,Ttk
Where t1.item = Ck.item1 and


tk.item = Ck.itemk and
t1.tid = t2.tid and

tk-1.tid = tk.tid
Group by item1, item2, … ,itemk
Having count(*) > minsup

Hình 4.5: Tính độ hỗ trợ theo phương phá K-way

Hình 4.6: Mơ hình cây tính độ hỗ trợ bằng phương pháp nối K-way
17


4.4 Sinh các luật kết hợp từ các tập mục phổ biến
4.4.1 Kết hợp các tập mục phổ biến có độ dài từ 1 đến k
Từ các tập mục phổ biến có độ dài từ 1 đến k, chúng ta kết hợp dữ liệu từ các
bảng F1 đến Fk vào bảng dữ liệu FISETS(item1,…,itemk, nullm, count) với nullm là
vị trí có giá trị 0 đầu tiên, và count là độ hỗ trợ của tập mục, như sau:
Insert into fisets as
select item1, …, 0 itemk, 2 nullm,count from F1
union all
select item1, item2, …, 0 itemk, 3 nullm,count from F2
union all

union all
select item1, item2,…, itemk, k+1 nullm,count from Fk

Hình 4.7: Kết hợp các tập mục phổ biến độ dài từ 1 đến k
4.4.2 Sinh các tập con bảng tập mục phổ biến FISETS

Bước tiếp theo, sinh các tập con cho mỗi tập hữu hạn trong bảng tập mục phổ
biến FISETS. Sau đó cập nhật vào bảng SUBSETS(item1, …, itemk, nullm, rulem,
count) với cột nullm là cột có giá trị 0 đầu tiên, rulem là vị trí của „=>‟ trong luật kết
hợp và count là độ hỗ trợ. Đối với một dòng dữ liệu trong bảng FISETS, có giá trị
trong các cột (item1,…,itemk) tăng dần. Để sinh các tập con cho mỗi tập hữu hạn
trong bảng tập mục phổ biến FISETS đề tài sử dụng thuật toán đệ quy liệt kê tổ hợp
chập k của n phần tử:
declare
n
number; --Mảng có độ dài n
source
number [ ] := null; --Mảng kết quả
k
number := 3; --Số lượng phần tử
selected boolean [ n ]; --Mảng lưu trạng thái
procedure choose(element number, startIdx number) is
begin
if element = k then
--In danh sách phần tử trong mảng source[k]
for i in 1 .. n loop
if selected[i] = true then
--In phần tử mảng sẽ được chọn
end if;
end loop;
else
for i in startIdx .. n loop
if selected [ i ] = false then
selected [ i ] = true;
--Thực hiện thuật toán đệ quy
choose(element + 1, i + 1);

selected [ i ] = false;

18


end if;
end loop;
end if;
end choose;
Begin
choose(0, 0);
End;

Hình 4.8: Liệt kê tổ hợp chập k của n phần tử
4.4.3 Sinh các luật kết hợp
Chúng ta sẽ kết hợp hai bảng FISETS và SUBSETS với điều kiện:
SUBSETS .count
 min_ conf
FISETS .count

Cập nhật dữ liệu vào bảng RULES (item1,…, itemk, nullm, rulem, confidence,
support)
(1)

insert into Rules

(2)

select s.item1, …, s.itemk, s.nullm, s.rulem,
(float(s.count)/f.count)*100 Confidence, s.count Support


(3)

from SUBSETS s, FISETS f

(4)

where (s.item1 = f.item1 OR s.rulem <= 1 )

(5)

AND (s.item2 = f.item2 OR s.rulem <= 2 )

(6)

...

(7)

AND (s.itemk = f.itemk OR s.rulem <= k )

(8)

AND s.rulem = f.nullm

(9)

AND s.count*100/ f.count >= minconf

Hình 4.9: Sinh các tập luật kết hợp mạnh từ các tập mục phổ biến


19


Chương 5 Ứng dụng vào phân tích dữ liệu viễn thơng tại Beeline
Trong phạm vi đề tài, chương trình sử dụng ngôn ngữ PL/SQL, SQL động để thực
hiện xử lý các vấn đề.

5.1 Mô tả và chuyển đổi dữ liệu
Dữ liệu chi tiết cuộc gọi (call detail data - CDR): Mỗi một cuộc gọi của khách hàng
trên mạng viễn thông đều phát sinh một mẫu tin chi tiết cuộc gọi. Các mẫu tin này bao
gồm các thông tin đặc tả thuộc tính quan trọng của cuộc gọi như : số gọi, số bị gọi,
thời gian bắt đầu và thời gian đàm thoại.

5.2 Xây dựng hệ thống thực nghiệm
Từ dữ liệu đầu vào là bảng TRANSACTIONS (TID, ITEM), chúng ta sẽ xây
dựng ứng dụng thực nghiệm theo các bước như đã giới thiệu trong chương bốn. Trong
quá trình thực hiện ứng dụng sẽ có các bảng tạm (temp tables) được tạo ra lưu trữ tập
các ứng viên Ck và tập mục phổ biến Fk với độ hỗ trợ tương ứng.
5.2.1 Sinh tập các ứng viên
Đầu tiên chúng ta sẽ sinh ra các tập mục phổ biến F1 từ bảng TRANSACTIONS
như sau:
create
select
from
group
having

table F1 as
item item1, count(*) count

transactions
by item
count(*) > 1

Từ bảng tập mục phổ biến F1, tạo bảng sinh các ứng cử viên C2 bằng việc nối bảng
F1 với chính nó:
create table C2 as
Select I1.item1, I2.item1 item2 From F1 I1, F1 I2 Where I1.item1 < I2.item1

Thực hiện phép nối giữa tập mục phổ biển Fk-1, để sinh tập các ứng viên Ck, sau
đó thực hiện bước tỉa loại bỏ ứng viên khơng có lợi như được mơ tả trong mục 4.2.2
(thực hiện bước tỉa loại bỏ ứng viên khơng có lợi). Tham khảo thủ tục c_table_creation
trong phần phụ lục.

20


5.2.2 Tính độ hỗ trợ
Tìm tập mục phổ biến có độ dài k (Fk) và tính độ hỗ trợ của mỗi tập mục tham
khảo thủ tục f_table_creation trong phần phụ lục.
5.2.3 Sinh các luật kết hợp từ các tập mục phổ biến
Kết hợp các tập mục phổ biến có độ dài từ 1 đến k bằng cách kết hợp dữ liệu của
bảng tạm đã tạo ra F1, …,Fk vào bảng FISETS, từ bảng FISETS chúng ta tìm tập con
cảu tập mục phổ biến trong bảng FISETS và lưu vào bảng SUBSETS.
Tham khảo thủ tục Gensubs_combination trong phần phụ lục sẽ thực hiện việc tìm
tất cả các tập con của các tập phổ biến trong bảng FISETS, thủ tục
Gensubs_combination thực hiện việc tìm các tập con bằng cách liệt kê tổ hợp chập k
của n phần tử bằng phương pháp đệ quy.
Thủ tục subsets_table_creation sẽ lưu tất cả các tập mục phổ biến được sinh ra từ
thủ tục Gensubs_combination vào bảng SUBSETS.

Thủ tục rules_table_creation sẽ kết hợp bảng và lưu dữ liệu vào bảng RULES,
bảng RULES sẽ lưu tất cả các tập phổ biến với độ hỗ trợ (support) và độ tin
cậy(confidence) tương ứng. Kết quả thu được trong bảng RULES như sau:

Hình 5.1: Các luật kết hợp với độ tin cậy tối thiểu > 80%

21


5.3 Phân tích dữ liệu kết quả thực nghiệm
5.3.1 Mật độ phân bố luật kết hợp trên độ hỗ trợ và độ tin cậy
Với số lượng 41.714 luật kết hợp, 29.112 luật kết hợp có độ hỗ trợ bé hơn 0.01,
9.076 luật kết hợp có độ hỗ bé hơn 0.1, 2.456 luật kết hợp có độ hỗ bé hơn 0.4, 116
luật kết hợp có độ hỗ có độ hỗ trợ bé hơn 0.5, 274 luật kết hợp có độ hỗ trợ bé hơn 0.8
và 680 luật kết hợp có độ hỗ bé hơn 1. Chúng ta có biểu đồ thể hiện số lượng luật kết
hợp là không đồng đều với các độ hỗ trợ khác nhau:

Hình 5.2: Mật độ luật kết hợp trên độ hỗ trợ
Biểu đồ biểu hiện mật độ số lượng các luật kết hợp với độ tin cậy tương ứng (5%,
10%, 20%, 30%, ..100%).

Hình 5.2: Mật độ luật kết hợp trên độ tin cậy
22


×