Tải bản đầy đủ (.pdf) (75 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 (2.28 MB, 75 trang )

4

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
5

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 F
k
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
6

DANH SÁCH HÌNH VẼ
Hình 1.1: Khai phá dữ liệu là một bước trong quá trình khai phá tri thức 13
Hình 1.2: Kiến trúc của hệ thống khai phá dữ liệu 16
Hình 2.1: Cơ sở dữ liệu giao dịch D 26
Hình 2.2: Tần xuất xuất hiện và độ hỗ trợ của các tập mục phổ biến 26

Hình 2.3: CSDL sử dụng minh hoạ thuật toán Apriori 30
Hình 2.4: Duyệt CSDL tìm các tập mục phổ biến 1-Itemset (F
1
) 31
Hình 2.5: Duyệt CSDL tìm các tập mục phổ biến 2-Itemset (F
2
) 31
Hình 2.6: Duyệt CSDL tìm các tập mục phổ biến 3-Itemset (F
3
) 32
Hình 2.7: Kết quả thực hiện thuật toán Aprori cho CSDL D 33
Hình 2.8: Bảng băm H
2
, với tập mục ứng viên 2-item 34
Hình 2.9: Khai thác bằng cách phân hoạch dữ liệu. 36
Hình 3.1: Bảng dữ liệu quan hệ lưu giữ dữ số lượng các tập mục 43
Hình 3.3: Giới hạn trong CSDL Oracle 44
Hình 4.1: Cách chuyển đổi cấu trúc bảng dữ liệu giao dịch 45
Hình 4.2: Thực hiện phép nối giữa tập mục phổ biến Fk 46
Hình 4.3: Thực hiện bước tỉa loại bỏ ứng viên không có lợi 47
Hình 4.4: Sinh và tỉa tập các ứng viên có độ dài k 48
Hình 4.6: Tính độ hỗ trợ theo phương pháp K-way 49
Hình 4.7: Mô hình cây tính độ hỗ trợ bằng phương pháp nối K-way 50
Hình 4.8: Kết hợp các tập mục phổ biến độ dài từ 1 đến k 50
Hình 4.9: Liệt kê tổ hợp chập k của n phần tử 52
Hình 4.10: Sinh các tập luật kết hợp mạnh từ các tập mục phổ biến 52
7

DANH SÁCH BẢNG BIỂU
Hình 2.1: Cấu trúc các thuộc tính của CDR 72

Hình 2.2: Bảng dữ liệu ACCOUNT_SUBSCRIBER 73
Hình 2.3: Bảng dữ liệu CDR_BALANCE_FULL 73
Hình 2.4: Bảng dữ liệu OFFER_VALUES 73
Hình 2.5: Bảng dữ liệu AUT_TEMP 74
8

PHỤ LỤC
Phụ lục A: Danh sách các thủ tục, hàm của ứng dụng 67
Phụ lục B: Danh sách các bảng dữ liệu 71
Phụ lục C: Kết quả phát hiện luật kết hợp 74
9

DANH MỤC CÁC CHỮ VIẾT TẮT
CSDL
Cơ sở dữ liệu
CNTT
Công nghệ thông tin
AI
Artificial Intelligence (Trí tuệ nhân tạo)
CDR
Call Detail Records
KPDL
Khai phá dữ liệu
KDD
Knowledge Discovery in Databases (Phát hiện tri thức trong cơ sở dữ
liệu)
DSS
Decision Suport System (Hệ trợ giúp quyết định)
DBMS
Hệ quản trị CSDL

RDBMS
Hệ quản trị CSDL quan hệ
UDFs
User-Defined Functions (Hàm định nghĩa trực tiếp bởi người dùng)

10

MỞ ĐẦU
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 40-50%/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 đ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
11

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.
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.
Đề tài được nghiên cứu ứng dụng phương pháp 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: Tổng quan về khai phá dữ liệ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
Nội dung luận văn 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.
12

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.
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện
tri thức trong cơ sở dữ liệu, để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ
các tập dữ liệu lớn. Trong đó khai phá dữ liệu là một bước đặc biệt trong toàn bộ quá
trình, sử dụng các giải thuật đặc biệt để chiết xuất ra các mẫu hay các mô hình từ 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 [3][5]:
13


Hình 1.1: Khai phá dữ liệu là một bước trong quá trình khai phá tri thức
1. Trích chọn dữ liệu (Data selection): Là bước trích chọn những tập dữ liệu cần
được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data
repositories) ban đầu theo một số tiêu chí nhất định.
2. Tiền xử lý dữ liệu (Data preprocessing): Là bước làm sạch dữ liệu (xử lý với

dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán,.v.v.), rút gọn dữ
liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng
histograms, lấy mẫu,.v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms,
dựa vào entropy, dựa vào phân khoảng,.v.v.). Sau bước này, dữ liệu sẽ nhất
quán, đầy đủ, được rút gọn, và được rời rạc hóa.
3. Biến đổi dữ liệu (Data transformation): Là bước chuẩn hóa và làm mịn dữ liệu
để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở
bước sau.
4. Khai phá dữ liệu (Data mining): Là bước áp dụng những kỹ thuật phân tích
(phần nhiều là các kỹ thuật của học máy) nhằm để khai thác dữ liệu, trích chọn
được những mẫu thông tin, những mối liên hệ đặc biệt trong dữ liệu. Đây được
xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD.
14

