Đề 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ư
Trang 14
MỤC LỤC
Chương 1 Mở đầu 12
1.1 Khai phá dữ liệu 12
1.2 Quá trình khai phá tri thức trong cơ sở dữ liệu 12
1.3 Các kỹ thuật tiếp cận trong khai phá dữ liệu 14
1.4 Kiến trúc của hệ thống khai phá dữ liệu 15
1.5 Ứng dụng của khai phá dữ liệu 17
1.6 Hướng tiếp cận của luận văn 17
1.6.1 Ứng dụng quản lý và chăm sóc khách hàng 18
1.6.2 Hướng nghiên cứu của đề tài 19
Chương 2 Giới thiệu khai phá mẫu phổ biến, luật kết hợp 21
2.1 Khái niệm về khai phá mẫu phổ biến 21
2.1.1 Mẫu phổ biến 21
2.1.2 Ý nghĩa của khai phá mẫu phổ biến 21
2.1.3 Bài toán thực tế 22
2.2 Tổng quan về luật kết hợp 24
2.2.1 Khái niệm luật kết hợp 24
2.2.2 Giải thuật Apriori để sinh các luật kết hợp 27
2.2.3 Mô tả thuật toán Apriori dưới dạng giả mã 28
2.2.4 Ví dụ minh họa thuật toán Apriori 30
2.2.5 Một số kỹ thuật cải tiến thuật toán Apriori 34
Chương 3 Lưu trữ dữ liệu lớn dựa trên Oracle DBMS 38
3.1 Giới thiệu hệ quản trị CSDL Oracle 38
3.2 Phương pháp tiếp cận và kiến trúc 41
3.3 Giới hạn trong CSDL Oracle 44
Trang 25
Chương 4 Phân tích Luật kết hợp dựa trên Cơ Sở Dữ Liệu Oracle 45
4.1 Đặc tả bài toán 45
4.2 Sinh tập các ứng viên 46
4.2.1 Thực hiện phép nối giữa tập mục phổ biển Fk 46
4.2.2 Thực hiện bước tỉa loại bỏ ứng viên không có lợi 47
4.3 Tính độ hỗ trợ 49
4.4 Sinh các luật kết hợp từ các tập mục phổ biến 50
4.4.1 Kết hợp các tập mục phổ biến có độ dài từ 1 đến k 50
4.4.2 Sinh các tập con bảng tập mục phổ biến FISETS 51
4.4.3 Sinh các luật kết hợp 52
4.5 Ví dụ minh họa 53
Chương 5 Ứng dụng vào phân tích dữ liệu viễn thông tại Beeline 56
5.1 Mô tả và chuyển đổi dữ liệu 56
5.1.1 Mô tả các bảng dữ liệu 56
5.1.2 Các bước chuyển đổi dữ liệu 56
5.2 Xây dựng hệ thống thực nghiệm 58
5.2.1 Sinh tập các ứng viên và tính độ hỗ trợ 59
5.2.2 Sinh các luật kết hợp từ các tập mục phổ biến 60
5.3 Phân tích dữ liệu kết quả thực nghiệm 61
5.3.1 Mật độ phân bố luật kết hợp trên độ hỗ trợ và độ tin cậy 61
5.3.2 Xác định mối quan hệ giữa các dịch vụ gia tăng 62
Kết luận 64
Tài liệu tham khảo 65
Trang 36
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 (F1) 31
Hình 2.5: Duyệt CSDL tìm các tập mục phổ biến 2-Itemset (F2) 31
Hình 2.6: Duyệt CSDL tìm các tập mục phổ biến 3-Itemset (F3) 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 H2, 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
Trang 47
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
Trang 58
PHỤ LỤC
Phụ lục A: Danh sách các thủ tục, hàm của ứng dụng 67Phụ lục B: Danh sách các bảng dữ liệu 71Phụ lục C: Kết quả phát hiện luật kết hợp 74
Trang 69
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)
Trang 710
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
Trang 811
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
Trang 912
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]:
Trang 1013
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
Trang 1114
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ó
Trang 1215
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ó
Trang 1316
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
Trang 1417
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
Trang 1518
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à
Trang 16dữ 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ả
Trang 17Cá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
Trang 1821
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
Trang 19 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
Trang 2023
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)
Trang 2124
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
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 XY là một “luật kết hợp” nếu X I, Y
Trang 2225
Luật kết hợp XY có độ hỗ trợ (support) s trong CSDL giao dịch D nếu trong
D có s% các giao dịch T chứa XY: chính là xác suất P(XY)
Support (XY) = P(XY) : 1 s (XY) 0 (2)
Luật kết hợp XY có độ tin cậy (confidence) c trong CSDL D nếu như trong
D có c% các giao dịch T chứa X thì cũng chứa Y: chính là xác suất P(X|Y) Confidence (XY) = P(X|Y) : 1 c (XY) 0 (3)
Luật XY được gọi là đảm bảo độ hỗ trợ s trong D nếu s(XY) s Luật XY được gọi là đảm bảo độ tin cậy c trong D nếu c(XY) c Luật thỏa mãn cả hai ngưỡng hỗ trợ tối thiểu (min_sup) và ngưỡng tin cậy tối thiểu (min_conf) được gọi là luật mạnh Độ hỗ trợ và độ tin cậy nhận giá trị trong khoảng từ 0% đến 100% hoặc từ
0.0 đến 1.0 giá trị min_sup và min_conf được xác định bởi người dùng hoặc chuyên
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:
Trang 2326
Sup XYZW conf
Sup XY
Nếu conf ≥ min_conf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì XYZW là phổ biến)
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%)
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%
Trang 242.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 F1
F1 được dùng để tìm F2 (có hai tập mục phổ biến), rồi sử dụng F2 để tìm F3 itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy
(3-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 Lk từ tập ứng viên Ck
Tập ứng viên Ck được sinh ra bằng cách kết nối Lk-1 với chính nó Cho l1 và l2
là các tập mục thuộc Lk-1 Ký hiệu li[j] để chỉ tập mục thứ j trong tập mục li 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, li , có nghĩa là các mục được sắp xếp theo thứ tự li[1] < li[2] < < li[k-1] Kết nối Lk-1 với Lk-1được thực hiện như sau: các thành phần của Lk-1 được kết hợp nếu (k-2) mục đầu tiên giống nhau Ở đó, thành phần l1 và l2 của Lk-1 được kết hợp nếu (l1[1]
= l2[1] ∧ l1[2] = l2[2] ∧ … ∧ l1[k-2] = l2[k-2] ∧ l1[k-1] < l2[k-1])
Trang 25dụ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 Ck 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) F1 = {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) Ct = ( c Ck| 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 Ct)
(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 }
Trang 26số ứng viên của mỗi giao dịch được tính (bước 6 và 7) Cuối cùng, tất cả các ứng viên đáp ứng độ hỗ trợ tối thiểu (bước 9) cấu thành lên tập mục phổ biến kF
k (bước 11) Thủ tục được gọi sau đó để sinh luật kết hợp từ tập mục phổ biến
Thủ tục Apriori_gen thực hiện kết nối và cắt tỉa Trong thành phần kết nối, Fk-1được kết nối với Fk-1 để sinh các ứng viên tiềm năng (bước 1 đến bước 4) Thành phần tỉa (bước 5 đến bước 7) dựa vào tính chất Apriori để loại bỏ các ứng viên mà có tập con không phổ biến Thủ tục has_infrequent_subset dùng để kiểm tra các tập con không phổ biến
Procedure Apriori_gen (F k-1 : tập mục phổ biến có độ dài k-1)
(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, Fk-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) }
(9) Return C k ;
Trang 2730
Procedure has_infrequent_subset (c: ứng viên, F k-1 : tập các tập phổ biến có độ dài (k-1));
(1) For (mỗi (k-1) – tập con s của c)
(2) If s Fk-1 then
(3) Return TRUE;
(4) Return FALSE;
2.2.4 Ví dụ minh họa thuật toán Apriori
Xét CSDL giao dịch D được cho trong bảng sau:
Bao gồm 9 giao dịch với độ hỗ trợ tối thiểu là 2, nghĩa là min_sup = 2/9 = 22 %, độ tin cậy tối thiểu là 70%
Giả sử độ hỗ trợ cực tiểu là Minsup = 2/9*100% = 22% Khi đó tập mục phổ biến 1-Itemset (F1), được xác định như sau: F1 bao gồm tất cả các ứng viên thuộc C1thoả mãn độ hỗ trợ tối thiểu Trong ví dụ này tất cả các ứng viên trong C1 đều thỏa mãn độ hỗ trợ tối thiểu (đều lớn hơn 2)
Trang 2831
Hình 2.4: Duyệt CSDL tìm các tập mục phổ biến 1-Itemset (F1)
Tìm ra các tập mục phổ biến 2-Itemset (F2), thuật toán sử dụng kết nối F1 với
F1 để sinh ra tập ứng cử 2-Itemset (C2) C2 bao gồm tổ hợp chập lj[i] của các phần tử
có trong F1 do đó số lượng các phần tử của C2 được tính như sau:
|C2| = C2
| 1|F = C2
5=
!3
!2
!5
= 10 Tiếp theo, quét các giao dịch trong D và tính độ hỗ trợ của các tập ứng cử trong
C2 Tập mục phổ biến 2-Itemset F2 được xác định, bao gồm các tập mục 2-Itemset là ứng viên trong C2 có độ hỗ trợ lớn hơn hoặc bằng độ hỗ trợ tối thiểu Minsup
Hình 2.5: Duyệt CSDL tìm các tập mục phổ biến 2-Itemset (F2)
Sinh các tập ứng cử 3-Itemset, C3 bằng cách, kết nối F2 với chính nó ta nhận được kết quả C3 là:
C3 = {{I1, I2, I3}, {I1, I2, I5}, {I1, I3, I5}, {I2, I3, I4}, {I2, I3, I5}, {I2, I4, I5}}
Trang 2932
Sử dụng tính chất Apriori để tỉa bớt các ứng cử: Tất cả các tập con của tập phổ biến là tập phổ biến Do đó 4 ứng cử viên của tập C3 không thể là tập phổ biến vì nó chứa các tập không phổ biến, ta thực hiện tỉa (loại) bốn tập ứng cử viên đó khỏi C3
Việc tỉa bớt các tập ứng cử này sẽ làm giảm bớt việc phải quét CSDL để tính
độ hỗ trợ khi xác định F3 Lưu ý rằng, với ứng cử k-Itemset, chúng ta chỉ cần kiểm tra tập con (k-1)-Itemset có là phổ biến hay không? Vì thuật toán Apriori sử dụng chiến lược tìm kiếm theo chiều rộng
Như vậy sau khi thực hiện kết nối và tỉa ta thu được kết tập C3 là:
Trang 30Hình 2.7: Kết quả thực hiện thuật toán Aprori cho CSDL D Chúng ta có thể sinh ra các tập luật kết hợp từ các tập mục phổ biến với độ tin cậy tối thiểu là 70%
Trang 3134
2.2.5 Một số kỹ thuật cải tiến thuật toán Apriori
Apriori là một thuật toán khá hiệu quả trong việc tìm kiếm tập mục phổ biến, tuy nhiên thuật toán này còn tồn đọng một số vấn đề như:
Phải duyệt CSDL nhiều lần, do mỗi lần sinh tập mục ứng viên phải duyệt CSDL một lần
Chưa tối ưu hóa được tập các ứng viên, vì thế số lượng các ứng viên trong tập mục là khá lớn
Hai vấn đề này làm tăng chi phí khi thực hiện thuật toán Có nhiều cải tiến của thuật toán Apriori được đề xuất để nâng cao hiệu quả của thuật toán ban đầu Một số cải tiến đó được tóm lược như sau[9]:
(1) Kỹ thuật dựa trên bảng băm (hash-based technique): Thực hiện băm các
tập mục thành các nhóm tương ứng Kĩ thuật hàm băm có thể được dùng để
giảm kích thước của k-tập mục ứng viên, C k , với k > 1
Ví dụ, khi quét mỗi giao dịch trong CSDL để sinh tập mục phổ biến itemset F1 từ tập các ứng viên C1, chúng ta có thể sinh tất cả các tập mục phổ biến F2 với mỗi giao dịch, băm chúng vào các nhóm khác nhau trong cấu trúc
1-bảng băm, và tăng số đếm các nhóm tương ứng Một tập mục có độ dài
2-itemsets tương ứng với nhóm có số đếm 2 trong bảng băm dưới mức ngưỡng
độ hỗ trợ tối thiểu thì không thể là phổ biến và vì vậy có thể loại bỏ khỏi tập
ứng viên Kỹ thuật dựa trên bảng băm có thể giảm số lượng ứng viên tập
k-item được (đặc biệt khi k = 2)
Hình 2.8: Bảng băm H2, với tập mục ứng viên 2-item
Trang 3235
Bảng băm này được sinh bằng cách duyệt các giao dịch trong CSDL khi xác định tập F1 từ C1 Nếu độ hỗ trợ tối thiểu bằng 3, thì các tập mục trong các nhóm 0, 1, 3, và 4 không thể là phổ biến và do vậy chúng không thể có trong
C2
(2) Giảm số lần quét giao dịch (transaction reduction): Giảm số lượng giao
dịch phải duyệt ở lần lặp tiếp theo Một giao dịch không chứa tập mục phổ
biến k-item nào thì cũng không thể chứa tập phổ biến k+1-item Do đó, một
giao dịch thật sự có thể được đánh dấu hoặc loại bỏ trong lần duyệt CSDL
tiếp theo với các tập mục j-item, với j > k, sẽ không cần đến nó nữa
(3) Phân hoạch (partitioning): Phân chia dữ liệu để tìm tập mục ứng viên
k-item Kỹ thuật phân hoạch chỉ duyệt CSDL hai lần để khai phá tập mục phổ
biến Kỹ thuật này bao gồm hai giai đoạn
Trong giai đoạn I, thuật toán chia nhỏ tập giao dịch của D thành n phân vùng không giao nhau Nếu ngưỡng độ hỗ trợ tối thiểu cảu các giao dịch trong D là min_sup, thì độ hỗ trợ đối với một phân vùng là min_sup số giao dịch trong phân vùng đó Với mỗi phân vùng, tất cả các tập mục phổ biến bên trong
phân vùng đó được tìm thấy, gọi là tập mục phổ biến địa phương Thủ tục sử dụng cấu trúc dữ liệu đặc biệt đó là, đối với mỗi tập mục, lưu trữ các định danh TID của các giao dịch chứa các mục trong tập mục Điều này cho phép
tìm kiếm tất các tập phổ biến cục bộ k-item, với k = 1, 2, …, chỉ trong một
lần duyệt CSDL
Trang 3336
Hình 2.9: Khai thác bằng cách phân hoạch dữ liệu
Một tập mục phổ biến địa phương có thể hoặc không phổ biến đối với toàn
bộ CSDL D Bất kỳ tập mục phổ biến đối với CSDL D phải là một tập mục phổ biến trong ít nhất một trong những phân vùng Do đó, tất cả các tập mục phổ biến địa phương là tập mục ứng cử viên đối với D Việc thu thập các tập mục phổ biến từ tất cả phân vùng chuyển thành tập mục ứng viên toàn cục đối với D
Trong giai đoạn II, lần duyệt CSDL D thứ hai được tiến hành với độ hỗ trợ thực tế của mỗi ứng viên được đánh giá theo thứ tự để xác định tập mục phổ biến toàn cục Kích thước phân vùng và số phân vùng được thiết lập sao cho mỗi phân vùng có thể vừa vặn với bộ nhớ chính và do đó được đọc một lần duy nhất ở mỗi phần
(4) Lấy mẫu (sampling): Khai phá trên một tập con của dữ liệu cho trước Ý
tưởng cơ bản của cách tiếp cận này là chọn ngẫu nhiên một mẫu S của CSDL
D, và rồi tìm các tập mục phổ biến trong S thay vì D Kích thước mẫu của S phải đảm bảo để tìm kiếm tập mục phổ biến trong S có thể thực hiện trong bộ nhớ chính và cũng chỉ cần một lần duyệt toàn bộ các giao dịch trong S Bởi vì chúng ta tìm kiếm các tập mục phổ biến trong S thay vì trong D, nên có khả năng chúng ta sẽ bỏ lỡ một số tập mục phổ biến toàn cục Để làm giảm bớt việc bỏ lỡ các tập mục phổ biến chúng ta sử dụng ngưỡng độ hỗ trợ thấp hơn
độ hỗ trợ tối thiểu để tìm các tập mục phổ biến địa phương cho S (kí hiệu Ls
) Phần còn lại của CSDL sau đó được dùng để tính toán tần suất thực tế của mỗi tập mục trong Ls Một kỹ thuật dùng để xác định có tất cả các tập mục phổ biến toàn cục có trong Ls không Nếu Ls thật sự chứa tất cả các tập mục phổ biến trong D, thì chỉ cần một lần duyệt D Nếu không, lần thứ hai có thể
thực hiện để tìm các tập mục phổ biến mà bỏ lỡ trong lần duyệt thứ nhất (5) Đếm tập mục động (dynamic itemset counting): Thêm tập mục ứng viên
tại các thời điểm khác nhau trong quá trình duyệt CSDL Một kỹ thuật đếm tập mục động được đề xuất trong CSDL là được phân vùng thành các khối
Trang 3437
được đánh dấu bởi các điểm bắt đầu Trong cải tiến này, tập mục ứng viên mới có thể được thêm vào tại một vài thời điểm bắt đầu, không giống như Apriori, xác định các tập ứng viên mới chỉ ngay lúc trước mỗi lần quét toàn
bộ CSDL Kỹ thuật sẽ đánh giá độ hỗ trợ của toàn bộ tập mục đã được đếm cho tới lúc này, thêm ứng viên mới các tập item phổ biến nếu tất cả các tập con của chúng được đánh giá là phổ biến Thuật toán thu được đòi hỏi số lần quét cơ sở dữ liệu ít hơn Apriori
Trang 3538
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 toán và tối ưu hóa làm việc trên hệ thống tập tin truyền thống, chứ không phải là một hệ quản trị CSDL, 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 KPDL vào một hệ quản trị CSDL sẽ mang lại khó khăn trên nền tảng mô hình quan 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 hệ quản trị CSDL ra tập tin truyền thống sau đó mới đưa vào công cụ KPDL, để 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
Dựa trên ngôn ngữ truy vấn SQL và các hàm định nghĩa trực tiếp bởi người dùng User-Defined Functions (UDFs) có thể phân tích các bảng dữ liệu quan hệ để tính toán các mô hình thống kê và được lưu trữ như các bảng quan hệ 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 tập tin tryền thống
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 hệ quản trị CSDL quan hệ, chú ý đến các bộ dữ liệu lớn Hệ quản trị CSDL 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
Trang 3639
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 Một số sản phẩm và công cụ tích hợp trong hệ quản trị cơ sở dữ liệu Oracle:
1 SQL: Là ngôn ngữ dùng để truy xuất cơ sở dữ liệu quan hệ, kể cả Oracle Có thể được dùng với mỗi công cụ Oracle khi có yêu cầu truy xuất dữ liệu
2 PL/SQL: Là ngôn ngữ thủ tục Oracle để viết các ứng dụng xử lý và thao tác dữ liệu bên ngoài CSDL Có thể bao gồm một tập con các lệnh SQL khi có yêu cầu truy xuất dữ liệu Sẵn có trong Oracle Server
3 Thủ tục lưu trữ (Stored procedures): Là các hàm hay các thủ tục, đây là một tập hợp các câu lệnh SQL và PL/SQL Sau khi Stored procedures được biên dịch, nó
sẽ được gán tên và có thể thực hiện trực tiếp mà không cần phải biên dịch lại thêm bất cứ một lần nào nữa Các functions và procedures cho phép sử dụng tham số dưới dạng tham số vào (IN) và tham số ra (OUT) hoặc cũng có thể sử dụng tham
số vừa vào vừa ra (IN OUT) Theo mặc định, các tham số được xác định ở chế độ vào IN Một số ưu điểm của hệ quản trị CSDL quan hệ là:
a Các Stored procedures được nạp sẵn vào bộ nhớ, do đó có thể giảm bớt việc truy xuất đĩa khi thực hiện thủ tục
b Đảm bảo an toàn cho dữ liệu, ngăn không cho các users truy cập trực tiếp vào dữ liệu mà phải thông qua các thủ tục và hàm giao tiếp đã được cung cấp
c Cho phép nhiều users có thể cùng sử dụng các bản sao của Stored procedures để thực hiện
Trang 3740
4 Packages chuẩn: Một packages thông thường gồm hai phần: specification (phần đặc tả hay còn gọi là phần khai báo) và body (phần thân) Chúng được lưu riêng biệt trong cùng một database
a Phần specification là phần giao tiếp với các ứng dụng Phần này chứa các lời khai báo, các kiểu, biến, hằng, exceptions, cursors, và các khai báo hàm
5 Index (chỉ mục): Index của Bảng được tạo ra nhằm tăng tốc độ truy xuất, tăng hiệu quả của tính duy nhất trên một hoặc một tập của cột
6 Table partitioning (Phân khu trong bảng dữ liệu): Kỹ thuật phân chia bảng thành từng khu (Table partitioning) nhằm quản lý hiệu quả cơ sở dữ liệu với dung lượng lớn và các bảng trong CSDL có số lượng truy cập lớn và đồng thời với các mục đích:
a Khi một câu lệnh chỉ cần lấy dữ liệu ở một khu nào đó thì hệ thống chỉ cần truy nhập vào khu đó và bỏ qua các khu còn lại
b Khi các khu dữ liệu được lưu trữ ở các ổ cứng khác nhau sẽ làm giảm tranh chấp vào/ra giữa các câu lệnh Ví dụ hai câu lệnh SELECT và UPDATE hoạt động trên cùng một bảng nhưng ở hai khu khác nhau có thể thực hiện hoàn toàn song song với nhau