Tải bản đầy đủ (.pdf) (20 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 (980.92 KB, 20 trang )

1

Ứ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
An application of data mining techniques to analyze data telecommunications
to enhance the quality of customer service
NXB H. : ĐHCN, 2012 Số trang 78 tr. +

Lường Hồng Giang


Trường Đại học Công nghệ
Luận văn ThS ngành: Hệ Thống Thông Tin; Mã số: 60 48 05
Người hướng dẫn: PGS.TS.Nguyễn Hà Nam
Năm bảo vệ: 2012

Abstract: Tổng quan về khai phá dữ liệu: khai phá dữ liệu; Quá trình khai phá tri thức
trong cơ sở dữ liệu (CSDL); Các kỹ thuật tiếp cận trong khai phá dữ liệu; Kiến trúc của hệ
thống khai phá dữ liệu; Ứng dụng khai phá dữ liệu. Giới thiệu khai phá mẫu phổ biến, luật
kết hợp bao gồm: khái niệm về khai phá phổ biến và tổng quan về luật kết hợp. Lưu trữ dữ
liệu lớn dựa trên Oracle DBMS. Áp dụng Luật kết hợp vào Cơ Sở Dữ Liệu Oracle (đặc tả
bài toán, tính độ hỗ trợ, các ví dụ minh họa). Ứng dụng vào phân tích dữ liệu viễn thông
tại Beeline

Keywords: Công nghệ thông tin; Khai phá dữ liệu; Dữ liệu viễn thông; Phân tích dữ liệu;
Hệ thống thông tin

Content
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
2

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.
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.
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.
3

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.
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:


Hình 1.1: Khai phá dữ liệu là một bước trong quá trình khai phá tri thức
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).
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.
4


Hình 1.2: Kiến trúc của hệ thống khai phá dữ liệu
Ứ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 chính và thị trường chứng
khoá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.
Hướng tiếp cận của luận văn.
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.
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.
5

Giới thiệu khai phá mẫu phổ biến, luật kết hợp
Khái niệm về khai phá mẫu phổ biến
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
Ý 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.
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%]
Tổng quan về luật kết hợp
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  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)
 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)
6

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.
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

(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).
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 (F
1
)
b. Sử dụng F
k-1
nối (kết nối) F
k-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 (F
k

)
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
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
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.
7

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 }

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

F
k

Thuật toá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 F
1
có độ dài bằng 1. Từ bước 2 đến bước 10, F
k-1
được sử dụng
để sinh ứng viên C
k
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ố ứ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

F
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, F
k-1
được kết nối với