5. Đánh giá và biểu diễn tri thức (Knowlwdge representation and evaluation):
Dùng các kỹ thuật hiển thị dữ liệu để trình bày những mẫu thông tin (tri thức) và
mối liên hệ trong dữ liệu đã được khám phá ở bước trên được chuyển dạng và
biểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu,
luật Đồng thời bước này cũng đánh giá những tri thức khám phá được theo
những tiêu chí nhất định.
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 [3][5]:
1. Học có giám sát (Supervised learning): Là quá trình gán nhãn lớp cho các phần
tử trong CSDL dựa trên một tập các dữ liệu huấn luyện và các thông tin về nhãn
lớp đã biết.
2. Học không có giám sát (Unsupervised learning): Là quá trình phân chia một
tập dữ liệu thành các lớp hay là cụm (clustering) dữ liệu tương tự nhau mà chưa
biết trước các thông tin về lớp hay tập các ví dụ huấn luyện.
3. Học bán giám sát (Semi - Supervised learning): Là quá trình phân chia một

tập dữ liệu thành các lớp dựa trên một tập nhỏ các dữ liệu huấn luyện và một số
các thông tin về một số nhãn lớp đã biết trước.
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 [3][5]:
1. Phân lớp và dự đoán (Classification & prediction): xếp đối tượng vào một
trong các lớp đã biết trước. Ví dụ: phân lớp loại cước hoặc loại dịch vụ dựa trên
số máy bị gọi của cuộc gọi, phân lớp khu vực dựa trên số máy chủ gọi, phân lớp
giờ cao điểm, thấp điểm dựa trên giờ bắt đầu đàm thoại… Phân lớp là một kỹ
thuật rất quan trọng trong khai thác dữ liệu. Phân lớp còn được gọi là học có
15

giám sát, hướng tiếp cận này thường được sử dụng một số kỹ thuật của học máy
như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network)…
2. Luật kết hợp (Association rules): Là dạng biểu diễn tri thức ở dạng luật tương
đối đơn giản. Ví dụ: “70% khách hàng gọi liên tỉnh thì có 99% trong số khách
hàng đó gọi nội tỉnh”. Luật kết hợp có khả năng ứng dụng trong rất nhiều lĩnh
vực.
3. Khai thác mẫu tuần tự (Sequential/temporal patterns): Tương tự như khai
thác luật kết hợp nhưng có theo tính thứ tự và tính thời gian. Một luật mô tả mẫu
tuần tự có dạng biểu diễn X→Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến
việc xuất hiện kế tiếp biến cố Y. Hướng tiếp cận này có tính dự báo cao.
4. Phân cụm (Clustering/segmentation): Sắp xếp các đối tượng theo từng cụm.
Các đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong
cùng một cụm là lớn nhất và mức độ tương tự giữa các đối tượng nằm trong các
cụm khác nhau là nhỏ nhất. Phân cụm còn được gọi là học không giám sát
(unsupervised learning).
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. Các giai đoạn trong quá trình khai phá tri thức có thể lặp đi lặp

lại nhằm tối ưu hóa quá trình khai phá tri thức. Nhằm đưa ra các tri thức mới từ dữ
liệu đã có.
16


Hình 1.2: Kiến trúc của hệ thống khai phá dữ liệu
Kiến trúc của hệ thống khai phá dữ liệu (Hình 1.2) có các thành phần như sau:
 Cơ sở dữ liệu, kho dữ liệu nguồn: Đó là một hoặc nhóm các cơ sở dữ liệu, kho
dữ liệu … Các kỹ thuật làm sạch dữ liệu, tích hợp, lọc dữ liệu có thể thực hiện
trên dữ liệu
 Cơ sở dữ liệu hoặc kho dữ liệu phục vụ: Là kết quả lấy dữ liệu có liên quan
trên cơ sở khai phá dữ liệu của người dùng để phục vụ mục tiêu cụ thể.
 Cơ sở tri thức: Đó là lĩnh vực tri thức được sử dụng để hướng dẫn việc tìm
hoặc đánh giá các mẫu kết quả thu được
 Mô tả khai phá dữ liệu: Bao gồm tập các module chức năng để thực hiện các
nhiệm vụ mô tả đặc điển, kết hợp, phân lớp, phân cụm dữ liệu…
 Đánh giá mẫu: Thành phần này sử dụng các độ đo và tương tác với modul khai
phá dữ liệu để tập trung vào tìm các mẫu quan tâm.
 Giao diện người dùng: Đây là module giữa người dùng và hệ thống khai phá
dữ liệu. Cho phép người dùng tương tác với hệ thống trên cơ sở những truy vấn
hay tác vụ, cung cấp thông tin cho việc tìm kiếm.
17

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ó. 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(data analysis and dicision support):
o Phân tích và quản lý thị trường: Tiếp thị định hướng, quản lý quan hệ khách
hàng, phân tích thói quen mua sắm, tiếp thị chéo, phân đoạn thị trường.
o Phân tích và quản lý rủi ro: dự báo, duy trì khách hàng, cải thiện bảo lãnh,

kiểm soát chất lượng, phân tích cạnh tranh.
o Phát hiện gian lận, phát hiện mẫu bất thường.
 Tài chính và thị trường chứng khoán: phân tích tình hình tài chính và dự báo
giá của các loại cổ phiếu trong thị trường chứng khoán, danh mục vốn và giá,
lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận…
 Điều trị và chăm sóc y tế: Một số thông tin về chuẩn đoán lưu bệnh trong các
hệ thống quản lý bệnh viện. Phân tích mối liên hệ giữa triệu chứng bệnh, chuẩn
đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc ).
 Text mining & Web mining: Phân lớp văn bản và các trang web, tóm tắt văn
bản…
 Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm
kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số
bệnh di truyền.
 Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi,
phát hiện gian lận, các ứng dụng quản lý và chăm sóc khách hàng, phát hiện sự
cố để đưa ra biện pháp phát triển chất lượng dịch vụ…
1.6 Hướng tiếp cận của luận văn.
Viễn thông là ngành đã có những bước phát triển ngoạn mục trong những năm
gần đây. Số lượng các thuê bao và các dịch vụ viễn thông kèm theo đang gia tăng một
18

cách chóng mặt. Các công nghệ mới cũng phát triển hết sức mạnh mẽ. Đây lại là
ngành có tỉ lệ tin học hóa cao, hầu hết các giao dịch, thao tác, hoạt động đều được lưu
lại trong CSDL. Từ đó, lượng dữ liệu thu thập và lưu trữ được về các hoạt động sản
xuất kinh doanh cũng trở nên ngày càng khổng lồ. Tiềm ẩn bên trong lượng dữ liệu
này là những tri thức hết sức quí báu về thị trường, khách hàng, sản phẩm…
1.6.1 Ứ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). Những thông tin này có thể
cho ta 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ả. Các ứng dụng khai phá dữ liệu phổ biến trong lĩnh vực viễn
thông [13][14] :
 Ứ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. Hiện nay trên một đường điện thoại khách hàng