F
k-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)
(1) For (mỗi tập mục l
1


F
k-1
)
(2) For (mỗi tập mục l
2


F
k-1
)
(3) If ( 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] )
then {
(4) c = l
1
⋈ l
2
; // bước kết nối: sinh ứng viên
(5) If has_infrequent_subset (c, F
k-1
) then
(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

(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

F
k-1
then
(3) Return TRUE;
(4) Return FALSE;
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 toá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 toá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 toá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.
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 hoà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 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.
9

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 quá 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 toá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.
Áp dụng Luật kết hợp vào Cơ Sở Dữ Liệu Oracle
Đặ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.

10

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 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 (item
1
, item
2
, … ,item
k
, 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.
Sinh tập các ứng viên
Thực hiện phép nối giữa tập mục phổ biển F
k

Thuật toá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
(C
k
) có thể được sinh từ tất cả các tập mục phổ biến có độ dài bằng k-1 (F
k-1
). F
k-1
sẽ có k-1 cột:
Item
1
, Item
2
, …, Item
k-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}.
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 C
k
không tồn tại trong các tập mục phổ biến có độ dài bằng k-1 (F
k-1
) là được xóa
11

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 F
k-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 I
r

(3
<= r <= k) chúng ta sẽ kiểm tra item r-2 với điều kiện:
I1.item1 = Ir.item1 and

I1.itemr-3 = Ir.itemr-3 and
I1.itemr-1 = Ir.itemr-2 and

I1.itemk-1 = Ir.itemk-2 and
I2.itemk-1 = 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 (C
4
) là {1 2 3 4}.
12


Hình 4.4: Sinh và tỉa tập các ứng viên có độ dài k = 4
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 toán độ hỗ trợ, K-way (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
13


Hình 4.6: Mô hình cây tính độ hỗ trợ bằng phương pháp nối K-way
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
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
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
14

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;
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ử
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:
.
min_
.
SUBSETS count
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
15

(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
Ứ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 đề.
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.
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 C
k
và tập mục phổ
biến F
k
với độ hỗ trợ tương ứng.
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 table F1 as
select item item1, count(*) count
from transactions
group by item
having 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.
16

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.
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%
Phân tích dữ liệu kết quả thực nghiệm
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:

17


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
Xác định mối quan hệ dịch vụ gia tăng bằng phát hiện luật kết hợp.
Với dữ liệu gốc ban đầu đã có, chương trình phần mêm đề tài phát triển sẽ giúp phát hiện các
luật kết hợp. Với những tiêu chí khác nhau sẽ có các luật kết hợp khác nhau, phần tiếp theo của
luận văn sẽ đi vào phân tích cụ thể một số luật kết hợp này.
Chạy chương trình trên tập dữ liệu phục vụ phát hiện luật kết hợp với việc lựa chọn độ hỗ trợ
cực tiểu minSup = 0,01 (hay 1%) và độ tin cậy cực tiểu minConf = 0,8 (80%), đã nhận được 177
luật kết hợp (chi tiết xem Phụ lục, mục 5, kết quả phát hiện luật kết hợp), trong đó 5 luật có độ hỗ
trợ cao nhất được trình bầy ở dưới :
Luật 1: Local Incoming VC; SMS MO Beeline to SC
 Local Outgoing VC to Other Mobile
Với độ tin cậy và độ hỗ trợ là (98.55%, 2.01%)
18

Luật này chỉ ra rằng 2.01% những thuê bao sử dụng dịch vụ giá trị gia tăng gọi nội mạng, nhắn tin
đa phương tiện và gọi ngoại mạng trong tổng số các giao dịch. Nếu thuê bao sử dụng dịch vụ giá
trị gia tăng gọi nội mạng, nhắn tin đa phương tiện thì sẽ gọi ngoại mạng với độ tin cậy là 98.55%.
Luật 2: Local Outgoing VC to PSTN; Local Incoming VC
 Local Outgoing VC to Other Mobile
Với độ tin cậy và độ hỗ trợ là (99.27%, 6.04%)
Luật này chỉ ra rằng 6.04% những thuê bao sử dụng dịch vụ giá trị gia tăng gọi đến số cố định, gọi
nội mạng và gọi ngoại mạng trong tổng số các giao dịch. Nếu thuê bao sử dụng dịch vụ giá trị gia
tăng gọi đến số cố định, gọi nội mạng thì sẽ gọi ngoại mạng với độ tin cậy là 98.55%.

Luật 3 : Local Outgoing VC to PSTN; Local SMS to Other Mobile Local
 Outgoing VC to Other Mobile
Với độ tin cậy và độ hỗ trợ là (99.18%, 5.24%)
Luật này chỉ ra rằng 5.24% những thuê bao sử dụng dịch vụ giá trị gia tăng gọi đến số cố định,
nhắn tin ngoại mạng và gọi ngoại mạng trong tổng số các giao dịch. Nếu thuê bao sử dụng dịch vụ
giá trị gia tăng gọi đến số cố định, nhắn tin ngoại mạng thì sẽ gọi ngoại mạng với độ tin cậy là
99.18%. Như vậy cũng là điều dễ hiểu vì một thuê bao có thể nhắn tin ngoại mạng thì khả năng
gọi đến số ngoại mạng sẽ cao.
Luật 4 : Local SMS to Other Mobile
 Local Outgoing VC to Other Mobile
Với độ tin cậy và độ hỗ trợ là (95.25%, 10.64%)
Luật này chỉ ra rằng 10.64% những thuê bao sử dụng dịch vụ giá trị gia nhắn tin ngoại mạng và
gọi ngoại mạng trong tổng số các giao dịch. Nếu thuê bao sử dụng dịch vụ giá trị gia tăng nhắn tin
ngoại mạng thì sẽ gọi ngoại mạng với độ tin cậy là 95.25%. Như vậy cũng là điều dễ hiểu vì một
thuê bao có thể nhắn tin ngoại mạng thì khả năng gọi đến số ngoại mạng sẽ cao.
Luật 5: Local SMS to Other Mobile; GPRS Internet
 Local Outgoing VC to Other Mobile
Với độ tin cậy và độ hỗ trợ là (96.94%, 2.66%)
Luật này chỉ ra rằng 2.66% những thuê bao sử dụng dịch vụ giá trị gia nhắn tin ngoại mạng, sử
dụng dịch vụ GPRS và gọi ngoại mạng trong tổng số các giao dịch. Nếu thuê bao sử dụng dịch vụ
giá trị gia nhắn tin ngoại mạng và sử dụng dịch vụ GPRS thì khả năng sẽ gọi ngoại mạng với độ
tin cậy là 98.94%. Như vậy cũng là điều dễ hiểu vì một thuê bao có thể nhắn tin ngoại mạng và sử
dụng dịch vụ CPRS để vào mạng thì khả năng gọi đến số ngoại mạng sẽ cao.

19

Kết luận
Khoá luận đã trình bày tổng quan và các nét đặc trưng nhất trong lĩnh vực Data Mining bao
gồm các vấn đề cần khám phá tri thức, các hướng tiếp cận và nghiên cứu tiểu biểu, trong đó phát
hiện luật kết hợp là một phương pháp khám phá tri thức quan trọng trong khai phá dữ liệu có

nhiều ý nghĩa trong khoa học cũng như trong thực tiễn.
Về mặt lý thuyết, khai phá tri thức bao gồm các bước: Hình thành, xác định và định nghĩa bài
toán; thu thập và tiền xử lý dữ liệu; khai phá dữ liệu, rút ra các tri thức; sử dụng các tri thức phát
hiện được.
Về thuật toán khai phá tri thức, luận văn trình bày thuật toán Apriori và minh hoạ thuật toán
Apriori thực hiện phát hiện luật phổ biến trên CSDL quan hệ.
Về mặt cài đặt thử nghiệm, khoá luận giới thiệu kỹ thuật khai phá dữ liệu theo thuật toán
Apriori áp dụng vào bài toán phát hiện và dự báo mức độ sử dụng các dịch vụ gia tăng của viễn
thông.
Phát hiện luật kết hợp là kỹ thuật phát hiện thông tin, tri thức trên tập dữ liệu lớn hoặc rất lớn
nên ý nghĩa và độ tin cậy của các luật này càng cao nếu tập dữ liệu càng lớn, nói cách khác số
lượng các dịch vụ gia tăng được lựa chọn càng nhiều và dữ liệu chi tiết cuộc gọi càng dài về mặt
thời gian càng tốt. Tuy nhiên sự hạn chế về thời gian luận văn không thể đáp ứng được đòi hỏi
như vậy.
Số lượng các luật kết hợp nói chung là khá lớn và không tránh khỏi có một số luật kết hợp dư
thừa. Cho đến nay có rất nhiều nghiên cứu đề xuất giải pháp nhằm hạn chế sự dư thừa của luật
nhưng có thể nói chưa có giải pháp nào triệt để và cũng chưa có phần mềm nào hỗ trợ tốt về vấn
đề này. Người ta có thể khắc phục số lượng các luật kết hợp bằng cách tăng độ hỗ trợ cực tiểu và
độ tin cậy cực tiểu và luận văn đã thực hiện theo hướng này.
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 dịch vụ giá tri gia tăng được sử dụng được tìm
thấy thông qua luật kết hợp là rất đáng tin cậy.

References
Tiếng Việt:
1. Hà Quang Thụy, “Bài giảng cao học môn học Khai phá web”, Trường Đại học Công
nghệ, 2007.
2. Trần Văn Thiện, “Ứng dụng các kỹ thuật khai phá dữ liệu vào lĩnh vực viễn thông”. Học
viện bưu chính viễn thông, 2006.


3. Hoàng Hải Xanh, Các kỹ thuật phân cụm trong Data Mining, Luận văn, Đại Học Công
Nghệ - Đại học Quốc Gia Hà Nội.

20

Tiếng Anh:
4. Agrawal R., Mannila H., Srikant R., Toivonen H.; Fast Discovery of Association Rules.
Advances in Knowledge discovery and DataMining, edited by U.M. fayyad, G.Platstsky-
Shapiro, P.Smyth, and Uthurusamy, AAAI Press/The MIT Press,1996, pp.306-328.
5. Jiawei Han and Micheline Kamber (2001), Data Mining: Concepts and Techniques,
Hacours Science and Technology Company, USA.
6. Antonic M., Zaiane O. R.; Mining Positive and Negative Rules:
An Approach for Confined Rules, Proc. Intl.Conf on Principles and Practice of Knowledge
Discovery in Database, 2004, pp 27-38.
7. Cai C.H.; Mining Association Rules with Weighted Items, Thesis, Chinese University of
Hongkong, 8/1998.
8. Cornelis C., Yan P., Kang X., Chen G.; Mining Positive and Negative Association Rules
from Large Databases, 14244-023-6/06, 2006 IEEE.
9. Han J., and Fu Y.; Discovery of Multiple Level Association Rules from Large Databases;
Proc. of Inter. Conference on very large databases; Zurich, Swizerland, pp 420-431, Sep.
1995.
10. Kryszkiewicz M., Cichon K.; Support Oriented Discovery of Generalized Disjunction-Free
Representation of Frequent Patterns with Negation; PAKDD 2005, LNAI 3518, pp 672-
682, 2005.
11. Pasquier N., Bastide Y., Taouil R., and Lakhal L.; Efficient Mining of Association Rules
Using Closed Itemset Latics. Information Systems, Vol 24, No. 1, pp. 20-46, 1999.
12. Wang W., Yang J., Yu P.S.; Efficient Mining of Weighted Association Rules, IBM
Research Report RC 21692 (97734), March, 2000
13. GARY M. WEISS. Data mining in telecommunicaton. Department of computer and
information science, Fordham university

14. SEYYED JAMALEDDIN PISHVAYI. Customer Relationship Management. Tehran
University
15. Thomas S., Architectures and Optimizations for Integrating Data Mining Algorithms with
Database Systems, Ph.D. dissertation, University of Florida, Gainesville, 1998.
16. Frank Wang, Na Helian, A scanonce algorithm for large database mining implemented in
sql, London Metropolitan University, 166-220 Holloway Road, London N7 8DB, United
Kingdom.

×