sử dụng rất nhiều dịch vụ khác nhau, ví dụ như : gọi điện thoại, truy cập internet,
tra cứu thông tin từ hộp thư tự động, nhắn tin, gọi 108, .v.v. Dựa trên cơ sở dữ liệu
khách hàng chúng ta có thể khám phá mối liên kết trong việc sử dụng các dịch vụ,
có thể đưa ra các luật như (khách hàng gọi điện thoai quốc tế) => (truy cập
internet) .v.v. Trên cơ sở phân tích được các luật như vậy các công ty viễn thông
có thể điều chỉnh việc bố trí nơi đăng ký các dịch vụ phù hợp, ví dụ điểm đăng ký
điện thoại quốc tế nên bố trí gần với điểm đăng ký Internet chẳng hạn.
 Một ứng dụng phục vụ chiến lược kinh doanh khác đó là dựa trên kỹ thuật luật kết
hợp của KPDL để tìm ra tập các thành phố, tỉnh nào trong nước thường gọi điện
thoại với nhau. Ví dụ ta có thể tìm ra tập phổ biến (Cần Thơ, HCM, Hà Nội) chẳng
hạn. Điều này thật sự hữu dụng trong việc hoạch định chiến lược tiếp thị hoặc xây
dựng các vùng cước phù hợp.
 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) đặc biệt với các công ty điện thoại di động. Đây là
19

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ụ. Thời gian gần đây các nhà cung cấp dịch
vụ di động luôn có chính sách khuyến mãi lớn để lôi kéo khách hàng. Điều đó dẫn
đến một lượng không nhỏ khách hàng thường xuyên thay đổi nhà cung cấp để
hưởng những chính sách khuyến mãi đó. Kỹ thuật KPDL hiện nay có thể dựa trên
dữ liệu tiền sử để tìm ra các quy luật, từ đó có thể tiên đoán trước được khách hàng
nào có ý định rời khỏi mạng trước khi họ thực hiện. Dựa trên các kỹ thuật KPDL
như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural nerwork) trên dữ
liệu cước (billing data), dữ liệu chi tiết cuộc gọi (call detail data), dữ liệu khách

hàng (customer data) tìm ra các quy luật mà dựa trên đó ta có thể tiên đoán trước ý
định rời khỏi mạng của khách hàng, từ đó công ty viễn thông sẽ có các ứng xử phù
hợp nhằm lôi kéo khách hàng.
 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 kỹ thuật KPDL học trên cây quyết định (decision tree) trên
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. Ví dụ ta có thể phân biệt được khách hàng nào thuộc đối tượng kinh doanh
hay cá nhân dựa vào các luật sau :
o Luật 1 : nếu không quá 43% cuộc gọi có thời gian từ 0 đến 10 giây và
không đến 13% cuộc gọi vào cuối tuần thì đó là khách hàng kinh doanh.
o Luật 2 : Nếu trong 2 tháng có các cuộc gọi đến hầu hết từ 3 mã vùng giống
nhau và <56,6% cuộc gọi từ 0-10 giây thì có là khách hàng nhà riêng.
Trên cơ sở tìm ra được các luật tương tự vậy, ta dể dàng phân loại khách hàng, để
từ đó có chính sách phân khúc thị trường hợp lý.
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ả.
20

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.
Các luật kết hợp nói chung có độ hỗ trợ không cao (điều đó là tự nhiên) nhưng độ
tin cậy rất cao. Điều đó ngầm định rằng các quan hệ về các nhóm dịch vụ được tìm
thấy thông qua luật kết hợp là rất đáng tin cậy.
21


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
Ví dụ:
 Một số mặt hàng như sữa (milk) và bánh mỳ (bread), thường xuyên xuất hiện
cùng nhau trong các tập dữ liệu giao dịch được coi là tập mục phổ biến.
 Đầu tiên khách hàng mua một máy tính PC, rồi mua một máy quay kỹ thuật số,
và sau đó là mua một thẻ nhớ. Nếu dữ liệu xảy ra một cách phổ biến trong cơ
sở dữ liệu lịch sử bán hàng thì được gọi là mẫu dãy phổ biến (frequent
sequential pattern).
 Các mẫu cấu trúc khác như đồ thị con (subgraphs), cây con (subtrees), hoặc
mắt xích con (sublattices), chúng ta có thể kết hợp với các tập mục hoặc dãy
con. Nếu một cấu trúc con xảy ra thường xuyên, nó được gọi là một mẫu cấu
trúc phổ biến (a frequent structured pattern).
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.
22

Chủ đề về khai phá mẫu phổ biến rất phong phú và rộng lớn. Các lĩnh vực
nghiên cứu chú trọng đến mốt số vấn đề như sau:
 Làm thế nào để tìm thấy các tập mục phổ biến trong một cơ sở dữ liệu
lớn, trong đó dữ liệu có thể là các dữ liệu giao dịch hoặc dữ liệu quan hệ?

 Làm thế nào để có thể khai phá được các luật kết hợp trong không gian đa
mức và đa chiều?
 Những luật kết hợp nào là phù hợp nhất?
 Làm thế nào để có thể chỉ ra các thuật toán, phương pháp KPDL hiệu quả
để phát hiện những luật kết hợp phù hợp nhất hoặc các mối tương quan
giữa các mục dữ liệu?
Đây cũng chính là cơ sở để tạo điều kiện thuận lợi cho việc mở rộng các hình
thức khai phá mẫu phổ biến sau này.
2.1.3 Bài toán thực tế
Chúng ta hãy bắt đầu phân tích một ví dụ khá đặc trưng về khai phá mẫu phổ
biến, đó là phân tích giỏ hàng thương mại trong CSDL giao dịch về lịch sử bán hàng
tại siêu thị. Việc phát hiện ra mối tương quan trong một số lượng lớn các bản ghi về
giao dịch thương mại được thu thập và lưu trữ hàng ngày giúp hỗ trợ tiến trình đưa ra
quyết định của nhiều doanh nghiệp, như trong thiết kế mẫu hàng hóa, tiếp thị chéo và
phân tích thói quen mua sắm của khách hàng. Khám phá những mối quan hệ như vậy
có thể giúp những người bán lẻ phát triển các chiến lược tiếp thị bằng cách tiếp cận
một cách thấu đáo các danh mục mặt hàng được khách hàng mua thường xuyên.
Và làm thế nào để biết được một khách hàng đang mua sữa, họ có khả năng sẽ
mua bánh mỳ trong cùng một lần đến siêu thị? Thông tin này có thể làm tăng doanh
thu của cửa hàng bán lẻ bằng cách giúp những nhà bán lẻ tiếp thị các mặt hàng một
cách chọn lọc và lên kế hoạch trưng bầy sản phẩm ở những vị trí thích hợp.
23

Giả sử bạn là giám đốc một siêu thị, bạn sẽ muốn tìm hiểu về thói quen mua
sắm của khách hàng của bạn. Bạn tự hỏi: “Đâu là những mặt hàng, những nhóm mặt
hàng mà các khách hàng thương xuyên mua cùng nhau trong một chuyến đi đến siêu
thị?”. Để trả lời câu hỏi, việc phân tích giỏ hàng được thực hiện trên dữ liệu bán lẻ của
nhưng giao dịch khách hàng tại quầy hàng của bạn. Bạn có thể sử dụng kết quả này để
xây dựng kế hoạch, chiến lược cho tiếp thị hoặc quảng cáo hoặc thiết kế một catalog
mới. Trường hợp khác, việc phân tích giỏ hàng gúp bạn bài trí hàng hóa cho quầy

hàng. Trong chiến lược tiếp thị bán hàng, các mặt hàng thương xuyên mua cùng nhau
thì đặt gần vị trí với nhau, để khuyến khích việc mua các mặt hàng trong cùng một
nhóm hàng. Nếu khách hàng mua một chiếc máy giặt thì tại thời điểm đó họ cũng
quan tâm đến xà phòng giặt máy, do đó việc đặt mặt hàng bột giặt gần mặt hàng máy
giặt, sẽ làm tăng doanh số bán hàng của cả hai mục hàng này.
Như vậy, 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.
Từ ví dụ trên, 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%]
Độ hỗ trợ (support) và độ tin cậy (confidence) là hai độ đo hấp dẫn của luật.
Chúng lần lượt phản ánh sự hữu ích và độ chắc chắn của luật khai phá. Độ hỗ trợ bằng
2% có nghĩa là theo phân tích cho thấy: 2% trong nhưng giao dịch, máy giặt và xà
phòng được mua cùng nhau. Độ tin cậy bằng 60% có nghĩa là trong các giao dịch, nếu
khách hàng mua máy giặt thì cũng mua xà phòng giặt máy. Thông thường những luật
kết hợp được xét đến nếu chúng thỏa mãn cả ngưỡng hỗ trợ tối thiểu (minimum
support threshold) và ngưỡng tin cậy tối thiểu (minimum confidence threshold).
24

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
Để đơn giản hóa, chúng ta có thể hiểu luật kết hợp như sau: luật kết hợp là luật
chỉ ra mối quan hệ của hai hay nhiều đối tượng (đối tượng chúng ta đang xét ở đây là
các mặt hàng).
Cấu trúc của luật như sau: X=>Y (sup, conf). Có nghĩa là luật có X thì kéo theo Y với
độ hỗ trợ sup và độ tin cậy conf.
Trong đó:
- sup= support (độ hỗ trợ): là tỉ lệ giao dịch chứa cả hai mặt hàng X và Y trên
tổng số giao dịch.
- conf= confidence (độ tin cậy): là tỉ lệ giao dịch chứa mặt hàng Y trong các giao

dịch chứa mặt hàng X.
Nếu nhìn nhận luật kết hợp theo lý thuyết tập hợp thì chúng ta có thể định nghĩa như
sau:
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
 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à:

 
|{T D|X T}|
sup X
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)
25

 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 dùng hoặc chuyên
gia.
Công thức (3) có thể được viết lại như sau:
 
 
 

 
 
conf X Y p(Y I | X I )
p Y T X T Sup X Y
P X T Sup X
   
     

(4)
Công thức (4) cho biết độ tin cậy của luật X

Y có thể dễ dàng nhận được từ độ hỗ
trợ của X và XY. 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.
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:
26

()
()
Sup XYZW
conf
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).
Ví dụ, minh họa bài toán khai phá mẫu phổ biến tìm luật kết hợp
Cho tập mục I= {A,B,C,D,E,F} gồm 6 mục. Xét cơ sở giao dịch D với các giao dịch
có định danh TID ở bảng dưới đây (Giả sử min_sup = 50%, min_conf = 50%)
TID
Các mục hàng trong giỏ
10
A, B, C
20
A, C
30
A, D
40
B, E, F
Hình 2.1: Cơ sở dữ liệu giao dịch D
Duyệt cơ sở dữ liệu, dựa vào tần suất xuất hiện của các tập mục trong các giao dịch từ
01 đến 04, ta tìm được các tập mục phổ biến có độ hỗ trợ thỏa mãn min_sup (các tập
mục có độ hỗ trợ < min_sup được loại bỏ) như sau:
Tập các mục
Tần suất xuất hiện
Độ hỗ trợ (Support)
{A}
3
3/4=75%
{B}
2
2/4=50%
{C}
2
2/4=50%

{A, C}
2
2/4=50%
Hình 2.2: Tần xuất xuất hiện và độ hỗ trợ của các tập mục phổ biến
Luật A

C, ta có độ tin cậy và độ hỗ trợ lần lượt thỏa mãn min_sup và min_conf nên
luật này là luật mạnh:
Support(A

C) = P(AC) = support({A}{C}) =
2
4
= 50%
27

Confidence(A

C) = P(C|A) =
   
 
support( A C )
support {A}

=
2
3
=66.6%
Luật C


A, ta có độ tin cậy và độ hỗ trợ lần lượt thỏa mãn min_sup và min_conf nên
luật này là luật mạnh:
Support(C

A) = P(CA) = support({C}{A}) =
2
4
= 50%
Confidence(C

A) = P(A|C) =
   
 
support( C A )
support {C}

=
2
2
=100%
2.2.2 Giải thuật Apriori để sinh các luật kết hợp.
Apriori sử dụng phương pháp đệ quy được trong quá trình phát hiện luật kết
hợp, trong đó k-itemset được dùng để tìm (k+1)- itemsets.
Đầu tiên, 1- itemsets tập mục phổ biến có được bằng cách duyệt CSDL để đếm
các mục và lựa chọn các mục thỏa mãn độ hỗ trợ tối thiểu (min-sup). Kết quả thể hiện
bởi tập F
1
.
F
1

được dùng để tìm F
2
(có hai tập mục phổ biến), rồi sử dụng F
2
để tìm F
3
(3-
itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy.
Tính chất Apriori[9]: 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}.
Thuật toán được thực hiện qua hai bước cơ bản, bao gồm bước kết nối (join) và bước
cắt tỉa (prune).
- Bước kết nối (join): Tìm tập mục phổ biến L
k
từ tập ứng viên C
k
.
Tập ứng viên C
k
được sinh ra bằng cách kết nối L
k-1
với chính nó. Cho l
1
và l
2

là các tập mục thuộc L
k-1
. Ký hiệu li[j] để chỉ tập mục thứ j trong tập mục l

i
.
Theo quy ước, Apriori giả định các mục bên trong một giao dịch hoặc một tập
mục được sắp xếp theo thứ tự từ điển. Đối với (k-1)-tập mục, l
i
, có nghĩa là
các mục được sắp xếp theo thứ tự l
i
[1] < l
i
[2] < < l
i
[k-1]. Kết nối L
k-1
với L
k-1

được thực hiện như sau: các thành phần của L
k-1
được kết hợp nếu (k-2) mục
đầu tiên giống nhau. Ở đó, thành phần l
1
và l
2
của L
k-1
được kết hợp nếu (l
1
[1]
= l

2
[1] ∧ l
1
[2] = l
2
[2] ∧ … ∧ l
1
[k-2] = l
2
[k-2] ∧ l
1
[k-1] < l
2
[k-1]).
28

Điều kiện l
1
[k-1]<l
2
[k-1] chỉ đơn giản là đảm bảo rằng không có trùng lặp tạo
ra. Tập mục kết hợp được hình thành bằng cách kết hợp l
1
và l
2
là l
1
[1], l
1
[2],

…, l
1
[k-2], l
1
[k-1], l
2
[k-1].
- Bước tỉa (prune): Tập ứng viên C
k
là tập cha L
k
, các thành viên của nó có thể
phổ biến có k mục. duyệt CSDL để xác định số lượng các ứng viên sẽ xuất
hiện trong C
k
, nhưng số ứng viên này có thể rất lớn, vì vậy điều này có thể dẫn
đến việc tính toán khó khăn. Để giảm kích thước C
k
, tính chất Apriori được sử
dụng như sau: Nếu bất kỳ (k-1) tập con không phổ biến thì không thể là tập con
của k-tập mục phổ biến, do đó có thể xóa khỏi C
k
. Kiểm tra tập con này có thể
thực hiện nhanh chóng bằng cách duy trì một cây băm của tất cả các mục phổ
biến.
2.2.3 Mô tả thuật toá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) 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
)
(7) c.Count++;
(8) } // kết thúc lặp các giao dịch t

D
(9) F
k
= { c

C
k
| c.count

min_sup }

×