SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Downloaden Sie, um offline zu lesen
Chuyên Đề Công Nghệ Phần Mềm
Tên đề tài:
TÌM HIỂU VÀ THỬ NGHIỆM THUẬT TOÁN KHAI
PHÁ DỮ LIỆU GSP
Giảng viên hướng dẫn: Nguyễn Mạnh Sơn
Họ và tên sinh viên: Lại Thế Quyền
Quách Văn Phong
Cấn Quang Hưng
Lớp : L14CNPM
MỤC LỤC
1.Khai phá dữ liệu............................................................................................................................4
1.1Tại sao lại khai phá dữ liệu?...............................................................................4
1.2 Định nghĩa khai phá dữ liệu...............................................................................5
1.3 Các bước chính trong khám phá tri thức...........................................................6
2. Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu.........................................7
2.1 Các hướng tiếp cận và các kỹ thuật chính trong khai phá dữ liệu....................7
2.1 Các dạng dữ liệu có thể khai phá.......................................................................8
3. Ứng dụng của Khai phá dữ liệu..................................................................................................8
1. Giới thiệu chung về luật kết hợp.................................................................................................9
1.1 Khái niệm luật kết hợp.......................................................................................9
1.2 Các ứng dụng điển hình của luật kết hợp........................................................10
2.Luật dãy.......................................................................................................................................11
2.1 Khái niệm luật dãy và ví dụ............................................................................11
2.2 Một số ứng dụng...............................................................................................13
Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY................................16
1.Khái quát về khai phá luật dãy...................................................................................................16
2.Thuật toán GSP (Generalized Sequential Patterns)...................................................................18
2
Giới thiệu đề tài
Khai phá mẫu dãy là một nội dung quan trọng trong khai phá dữ liệu với nhiều ứng dụng
rộng rãi như phân tích thị trường, phân tích mẫu truy cập web, phát hiện xâm nhập trong
môi trường mạng, trong nghiên cứu DNA, dự doán nhu cầu mua sắm của khách hàng…
Khai phá mẫu dãy là việc phát hiện các dãy con phổ biến trong cơ sở dữ liệu dãy. Theo
các nghiên cứu, các thuật toán, khai phá mẫu dãy chủ yếu tập chung vào hai nội dung là
cách thức mà dãy ứng viên được sinh ra và lưu trữ, cách mà độ hỗ trợ được tính và tần
suất dãy ứng viên được kiểm tra. Dựa vào các tiêu chí trên, thuật toán khai phá mẫu dãy
có thể được nhóm thành hai hướng tiếp cận chính: thuật toán dựa trên Aproori, thuật
toán pháy triển mẫu. Có một số thuật toán theo phương pháp tiếp cận dựa trên Apriori
như AprioriAll, GSP, Spade, Spam… và các biến thể của chúng.
3
Chương I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1. Khai phá dữ liệu
1.1 Tại sao lại khai phá dữ liệu?
Hơn một thập niên trở lại đây, lượng thông tin được lưu trữ trên các thiết bị điện
tử (đĩa cứng, CD-ROM, băng từ, .v.v.) không ngừng tăng lên. Sự tích lũy dữ liệu này
xảy ra với một tốc độ bùng nổ. Người ta ước đoán rằng, lượng thông tin trên toàn cầu
tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các CSDL
cũng tăng lên một cách nhanh chóng [AR95].
Hình 1 - Lượng dữ liệu được tích lũy tăng mạnh theo thời gian
Chúng ta quả thực đang “ngập” trong dữ liệu, nhưng lại cảm thấy “đói” tri
thức và thông tin hữu ích. Lượng dữ liệu khổng lồ này thực sự là một nguồn “tài
nguyên” rất giá trị bởi thông tin là yếu tố then chốt trong hoạt động kinh doanh vì nó
giúp những người điều hành và quản lý có một cái nhìn sâu sắc, chính xác, khách
quan vào tiến trình kinh doanh trước khi ra quyết định. KPDL – khai thác những
thông tin tiềm ẩn có tính dự đoán từ những CSDL lớn – là một hướng tiếp cận mới
với khả năng giúp các công ty chú trọng vào những thông tin có nhiều ý nghĩa từ
những tập hợp dữ liệu lớn (databases, data warehouses, data repositories) mang tính
lịch sử. Những công cụ KPDL có thể dự đoán những xu hướng trong tương lai và
do đó cho phép doanh nghiệp ra những quyết định kịp thời được định hướng bởi tri
thức mà KPDL đem lại. Sự phân tích dữ liệu một cách tự động và mang tính dự báo
của KPDL có ưu thế hơn hẳn so với sự phân tích thông thường dựa trên những sự
kiện trong quá khứ của các hệ hỗ trợ ra quyết định (decision support systems -
DSSs) truyền thống trước đây. Công cụ KPDL cũng có thể trả lời những câu hỏi
trong lĩnh vực kinh doanh mà trước đây được xem là tốn nhiều thời gian để xử lý.
Với tất cả những ưu thế trên, KPDL đã chứng tỏ được tính hữu dụng của nó trong môi
4
trường kinh doanh đầy tính cạnh tranh ngày nay. Giờ đây, KPDL đã và đang trở
thành một trong những hướng nghiên cứu chính của lĩnh vực khoa học máy tính và
công nghệ tri thức.
Phạm vi ứng dụng ban đầu của KPDL chỉ là trong lĩnh vực thương mại (bán lẻ)
và tài chính (thị trường chứng khoán). Nhưng ngày nay, KPDL đã được ứng dụng
rộng rãi trong các lĩnh vực khác như tin-sinh (bio-informatics), điều trị y học (medical
treatment), viễn thông (telecommunication), giáo dục (education), .v.v.
1.2 Định nghĩa khai phá dữ liệu
Chúng ta có thể hiểu một cách sơ lược rằng KPDL là quá trình tìm kiếm những
thông tin (tri thức) hữu ích, tiềm ẩn và mang tính dự báo trong các tập dữ liệu lớn.
Như vậy, chúng ta nên gọi quá trình này là khám phá tri thức (Knowledge
Discovery in Databases – KDD) thay vì là KPDL. Tuy nhiên các nhà khoa học
trong lĩnh vực này đồng ý với nhau rằng hai thuật ngữ trên là tương đương và có thể
thay thế cho nhau. Họ lý giải rằng, mục đích chính của quá trình khám phá tri thức là
thông tin và tri thức có ích, nhưng đối tượng mà chúng ta phải xử lý rất nhiều trong
suốt quá trình đó lại chính là dữ liệu.
Mặt khác, khi chia các bước trong quá trình khám phá tri thức, một số nhà
nghiên cứu lại cho rằng, KPDL chỉ là một bước trong quá trình khám phá tri thức
[FSSU96].
Như vậy, khi xét ở mức tổng quan thì hai thuật ngữ này là tương đương nhau,
nhưng khi xét cụ thể thì KPDL được xem là một bước trong quá trình khám phá tri
thức.
Có rất nhiều định nghĩa về KPDL, các định nghĩa này đều là những định nghĩa
mang tính mô tả. Xin trích một vài định nghĩa ở nguyên bản tiếng Anh nhằm chuyển
tải được y nguyên ý của tác giả và tránh được những sai sót chủ quan:
Định nghĩa 1. William J Frawley, Gregory Piatetsky-Shapiro, và Christopher J
Matheus 1991 [FSSU96]:
“Knowledge discovery in databases, also known Data mining, is the non-
trivial process of identifying valid, novel, potentially useful, and ultimately
understandable patterns in data.”
Định nghĩa 2. Marcel Holshemier và Arno Siebes (1994):
5
“Data Mining is the search for relationships and global patterns that exist in
large databases but are ‘hidden’ among the vast amount of data, such as a
relationship between patient data and their medical diagnosis. These relationships
represent valuable knowledge about the database and the objects in the database
and, if the database is a faithful mirror, of the real world registered by the
database.”
1.3 Các bước chính trong khám phá tri thức
Người ta thường chia quá trình khám phá tri thức thành các bước sau [AR95]
[MM00] [HK02]:
• 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.
• 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.
• Biến đổi dữ liệu (data transformation): đây 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.
• KPDL (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều
là các kỹ thuật của machine learning) để khai phá, trích chọn được những
mẫu (patterns) thông tin, những mối liên hệ (relationships) đặ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.
• Biểu diễn và đánh giá tri thức (knowledge representation & evaluation):
những mẫu thông tin và mối liên hệ trong dữ liệu đã được khai 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, .v.v. Đồ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.
6
Hình 2 - Các bước trong quá trình khám phá tri thức (KDD)
2. Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu
2.1 Các hướng tiếp cận và các kỹ thuật chính trong khai phá dữ liệu
Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các
bài toán khác nhau. Sau đây là một số hướng tiếp cận chính [HK02].
• Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào
một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu
thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine
learning như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural
network), .v.v. Phân lớp còn được gọi là học có giám sát (học có thầy –
supervised learning).
• Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá
đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80%
trong số họ sẽ mua thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều
trong lĩnh vực kinh doanh, y học, tin-sinh, tài chính & thị trường chứng
khoán, .v.v.
• Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự như
khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng
tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường
chứng khoán vì nó có tính dự báo cao.
• Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm (số
lượng cũng như tên của cụm chưa được biết trước. Phân cụm còn được gọi
là học không giám sát (học không có thầy – unsupervised learning).
• Mô tả khái niệm (concept description & summarization): thiên về mô tả,
7
tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản.
2.1 Các dạng dữ liệu có thể khai phá
Do KPDL được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ
liệu khác nhau [HK02]. Sau đây là một số kiểu dữ liệu điển hình.
• CSDL quan hệ (relational databases)
• CSDL quan hệ - hướng đối tượng (object-relational databases)
• CSDL đa phương tiện (multimedia databases) như âm thanh (audio), hình
ảnh (image), phim ảnh (video), .v.v.
• Dữ liệu Text và Web (text database & www)
• ……
3. Ứng dụng của Khai phá dữ liệu
KPDL tuy là một lĩnh vực mới nhưng thu hút được rất nhiều sự quan tâm của các
nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Chúng ta có thể liệt kê ra
đây một số ứng dụng điển hình:
• Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)
• Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán và
phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẩu thuật, …).
• 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, .v.v.
• Tin-sinh (bio-informatics): tìm kiếm, đối sánh các hệ gene và thông tin di
truyền, mối liên hệ giữa một số hệ gene và một số bệnh di truyền, .v.v.
• Tài chính và thị trường chứng khoán (finance & stock market): 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, .v.v.
• Bảo hiểm (insurance)
 .v.v.
8
Chương II: KHÁI QUÁT CHUNG VỀ LUẬT KẾT HỢP, LUẬT
DÃY VÀ KHAI PHÁ LUẬT DÃY
Khai phá luật dãy là một chủ đề thiết thực và quan trọng trong khai phá dữ liệu
với nhiều ứng dụng như là trong phân tích giao dịch mua hàng của khách hàng, khai
thác weblogs, khai thác các dãy ADN, nghiên cứu dữ liệu trong các bài toán khí tượng
- thủy văn như dự báo thời tiết, các thảm họa tự nhiên như động đất, sóng thần...
Các thuật toán khai phá luật dãy kế thừa nhiều từ các thuật toán khai phá luật kết
hợp, và nhiều thuật toán trong số đó là mở rộng của các thuật toán khởi thủy, ở đó sự
khác biệt chính là trong khai phá luật dãy đưa ra các phân tích liên giao dịch (inter-
transaction), trong khi đó khai phá luật kết hợp là tìm luật về mối liên quan giữa các
phần tử trong cùng một giao dịch (intra- transaction). Trước tiên, ta cần tìm hiểu một
số vấn đề của luật kết hợp.
1. Giới thiệu chung về luật kết hợp
1.1 Khái niệm luật kết hợp
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là
tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu. Nội dung cơ bản
của luật kết hợp được tóm tắt như dưới đây.
Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn.
T = {t1, t2, …, tn}. T gọi là cơ sở dữ liệu giao dịch (Transaction Database). Mỗi giao
dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im}. Một itemset gồm k items gọi là k-itemset
Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan
(correlation) giữa các items. Những luật kết hợp này có dạng X =>Y
Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các
mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. (X và Y gọi là itemset).
Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X
=>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường
mua Cherry và Durian.
Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y
được xem là biến phụ thuộc (Dependent variable)
Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo lường luật kết
hợp.
Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các
items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa là 5% các
giao dịch X và Y được mua cùng nhau.
Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X. Ví
dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% khách hàng
mua Apple cũng mua Banana.
9
Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support
(min_sup) và minimum confidence (min_conf)
Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng) cả
Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rle)
Minimum support và Minimum confidence gọi là các giá trị ngưỡng (threshold) và
phải xác định trước khi sinh các luật kết hợp.
Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent itemsets
Một số loại luật kết hợp
Binary association rules (luật kết hợp nhị phân): Apple => Banana
Quantitative association rules (luật kết hợp định lượng):
weight in [70kg – 90kg] => height in [170cm – 190cm]
Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY => height in TALL
Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary association rules.
1.2 Các ứng dụng điển hình của luật kết hợp
Một số ứng dụng điển hình như: phân tích giỏ hàng (market basket analysis), đưa
ra chiến lược tiếp thị, thiết kế bài trí gian hàng, chiến lược bán hàng khuyến mại, các
bài toán phân lớp, phân cụm, ...
Market basket analysis: Chẳng hạn, một người quản lý một chi nhánh bán hàng,
họ muốn biết thêm về thói quen mua sắm của khách hàng. Cụ thể như họ muốn biết
rằng “Trong mỗi lần mua sắm, khách hàng thường mua các nhóm mặt hàng nào cùng
nhau?”. Để trả lời câu hỏi này, việc phân tích giỏ khách hàng sẽ được thực hiện trên
dữ liệu mua bán lẻ của khách hàng đã được lưu trữ. Sau đó có thể sử dụng kết quả đó
để lên kế hoạch tiếp thị, chiến lược quảng cáo hoặc dự định bổ sung các danh mục
hàng hóa mới. Việc phân tích giỏ hàng có thể giúp bạn thiết kế gian hàng với các cách
bài trí hàng hóa khác nhau. Các mặt hàng thường xuyên được mua với nhau có thể
được đặt ở gần nhau để thúc đẩy việc bán hàng. Nếu khách hàng mua máy tính cũng
có xu hướng mua phần mềm diệt virus cùng lúc, cũng thế, đặt màn hình gần với các
phần mềm hiển thị có thể giúp tăng doanh số bán hàng của cả hai. Trong một chiến
lược khác, bố trí phần cứng và phần mềm ở hai đầu của cửa hàng có thể lôi kéo khách
hàng mua những mặt hàng khác trên đường di chuyển giữa hai vị trí. Ví dụ, sau khi
quyết định mua một máy tính đắt tiền, trong khi đến mua phần mềm diệt virus, khách
hàng quan sát thấy hệ thống an ninh gia đình được trưng bày và có thể quyết định
mua. Việc phân tích giỏ hàng cũng có thể giúp các nhà bán lẻ đưa ra các kế hoạch bán
hàng giảm giá. Thông thường, khách hàng có xu hướng mua máy tính và máy in với
nhau, khi đó có thể bán giảm giá máy in nếu khách hàng mua máy tính.
Trong gian hàng, mỗi mặt hàng gắn với một biến Boolean biểu thị sự có mặt
hay vắng mặt của mặt hàng đó. Tiếp đến, mỗi giỏ hàng có thể được thể hiện bởi một
vector Boolean các giá trị được gán cho các biến đó. Các vector Boolean biểu thị
10
các mẫu mua hàng mà ở đó các mặt hàng được kết hợp một cách thường xuyên hoặc
được mua với nhau. Các mẫu này có thể được biểu thị ở dạng các luật kết hợp. Ví dụ,
khách hàng mua máy tính cũng có xu hướng mua phần mềm diệt virus cùng lúc, có
thể được biểu diễn với luật kết hợp như sau:
computer ⇒ antivirus_software [support = 2%, confidence = 60%]
support = 2% nghĩa là có 2% trong tất cả các giao dịch được phân tích cho thấy
máy tính và phần mềm diệt virus được mua cùng lúc. confidence = 60% nghĩa là có
60% số lượng khách hàng đã mua máy tính thì cũng mua phần mềm. Thông
thường, các luật kết hợp được quan tâm nếu chúng đáp ứng được cả ngưỡng hỗ trợ
tối thiểu và ngưỡng tin cậy tối thiểu. Các ngưỡng này có thể được thiết lập bởi
người dùng.
2. Luật dãy
2.1 Khái niệm luật dãy và ví dụ
Ta giới thiệu vấn đề dựa trên quá trình mua bán hàng và một CSDL lưu trữ thông
tin giao dịch mua bán hàng bao gồm các thông tin về mã khách hàng (customer-id),
thời gian giao dịch (transaction-time) và các mặt hàng trong giao dịch.
 Các khái niệm
Một itemset là một tập không rỗng các phần tử (item).
Một dãy (sequence) là một danh sách có thứ tự các itemset.
Không mất tính tổng quát, chúng ta giả sử rằng một tập các phần tử được ánh xạ
tới một tập các số nguyên liền kề. Ta biểu thị itemset i bởi (i1i2...im), trong đó ij là một
phần tử. Ta biểu thị dãy s bởi (s1s2...sn), trong đó sj là một itemset.
Dãy (a1a2...an) được chứa trong dãy (b1b2...bn) nếu ở đó tồn tại các số nguyên
i1 < i2 < ... < in sao cho a1 ⊆ bi1 , a2 ⊆ bi2 , ..., an ⊆ bin. Ta sử dụng ký
hiệu  để biểu thị quan hệ “được chứa trong”. Ví dụ, dãy <(3) (4,5) (8)>
<(7) (3 8) (9) (4 5 6) (8)>, vì
((3) ⊆ (3 8), (4 5) ⊆ (4 5 6) và (8) ⊆ (8). Tuy nhiên, dãy <(3) (5)>
không được chứa trong <(3 5)> và ngược lại. Phần tử 3 và 5 trong dãy <(3) (5)>
mô tả chúng không nằm trong cùng một lần giao dịch, trong khi phần tử 3 và 5
trong dãy <(3 5)> mô tả chúng nằm trong một lần giao dịch. Trong một tập các
dãy, một dãy s là lớn nhất hay tối đa (maximal) nếu s không được chứa trong bất
kỳ dãy nào khác.
Tất cả các giao dịch của cùng một khách hàng có thể được xem như là một dãy.
Trong đó, mỗi giao dịch được xem như một tập các phần tử, và danh sách các giao
11
dịch theo thứ tự tăng dần về thời gian giao dịch tương ứng với một dãy. Chúng ta gọi
đó là một dãy khách hàng (customer-sequence). Ta biểu thị các giao dịch của một
khách hàng được sắp xếp thứ tự tăng dần theo thời gian là (T1, T2, ..., Tn). Tập các
phần tử (item) trong Ti được biểu thị bởi itemset(Ti). Dãy customer-sequence của một
khách hàng là một dãy <itemset(T1) itemset(T2) ... itemset(Tn)>.
Một khách hàng hỗ trợ một dãy s nếu s được chứa trong dãy customer-sequence
đối với khách hàng đó. Độ hỗ trợ của một dãy được định nghĩa là số khách hàng hỗ trợ
dãy đó.
Các dãy tối đa trong số tất cả các dãy phổ biến đáp ứng mức hỗ trợ tối thiểu cụ
thể nào đó được gọi là luật dãy hay mẫu dãy (sequential patterns).
Ta gọi dãy đáp ứng độ hỗ trợ tối thiểu là dãy phổ biến (large sequence)
 Ví dụ
Cho CSDL mua bán hàng thể hiện trong hình 1.1.
Transaction Time Customer Id Items Bought
June 10 '93 2 10, 20
June 12 '93 5 90
June 15 '93 2 30
June 20 '93 2 40, 60, 70
June 25 '93 4 30
June 25 '93 3 30, 50, 70
June 25 '93 1 30
June 30 '93 1 90
June 30 '93 4 40, 70
July 25 '93 4 90
Hình 1.1: CSDL gốc
CSDL trong hình 1.2 đã được sắp xếp theo mã khách hàng (customer-id) và thời gian
giao dịch.
Customer Id Transaction Time Items Bought
1 June 25 '93 30
1 June 30 '93 90
2 June 10 '93 10, 20
2 June 15 '93 30
2 June 20 '93 40, 60, 70
3 June 25 '93 30, 50, 70
4 June 25 '93 30
4 June 30 '93 40, 70
12
4 July 25 '93 90
5 June 12 '93 90
Hình 1.2: CSDL được sắp xếp theo
Khách hàng ID và thời gian giao dịch
CSDL hình 1.3 thể hiện như là một tập các dãy khách hàng (customer-sequence).
Customer Id Customer Sequence
1 <(30) (90)>
2 <(10 20) (30) (40 60 70)>
3 <(30 50 70)>
4 <(30) (40 70) (90)>
5 <(90)>
Hình 1.3: CSDL theo dãy khách hàng
(customer-sequence)
Với mức hỗ trợ tối thiểu là 25%, tức là xuất hiện tối thiểu 2 trong tổng số 5
khách hàng, hai dãy <(30) (90)> và <(30) (40 70)> là lớn nhất trong số các dãy đáp
ứng điều kiện giàng buộc hỗ trợ, và là các mẫu dãy mong muốn. Mẫu dãy <(30) (90)>
xuất hiện trong các giao dịch của khách hàng 1 và 4. Mẫu dãy <(30) (40 70)> xuất
hiện trong giao dịch của khách hàng 2 và 4.(Vì (40 70) là tập con của (40 60 70) nên
cũng được tính cho khách hàng 2).
Ví dụ về một dãy mà không có hỗ trợ tối thiểu là dãy <(10 20) (30)>, dãy này chỉ
xuất hiện trong giao dịch của khách hàng 2. Các dãy <(30)>, <(40)>, <(70)>,
<(90)>, <(30) (40)>, <(30) (70)>, <(40 70)> mặc dù thỏa mãn hỗ trợ tối thiểu, nhưng
chúng không phải dãy tối đa nên không phải là kết quả cần tìm.
Sequential Patterns with support > 25%
<(30) (90)>
<(30) (40 70)>
Hình 1.4: Tập kết quả
2.2 Một số ứng dụng
 Khai phá dãy cho các mẫu hành vi người dùng trong lĩnh vực thương mại điện
thoại di động
Sự phát triển của máy tính và các công nghệ truyền thông gần đây giúp cho các
hệ thống liên lạc cá nhân (Personal Communication Systems - PCSs) ngày càng trở
nên phổ biến, đặt ra vấn đề về quản lý thông tin di động.
Mô hình hóa một cách hiệu quả các mẫu hành vi của người sử dụng trong các hệ
thống điện thoại di động đem lại lợi ích không chỉ cho người sử dụng trong những truy
cập thông minh, mà còn đem lại lợi nhuận tài chính cho các nhà cung cấp dịch vụ di
động như quảng cáo. Trong môi trường web, người sử dụng di động có thể yêu cầu
các loại hình dịch vụ khác nhau và ứng dụng của điện thoại di động, PDA hay máy
13
tính xách tay từ bất cứ đâu tại bất kỳ thời gian nào thông qua GSM, GPRS hoặc
mạng không dây. Rõ ràng là những hành vi của người sử dụng điện thoại di động
(trong đó vị trí và dịch vụ vốn đã cùng tồn tại) trở nên phức tạp hơn so với các hệ
thống web truyền thống. Để giúp người sử dụng thu nhận được thông tin mong muốn
trong một thời gian ngắn là một trong những ứng dụng nhiều hứa hẹn, đặc biệt khi
mà người dùng không có nhiều thời gian để lướt nhiều trang web.
Hệ thống quản lý thông tin di động lưu trữ và cập nhật các thông tin vị trí của
người sử dụng điện thoại di động, những người được phục vụ bởi hệ thống. Một chủ
đề nóng trong lĩnh vực nghiên cứu quản lý thông tin di động là dự đoán di động. Dự
đoán di động có thể được định nghĩa là dự đoán vị trí di chuyển tiếp theo của người sử
dụng di động giữa các vùng trong hệ thống liên lạc cá nhân PCS hoặc mạng GSM. Dự
đoán đó có thể được sử dụng để tăng hiệu quả của PCSs. Sử dụng dự đoán di chuyển,
hệ thống có thể phân bổ nguồn tài nguyên một cách hiệu quả khả năng di chuyển đến
các vùng thay vì phân bổ nguồn tài nguyên một cách không có định hướng trong các
vùng lân cận của người sử dụng điện thoại di động. Hiệu quả phân bổ nguồn tài
nguyên cho người dùng di động sẽ cải thiện việc sử dụng tài nguyên và giảm độ trễ
trong việc tiếp cận các nguồn tài nguyên. Dự báo chính xác thông tin vị trí cũng rất
quan trọng trong xử lý các truy vấn phụ thuộc vào vị trí của người dùng di động. Khi
người dùng đưa ra một truy vấn liên quan đến vị trí, câu trả lời cho truy vấn sẽ phụ
thuộc vào vị trí hiện tại của người dùng. Nhiều phạm vi ứng dụng bao gồm cả lĩnh vực
chăm sóc sức khỏe, khoa học sinh học, quản lý khách sạn, và lợi ích quân sự từ hiệu
quả xử lý các truy vấn phụ thuộc vào vị trí. Với hiệu quả dự đoán về vị trí, có thể thể
trả lời các truy vấn liên quan đến vị trí di chuyển tiếp theo của người sử dụng.
So với số lượng công việc thực hiện cho việc cập nhật vị trí, một số ít đã được
thực hiện trong lĩnh vực dự báo di chuyển. Những công việc này có một số hạn chế,
được giải thích như sau:
• Một số trong đó là sự không nỗ lực tìm kiếm các mẫu thông tin di động.
Thay vào đó, các mẫu này được giả định là có sẵn. Những mẫu này sau đó
được sử dụng để dự báo di chuyển.
• Việc dự đoán được dựa trên khả năng phân bố của tốc độ và hướng của
người sử dụng điện thoại di động. Để thu thập những thông tin như vậy, cần
thiết phải có những công cụ rất tinh vi và tốn kém như hệ thống định vị toàn
cầu (Global Positioning System - GPS).
Nhằm khắc phục những hạn chế trên, người ta đã phát triển một thuật toán dự
đoán di động hiệu quả. Những qui luật này được gọi là các mẫu di động. Sau đó, các
luật di động này được trích xuất ra từ các mẫu di động. Các quy tắc di động được gắn
với quỹ đạo hiện tại của một người sử dụng điện thoại di động, và được sử dụng cho
các dự đoán hướng di chuyển tiếp theo của người dùng. Thuật toán dự đoán này là
khai phá các mẫu di động của người dùng và sinh ra các luật di động, được thực hiện
14
offline bởi hệ thống. Tuy nhiên, dự báo di chuyển được thực hiện online. Điều đó có
nghĩa là bất cứ khi nào người dùng có ý định thực hiện một di chuyển trong một khu
vực nhất định, một yêu cầu dự đoán sẽ được gửi đến hệ thống và dự đoán được thực
hiện bởi hệ thống bằng cách sử dụng các luật di động dựa trên thuật toán dự đoán.
Hình 1.5: Kiến trúc tổng thể của hệ thống quản lý thông tin di động
15
Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY
1. Khái quát về khai phá luật dãy
Khai phá luật dãy xử lý dữ liệu điển hình là các dãy là một tập hợp các phần tử
được sắp thứ tự. So với vấn đề luật kết hợp, luật dãy nghiên cứu dữ liệu đưa ra các
phân tích “liên giao dịch” (inter-transaction). Có rất nhiều ứng dụng về khai phá mẫu
dãy và vấn đề cũng được định nghĩa theo những cách khác nhau với mức độ thay đổi
không đáng kể. Kết hợp với các giải pháp hiệu quả, những vấn đề này có thể phù
hợp với dữ liệu thực tế có mốc thời gian (timestamp) (khi mà luật kết hợp đã không
giải quyết được) và cung cấp những kết quả hữu ích.
Ta sử dụng CSDL giao dịch mua bán hàng làm ví dụ, với các thông tin về: định
danh của dãy hoặc định danh khách hàng (sequence-id or customer-id), thời gian giao
dịch (transaction-time) và mặt hàng liên quan trong giao dịch (item). Một CSDL như
vậy được gọi là CSDL dãy. Chính xác hơn, mỗi giao dịch là một tập hợp các mặt hàng
(itemset) và mỗi dãy là một danh sách các giao dịch được sắp xếp theo thời gian giao
dịch. Đối với hiệu quả của việc trợ giúp ra quyết định, mục đích là để tìm ra những
thói quen tiêu biểu của người dùng. Để làm được việc đó, đòi hỏi phải có một CSDL
dãy và đưa ra giá trị hỗ trợ tức là số lần xuất hiện trong CSDL. Một mẫu dãy phổ biến
là một dãy mà tần xuất xuất hiện trong CSDL vượt ngưỡng quy định. Vấn đề tìm kiếm
tất cả các mẫu thường xuyên từ lượng dữ liệu khổng lồ đòi hỏi chi phí về mặt thời gian
là rất lớn. Thông thường, việc kiểm tra của tất cả các kết hợp có thể trong dữ liệu là
vấn đề khó và những thuật toán mới tập trung vào dữ liệu dãy được coi là quan trọng
đối với một tổ chức.
Khai phá luật dãy có thể được áp dụng rộng rãi trên các ứng dụng từ nhiều loại
dữ liệu có thời gian liên quan. Ví dụ, từ một CSDL mua bán hàng, một mẫu dãy có thể
được dùng để phát triển các chiến lược tiếp thị và sản phẩm; Bằng cách phân tích
weblog, các mẫu dãy rất hữu ích cho việc xây dựng website công ty giúp khách hàng
truy cập một cách dễ dàng các liên kết phổ biến nhất (Kosala và Blockeel, 2000); Ta
cũng có thể thấy CSDL báo động mạng viễn thông, phát hiện xâm nhập (Hu và Panda,
2004), các dãy ADN (Zaki, 2003), …
Chúng ta chia vấn đề khai phá luật dãy thành các giai đoạn sau đây:
 Giai đoạn sắp xếp (Sort Phase): CSDL (D) được sắp xếp, với mã khách hàng
(custorm-id) là khóa chính và thời gian giao dịch (transaction-time) là khóa phụ. Bước
này chuyển đổi ngầm cơ sơ dữ liệu giao dịch gốc thành CSDL dãy khách hàng.
 Giai đoạn Litemset (Litemset Phase): Trong giai đoạn này, chúng ta tìm tập
tất cả litemsets L, đồng thời cũng tìm kiếm tập tất cả các dãy phổ biến 1-sequence,
vì tập này cũng là {<l> | l ∈ L}.
16
Với giao dịch của một khách hàng, độ hỗ trợ được tính tăng lên chỉ một lần ngay
cả khi khách hàng mua cùng một tập các sản phẩm trong hai hay nhiều giao dịch khác
nhau.
Tập hợp các litemsets được ánh xạ tới một tập hợp các số nguyên liên tiếp. Sau
bước xử lý litemsets để có được các thực thể duy nhất, việc ánh xạ này giúp ta có thể
so sánh hai litemsets có bằng nhau hay không trong thời gian cố định, và giảm số lần
cần thiết để kiểm tra nếu một dãy được chứa trong dãy khách hàng.
 Giai đoạn chuyển đổi (Transformation Phase): Như chúng ta sẽ thấy trong giai
đoạn dãy (Sequence Phase), cần phải xác định lặp đi lặp lại nhiều lần để đưa ra một
tập các dãy phổ biến (large sequences) được chứa trong một dãy khách hàng. Để thực
hiện điều này một cách nhanh chóng, ta chuyển đổi mỗi dãy khách hàng thành một đại
diện thay thế.
Trong một dãy khách hàng được chuyển đổi, mỗi giao dịch được thay thế bằng
tập tất cả các litemsets được chứa trong giao dịch đó. Nếu một giao dịch không chứa
bất kỳ litemset nào, nó không được giữ lại trong dãy chuyển đổi. Nếu một dãy khách
hàng không chứa bất kỳ litemset nào thì dãy này bị loại bỏ trong CSDL chuyển
đổi. Tuy nhiên, nó vẫn góp phần vào việc tính tổng số lượng khách hàng. Một dãy các
khách hàng khi đó được thể hiện bởi một danh sách tập các litemsets. Mỗi tập
litemsets được biểu diễn bởi {l1, l2, ..., ln}, trong đó li là một litemset.
CSDL chuyển đổi này gọi là DT. Tiếp tục sử dụng CSDL trong phần 1.2 làm ví
dụ, việc chuyển đổi CSDL Hình 1.3 được thể hiện trong Hình 2.1. Ví dụ, trong trong
việc chuyển đổi dãy khách hàng với Id 2, giao dịch (10 20) bị loại bỏ vì nó không chứa
bất kỳ litemset nào và giao dịch (40 60 70) được thay thế bằng tập litemsets {(40),(70),
(40 70)}.
Customer
Id
Original
Customer Sequence
Transformed
Customer Sequence
After Mapping
1 < (30) (90)> < {(30)} {(90)}> <{1} {5}>
2 < (10 20) (30) < {(30)} {(40), (70), <{1} {2,3,4}>
(40 60 70) > (40 70)}>
3 < (30 50 70)> < {(30), (70)}> <{1,3}>
4 < (30) (40 70) (90)> < {(30)} {(40), (70), (40 70)} <{1} {2,3,4}
{(90)}> {5}>
5 < (90)> < {(90)}> <{5}>
Hình 2.1: CSDL đã được chuyển đổi từ Hình 1.3
 Giai đoạn dãy (Sequence Phase): Ta sử dụng tập các litemsets để tìm các dãy ứng
viên. Cấu trúc chung là thực hiện các quá trình duyệt lặp đi lặp lại trên dữ liệu. Trong
mỗi lần duyệt, ta bắt đầu với một tập khởi tạo các dãy phổ biến. Ta sử dụng tập khởi
tạo này để sinh ra các dãy phổ biến mới, tiềm năng, gọi là các dãy ứng viên (candidate
sequences). Tìm độ hỗ trợ cho các dãy ứng viên này trong suốt quá trình duyệt dữ liệu.
Tại lần duyệt cuối cùng của mỗi bước, xác định dãy nào trong các dãy ứng viên là dãy
phổ biến thực sự. Các dãy ứng viên phổ biến trở thành khởi tạo cho lần duyệt tiếp
theo. Trong lần duyệt đầu tiên, tất cả các 1-sequences với độ hỗ trợ tối thiểu, được
chứa trong giai đoạn litemset, tạo nên tập khởi tạo.
 Giai đoạn tìm dãy tối đa (Maximal Phase): Tìm các dãy tối đa trong tập các
dãy phổ biến (large sequences). Giai đoạn này được kết hợp với giai đoạn dãy
(Sequence Phase) để giảm chi phí thời gian trong việc tính các dãy không tối đa.
Tập tất cả các dãy phổ biến S được tìm thấy trong giai đoạn dãy, thuật toán tiếp
theo đây có thể được sử dụng để tìm các dãy tối đa. Với n là độ dài của dãy dài nhất.
for ( k = n; k > 1; k – – ) do
foreach k-sequence sk
do
Delete from S all subsequences of sk
2. Thuật toán GSP (Generalized Sequential Patterns)
Cấu trúc cơ bản của thuật toán GSP tìm kiếm mẫu dãy là thuật toán duyệt dữ liệu nhiều
lần, lần duyệt đầu tiên xác định độ hỗ trợ của từng phần tử, tức là số lượng dữ liệu dãy
có chứa các phần tử. Kết thúc lần duyệt đầu tiên, thuật toán đưa ra được các phần tử
thường xuyên, nghĩa là thỏa mãn độ hỗ trợ tối thiểu. Mỗi phần tử như vậy tiết lộ một
dãy phổ biến 1-element chứa phần tử đó. Mỗi dãy con bắt đầu duyệt với tập khởi đầu
là các dãy phổ biến được tìm thấy trong lần duyệt trước đó. Tập khởi đầu được sử
dụng để sinh ra các dãy phổ biến tiềm năng mới, gọi là các dãy ứng viên. Mỗi dãy ứng
viên có ít nhất một phần tử thuộc dãy khởi đầu, vì thế tất cả các dãy ứng viên trong một
lần duyệt sẽ có cùng số phần tử. Độ hỗ trợ cho các dãy ứng viên này được tìm thấy
trong qúa trình duyệt dữ liệu. Kết thúc lần duyệt, thuật toán xác định các dãy ứng viên
thường xuyên thực sự. Những ứng viên thường xuyên này trở thành tập khởi đầu cho lần
duyệt tiếp theo. Thuật toán kết thúc khi không tìm được dãy phổ biến nào ở cuối lần
duyệt, hoặc khi không có dãy ứng viên nào được sinh ra.
Ta cần chỉ rõ hai điểm mấu chốt của thuật toán là cách sinh các dãy ứng viên
(Candidate generation) và cách tính độ hỗ trợ để xác định dãy ứng viên (Counting
candidates).
 Sinh dãy ứng viên (Candidate Generation)
Xét một dãy có k phần tử, gọi là k-sequence (nếu một phần tử xuất hiện nhiều lần
trong các thành phần khác nhau của một dãy, mỗi lần xuất hiện được tính vào giá trị
của k.). Gọi Lk biểu thị tập tất cả các dãy phổ biến k-sequence và Ck biểu thị tập các
dãy ứng viên k-sequence.
Cho Lk-1 là tập tất cả các dãy phổ biến (k-1)-sequence, ta cần tạo ra tập cha
(superset) của tập tất cả các dãy phổ biến k-sequence. Đầu tiên, ta định nghĩa khái
niệm về một dãy con liên tục.
Định nghĩa: Cho dãy s = <s1 s2 … sn> và một dãy con c, c là dãy con liên tục của
s nếu thỏa mãn bất kỳ điều kiện nào sau đây:
1. c nhận được từ s bằng cách lược bỏ phần tử s1 hoặc sn.
2. c nhận được từ s bằng cách lược bỏ một phần tử từ thành phần si mà si có ít
nhất hai phần tử.
3. c là dãy con liên tục của c‟, và c‟ là dãy con liên tục của s.
Ví dụ: Giả sử có dãy s = <(1,2) (3,4) (5) (6)>. Khi đó, các dãy con liên tục của s
là <(2) (3,4) (5)>; <(1,2) (3) (5) (6)>; <(3) (5)>. Các dãy không phải là dãy con liên
tục của s như: <(1,2) (3,4) (6)>; <(1,2) (5) (6)>
Dữ liệu dãy có chứa dãy s cũng sẽ chứa bất kỳ dãy con liên tục nào của s. Nếu
không có ràng buộc về khoảng thời gian tối đa max-gap, dữ liệu dãy sẽ chứa tất cả
các dãy con của s (bao gồm cả các dãy con không liên tục). Đặc tính này cung cấp cơ
sở cho thủ tục sinh dãy ứng viên.
Thực hiện sinh các dãy ứng viên qua hai bước:
a. Giai đoạn nối (Join Phase): Thực hiện sinh các dãy ứng viên bằng phép nối Lk- 1
với Lk-1. Một dãy s1 nối với s2 nếu dãy con thu được bằng cách loại bỏ phần tử
đầu tiên của s1 và dãy thu được bằng cách loại bỏ phần tử cuối cùng của s2 là
giống nhau. Dãy ứng viên được sinh bằng phép nối s1 với s2 là dãy s1 được mở
rộng với phần tử cuối cùng trong s2. Phần tử được thêm trở nên thành phần
riêng biệt nếu đó là một thành phần riêng biệt trong s2, và một phần của thành
phần cuối cùng của s1 khác. Khi thực hiện nối L1 với L1, ta cần thêm vào phần
tử trong s2 một phần của itemset cũng như một thành phần riêng biệt, vì cả hai
<(x) (y)> và <(x y)> đều cho cùng một dãy <(y)> khi loại bỏ phần tử đầu tiên.
(Ta thấy rằng s1 và s2 là các dãy con liên tục của các dãy ứng viên mới
b. Giai đoạn thanh loại (Prune Phase): Ta loại bỏ các dãy ứng viên có dãy con liên
tục (k-1)-subsequence mà có độ hỗ trợ nhỏ hơn độ hỗ trợ tối thiểu. Nếu không
tính ràng buộc thời gian max-gap, ta cũng loại bỏ các dãy ứng viên mà có bất kỳ
dãy con nào không thỏa mãn độ hỗ trợ tối thiểu.
Ví dụ: Hình 1 cho thấy L3, và C4 sau khi thực hiện giai đoạn nối và thanh loại.
Trong giai đoạn nối, dãy <(1, 2) (3)> nối với <(2) (3, 4)> để sinh ra dãy <(1, 2) (3, 4)>
và nối với <(2) (3) (5)> để sinh ra dãy <(1, 2) (3) (5)>. Các dãy còn lại không được nối
với bất kỳ dãy nào trong L3. Chẳng hạn, dãy <(1, 2) (4)> không được nối với bất kỳ
dãy nào vì không có dãy nào có dạng <(2) (4 x)> hoặc <(2) (4) (x)>. Trong giai đoạn
thanh loại, dãy <(1, 2) (3) (5)> bị loại bỏ vì dãy con liên tục của nó là <(1) (3) (5)>
không thuộc L3.
Frequent
3-Sequences
Candidate 4-Sequences
after join after pruning
<(1, 2) (3)> <(1, 2) (3, 4)> <(1, 2) (3, 4)>
<(1, 2) (4)> <(1, 2) (3) (5)>
<(1) (3, 4)>
<(1, 3) (5)>
<(2) (3, 4)>
<(2) (3) (5)>
Hình 1: Ví dụ sinh dãy ứng viên
 Tính độ hỗ trợ các ứng viên (Counting Candidates)
Trong quá trình duyệt dữ liệu, ta đọc mỗi dữ liệu dãy tại một thời điểm và tăng
độ hỗ trợ của các ứng viên có trong dữ liệu dãy. Như vậy, với một tập các dãy ứng
viên C và một dữ liệu dãy d, ta cần tìm tất cả các dãy trong C có chứa d. Ta sử dụng
hai kỹ thuật sau để giải quyết vấn đề này:
1. Sử dụng cấu trúc dữ liệu hash-tree để giảm số lượng các ứng viên trong C đã
được kiểm tra cho một dữ liệu dãy.
2. Biến đổi đại diện của dữ liệu dãy d để có thể tìm kiếm ứng viên là dãy con
của d một cách hiệu quả.
Giảm số lượ ng các ứng viên cần kiể m tra:
a. Thêm các dãy ứng viên vào hash-tree: Khi thêm một dãy s, ta bắt đầu đi từ
nút gốc cho tới khi tìm được một nút lá. Tại nút trung gian có độ sâu p, ta lựa
chọn nhánh tiếp theo bằng cách áp dụng một hàm băm cho phần tử thứ p của dãy.
Lưu ý là ta áp dụng hàm băm đến phần tử thứ p, không phải là thành phần thứ
p. Tất cả các nút được khởi tạo bước đầu là các nút lá. Khi số lượng các dãy trong
một nút lá vượt quá một ngưỡng, nút lá khi đó được chuyển đến nút trung gian.
b. Tìm các dãy ứng viên được chứa trong dữ liệu dãy: Bắt đầu từ nút gốc, ta tìm
tất các các ứng viên được chứa trong dữ liệu dãy d. Áp dụng thủ tục sau, dựa trên
các loại nút bao gồm:
 Nút trung gian là nút gốc: Áp dụng hàm băm cho mỗi phần tử trong d, và
áp dụng đệ quy thủ tục này tới nút nằm trong bucket tương ứng. Với bất
kỳ dãy s được chứa trong dữ liệu dãy d, phần tử đầu tiên của s phải nằm
trong d. Thực hiện băm trên mọi phần tử trong d, ta đảm bảo rằng chỉ bỏ
qua các dãy bắt đầu với một phần tử không nằm trong d.
 Nút trung gian không phải là nút gốc: Giả sử ta đến nút này bằng việc
thực hiện băm phần tử x có thời gian giao dịch (transaction-time) là t. Áp
dụng hàm băm tới mỗi phần tử trong d có thời gian giao dịch trong
khoảng [t – window-size, t + max(window-size, max-gap)] và áp dụng đệ
quy thủ tục này tới các nút trong bucket tương ứng.
Để thấy tại sao kết quả trả về là tập các ứng viên, xét một dãy ứng viên s
với hai phần tử liên tục là x và y. Cho x là phần tử được chứa trong giao
dịch d với thời gian giao dịch là t. Vì d chứa s nên thời gian giao dịch
tương ứng với y cần phải trong khoảng [t – window-size, t + window-size]
nếu y là một phần của cùng thành phần chứa x, hoặc trong khoảng thời
gian (t, t + max-gap] nếu y là một phần của thành phần kế tiếp. Do đó nếu
chúng ta đạt đến nút này bằng thực hiện băm trên một phần tử x với thời
gian giao dịch t, y phải được chứa trong một giao dịch có thời gian giao
dịch ở trong khoảng [t – window-size, t + max (window-size, max-gap)]
cho dữ liệu dãy để hỗ trợ các dãy. Như vậy chúng ta chỉ cần áp dụng hàm
băm tới các phần tử trong d có thời gian giao dịch nằm trong khoảng thời
gian trên, và kiểm tra các nút tương ứng.
 Nút lá: Đối với mỗi dãy s là nút lá, ta kiểm tra xem d có chứa s, và thêm s
vào tập kết quả nếu cần thiết. (Chúng ta sẽ thảo luận dưới đây cách chính
xác để tìm d chứa một dãy ứng viên cụ thể.) Từ đó ta kiểm tra mỗi dãy
được chứa trong nút này, và không bỏ qua bất kỳ dãy nào.
Kiểm tra dữ liệu dãy chứa một dãy cho trướ c:
Cho dữ liệu dãy d, và một dãy ứng viên s = <s1 … sn> . Trước tiên ta mô tả thuật
toán để kiểm tra nếu d chứa s, giả sử tồn tại một thủ tục tìm kiếm sự xuất hiện
đầu tiên của một thành phần của s ở d sau một thời gian nhất định, và sau đó mô
tả thủ tục này. Thuật toán này kiểm tra nếu dữ liệu dãy d chứa một dãy ứng viên
s luân phiên giữa hai giai đoạn. Thuật toán bắt đầu với giai đoạn duyệt xuôi từ
phần tử đầu tiên.
 Giai đoạn duyệt xuôi (forward phase): Thuật toán tìm thành phần kế tiếp
của s trong d miễn là hiệu số giữa thời gian kết thúc của thành phần đã
được tìm thấy và thời gian bắt đầu của thành phần trước đó là ít hơn
khoảng max-gap. (Nhắc lại rằng đối với mỗi thành phần si, thời gian bắt
đầu start-time(si) và thời gian kết thúc end-time(si) tương ứng với thời
gian giao dịch đầu tiên và cuối cùng của tập các giao dịch có chứa si). Nếu
hiệu số này nhiều hơn max-gap, thuật toán sẽ chuyển sang giai đoạn duyệt
ngược. Nếu một thành phần không được tìm thấy tức là dữ liệu dãy không
chứa s.
 Giai đoạn duyệt ngược (backward phase): Thuật toán thực hiện quay lui
và xét (kéo lên) các thành phần liền trước. Nếu si là thành phần hiện tại và
thời gian kết thúc end-time(si) = t, thuật toán tìm tập các giao dịch đầu
tiên có chứa si mà có thời gian giao dịch sau (t – max-gap). Thời gian bắt
đầu đối với si–1 (sau khi si–1 được xét đến) có thể sau thời gian kết thúc
end-time của si. Trong khi xét si–1 có thể đòi hỏi phải xét cả si–2 bởi vì ràng
buộc max-gap giữa si–1 và si–2 có thể không còn được thỏa mãn. Thuật
toán thực hiện quay lui cho đến khi hoặc là ràng buộc max-gap giữa thành
phần vừa xét và thành phần liền trước thỏa mãn, hoặc là thành phần đầu
tiên được lấy lên. Sau đó thuật toán chuyển sang giai đoạn duyệt xuôi để
tìm các thành phần của s trong d bắt đầu từ thành phần liền sau của thành
phần cuối cùng được lấy lên của giai đoạn duyệt ngược. Nếu không có bất
kỳ thành phần nào được lấy lên (nghĩa là không có tập dãy con của các
giao dịch có chứa thành phần) khi đó dữ liệu dãy không chứa s.
Thủ tục thực hiện lặp đi lặp lại, hoán đổi giữa giai đoạn duyệt xuôi và duyệt
ngược cho tới khi tất cả các thành phần được tìm thấy.
Ví dụ: Cho dữ liệu dãy trong Hình 2. Xét trường hợp max-gap là 30, min-gap là 5
và window-size là 0. Với dãy ứng viên <(1, 2) (3) (4)>, (forward phase) trước tiên ta
cần tìm (1, 2) tại thời gian giao dịch 10, tiếp theo tìm thành phần (3) tại thời gian
giao dịch 45. Khi đó khoảng thời gian giữa hai thành phần (35 ngày) lớn hơn max-gap,
(backward phase) lấy lên thành phần (1, 2). Tìm lần xuất hiện đầu tiên của (1, 2) sau
thời gian 15, bởi vì thời gian kết thúc end-time((3)) = 45 và max-gap là 30, và vì vậy
thậm chí nếu (1, 2) xảy ra tại một số thời điểm trước 15, nó vẫn sẽ không thỏa mãn
ràng buộc max-gap. Ta tìm (1, 2) tại thời gian 50. Vì đây là thành phần đầu tiên nên
không phải kiểm tra xem liệu ràng buộc max-gap có nằm giữa (1, 2) và thành phần
trước đó có thỏa mãn không. Ta chuyển sang bước tiếp theo. Vì (3) không còn xảy ra
lớn hơn 5 ngày sau (1, 2), cần tìm sự xuất hiện tiếp theo của (3) sau thời gian 55. Ta
tìm thấy (3) tại thời gian 65. Khi ràng buộc giữa (3) và (1, 2) thõa mãn, ta tiếp tục di
chuyển tiếp và tìm thấy (4) tại thời gian 90. Ràng buộc max-gap giữa (4) và (3) được
thỏa mãn.
10 1, 2
25 4, 6
45 3
50 1, 2
65 3
90 2, 4
95 6
Item Times
1 → 10 → 50 → NULL
2 → 10 → 50 → 90 → NULL
3 → 45 → 65 → NULL
4 → 25 → 90 → NULL
Hình 2: Dữ liệu dãy Hình 3: Item xuất hiện theo thời gian
Để tìm kiếm một cách hiệu quả một phần tử đơn lẻ (item), ta sử dụng mảng để
lưu trữ tất cả các phần tử có trong dữ liệu dãy và thời gian giao dịch, dữ liệu dãy trong
Hình 2 được biến đổi như Hình 3, nhằm hỗ trợ cho việc tìm kiếm lần xuất hiện đầu
tiên của một thành phần trong dữ liệu dãy sau thời gian t. Thuật toán duyệt một lần tất
cả các phần tử trong thành phần và tìm thời gian giao dịch đầu tiên của mỗi phần tử
lớn hơn t. Nếu hiệu số giữa thời gian bắt đầu và thời gian kết thúc nhỏ hơn hoặc bằng
với window-size thì chấp nhận. Nếu không, t được lấy là hiệu số giữa thời gian kết
thúc và window-size, thủ tục tiếp tục được lặp lại.
Ví dụ: Cho dữ liệu dãy trong Hình 2, giả sử window-size = 7 ngày, ta phải tìm
lần xuất hiện đầu tiên của thành phần (2, 6) sau thời gian t = 20. Ta tìm phần tử 2 tại
thời gian 50, phần tử 6 tại thời gian 25. Vì end-time((2,6)) – start-time((2,6)) > 7 nên
ta đặt t là 43 (= end-time((2,6)) – window-size) và thử lại. Phần tử 2 còn lại tại thời
gian 90, trong khi phần tử 6 tiếp theo tại thời gian 95. Vì khoảng thời gian giữa 90 và
95 nhỏ hơn window-size nên ta bỏ qua.
 Phân loại
Cách tiếp cận cơ bản là thay thế mỗi dữ liệu dãy d với một dãy mở rộng d’, trong
đó, mỗi giao dịch d’i của d’ chứa các phần tử trong giao dịch di của d tương ứng, cũng
như tất cả các “ancestor” (tổ tiên) của mỗi phần tử trong di. Ví dụ, một dữ liệu dãy
<(1, 2) (3)> có thể được thay thế với dãy mở rộng <(1, 2, 4, 5, 6) (3, 4, 6)> . Sau đó, ta
thực GSP trên các dãy mở rộng này.
Có hai cách tối ưu hóa để cải thiện đáng kể hiệu suất thực hiện. Cách thứ nhất là
tính toán trước các “ancestor” của mỗi phần tử và loại bỏ các “ancestor” không có
trong bất kỳ dãy ứng viên nào được tính trước khi thực hiện duyệt dữ liệu. Ví dụ, nếu
(2), (3) và (4) không nằm trong bất kỳ dãy ứng viên nào được tính trong lần duyệt hiện
tại, ta sẽ thay thế dãy <(1, 2) (3)> với dãy mở rộng <(1, 5, 6) (5, 6)> (thay vì dãy mở
rộng <(1, 2, 4, 5, 6) (3, 5, 6)>). Cách tối ưu hóa thứ hai là không tính các mẫu dãy với
một thành phần có chứa cả phần tử x và phần tử y là ancestor của x, vì độ hỗ trợ của
các dãy này sẽ luôn giống độ hỗ trợ cho các mẫu dãy không có y. (Bất kỳ giao dịch
nào chứa x cũng sẽ chứa y.)
3. Ví dụ thuật toán GSP
Cho dữ liệu:
Seq. ID Sequence
10 <(b,d)cb(a,c)>
20 <(b,f)(c,e)b(f,g)>
30 <(a,h)(b,f)abf>
40 <(b,e)(c,e)d>
50 <a(b,d)bcb(a,d,e)>
Minsupp=2
Các ứng viên đầu tiên C1:
<a>, <b>, <c>, <d>, <e>, <f>, <g>, <h>
•Duyệt CSDL để tính độ phổ biến của từng ứng viên và tìm F1
-> F1 = <a>, <b>, <c>, <d>, <e>, <f>
<g>,<f> có minsupp nhỏ hơn 2 nên bị loại.
Tạo các ứng viên C2:
Tạo các chuỗi có chiều dài 2, có 2 phần tử từ các ứng viên của F1
<a> <b> <c> <d> <e> <f>
<a> <aa> <ab> <ac> <ad> <ae> <af>
<b> <ba> <bb> <bc> <bd> <be> <bf>
<c> <ca> <cb> <cc> <cd> <ce> <cf>
<d> <da> <db> <dc> <dd> <de> <df>
<e> <ea> <eb> <ec> <ed> <ee> <ef>
<f> <fa> <fb> <fc> <fd> <fe> <ff>
Tạo các chuỗi chiều dài 2 có 1 phần tử
C Sup
<a> 3
<b> 5
<c> 4
<d> 3
<e> 3
<f> 2
<g> 1
<h> 1
<a> <b> <c> <d> <e> <f>
<a> <(a,b)> <(a,c)> <(a,d)> <(a,e)> <(a,f)>
<b> <(b,c)> <(b,d)> <(b,e)> <(b,f)>
<c> <(c,d)> <(c,e)> <(c,f)>
<d> <(d,e)> <(d,f)>
<e> <(e,f)>
<f>
Vậy tổng cộng có 51 chuỗi ứng viên có chiều dài 2
Xác định tập chuỗi phổ biến F2:
Duyệt cơ sở dữ liệu và xác định độ phổ biến của từng chuỗi ứng viên ta được 19
ứng viên có độ phổ biến >= minsupp (=2)
<a> <b> <c> <d> <e> <f>
<a>
<aa>
Supp=2
<ab>
Supp=2
<ac>
Supp=1
<ad>
Supp=1
<ae>
Supp=1
<af>
Supp=1
<b>
<ba>
Supp=3
<bb>
Supp=4
<bc>
Supp=4
<bd>
Supp=2
<be>
Supp=3
<bf>
Supp=2
<c>
<ca>
Supp=2
<cb>
Supp=3
<cc>
Supp=1
<cd>
Supp=2
<ce>
Supp=1
<cf>
Supp=1
<d>
<da>
Supp=2
<db>
Supp=2
<dc>
Supp=2
<dd>
Supp=1
<de>
Supp=1
<df>
Supp=0
<e>
<ea>
Supp=0
<eb>
Supp=1
<ec>
Supp=0
<ed>
Supp=1
<ee>
Supp=1
<ef>
Supp=1
<f>
<fa>
Supp=1
<fb>
Supp=2
<fc>
Supp=1
<fd>
Supp=0
<fe>
Supp=1
<ff>
Supp=2
Tập chuỗi phổ biến F2 gồm 19 chuỗi:
<aa>, <ab>, <ba>, <bb>, <bc>, <bd>, <be>, <bf>, <ca>, <cb>, <cd>, <da>, <db>,
<dc>, <fb>, <ff>, <b,d>, <b,f>, <c,e>
<a> <b> <c> <d> <e> <f>
<a> <(a,b)>
Supp=0
<(a,c)>
Supp=1
<(a,d)>
Supp=1
<(a,e)>
Supp=1
<(a,f)>
Supp=0
<b> <(b,c)>
Supp=0
<(b,d)>
Supp=2
<(b,e)>
Supp=1
<(b,f)>
Supp=2
<c> <(c,d)>
Supp=0
<(c,e)>
Supp=2
<(c,f)>
Supp=0
<d> <(d,e)>
Supp=1
<(d,f)>
Supp=0
<e> <(e,f)>
Supp=0
<f>
Kết Luận
GSP, một thuật toán mới khai thác những mẫu tuần tự tổng quát. Đánh giá thực
nghiệm sử dụng tổng hợp dữ liệu thực tế cho thấy GSP nhanh hơn nhiều thuật toán
AprioriAll.Thuật toán GSP tỷ lệ tuyến tính với số lượng của dữ liệu tuần tự, và có tỷ lệ
tăng nhiều với số lượng trung bình của dữ liệu tuần tự.
Thuật toán GSP đã thực hiện như một phần của sự tìm kiếm dữ liệu nguyên mẫu
ở khu nghiên cứu của IBM, vầ đã được hợp nhất trong sản phẩm tìm kiếm dữ liệu
IBM. Nó chạy trên nhiều nền tảng, bao gồm AIX và MVS. Nó cũng được dùng kết nối
song song cho các hệ thống cơ sở dữ liệu.
Thuật toán GSP tồn tại hạn chế khi sử dụng với số lượng lớn tập chuỗi ứng viên,
không hiệu quả khi khai thác các chuỗi dài.
Tài liệu tham khảo
1. Nguyễn Hoàng Tú Anh, Bài giảng khai thác dữ liệu và ứng dụng.
2. Ramakrishnan Srikant and Rakesh Agrawal, Mining Sequential Patterns:
Generalizations and Performance Improvements
3. Manan Parikh, Bharat Chaudhari and Chetna Chand, A comparative of Senquential
Pattern Mining Algorithm, 2013
4. Đỗ Phúc, Giáo trình Khai thác dữ liệu, NXB ĐHQG TP. HCM, 2005

Weitere ähnliche Inhalte

Was ist angesagt?

Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết địnhlmphuong06
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánNgo Trung
 
Cơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếCơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếTran Tien
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tanThao Vu
 
Lý thuyết thiết kế CSDL
Lý thuyết thiết kế CSDL Lý thuyết thiết kế CSDL
Lý thuyết thiết kế CSDL nataliej4
 
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINBài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINMasterCode.vn
 
Bai1 xaydung csdl-access
Bai1 xaydung csdl-accessBai1 xaydung csdl-access
Bai1 xaydung csdl-accessHào Kiệt
 
Thuật toán Brich , Khai phá dữ liệu
Thuật toán Brich , Khai phá dữ liệu Thuật toán Brich , Khai phá dữ liệu
Thuật toán Brich , Khai phá dữ liệu Lương Bá Hợp
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTMasterCode.vn
 
Phân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tậpPhân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tậpPhạm Trung Đức
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuMasterCode.vn
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuLê Minh
 
Cơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tánCơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tánQuy Nguyen
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETANHMATTROI
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêthuhuynhphonegap
 
Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Trần Thiên Đại
 

Was ist angesagt? (20)

Hỗ trợ ra quyết định
Hỗ trợ ra quyết địnhHỗ trợ ra quyết định
Hỗ trợ ra quyết định
 
lý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tánlý thuyết cơ sở dữ liệu phân tán
lý thuyết cơ sở dữ liệu phân tán
 
Cơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quếCơ sở dữ liệu phân tán - phạm thế quế
Cơ sở dữ liệu phân tán - phạm thế quế
 
Co so du lieu phan tan
Co so du lieu phan tanCo so du lieu phan tan
Co so du lieu phan tan
 
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOTĐề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
 
Lý thuyết thiết kế CSDL
Lý thuyết thiết kế CSDL Lý thuyết thiết kế CSDL
Lý thuyết thiết kế CSDL
 
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TINBài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
Bài 1 TỔNG QUAN VỀ CÔNG NGHỆ THÔNG TIN
 
Bai1 xaydung csdl-access
Bai1 xaydung csdl-accessBai1 xaydung csdl-access
Bai1 xaydung csdl-access
 
Thuật toán Brich , Khai phá dữ liệu
Thuật toán Brich , Khai phá dữ liệu Thuật toán Brich , Khai phá dữ liệu
Thuật toán Brich , Khai phá dữ liệu
 
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPTBài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
Bài 1: Tổng quan về cấu trúc và giải thuật - Giáo trình FPT
 
Phân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tậpPhân tích mã độc cơ bản - báo cáo thực tập
Phân tích mã độc cơ bản - báo cáo thực tập
 
Cơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng caoCơ sở dữ liệu nâng cao
Cơ sở dữ liệu nâng cao
 
Bài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệuBài 5: Chuẩn hóa cơ sở dữ liệu
Bài 5: Chuẩn hóa cơ sở dữ liệu
 
Bài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệuBài tập thiết kế cơ sở dữ liệu
Bài tập thiết kế cơ sở dữ liệu
 
Cơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tánCơ sở dữ liệu phân tán
Cơ sở dữ liệu phân tán
 
Ứng dụng khai phá dữ liệu xây dựng hệ hỗ trợ chẩn đoán y khoa
Ứng dụng khai phá dữ liệu xây dựng hệ hỗ trợ chẩn đoán y khoaỨng dụng khai phá dữ liệu xây dựng hệ hỗ trợ chẩn đoán y khoa
Ứng dụng khai phá dữ liệu xây dựng hệ hỗ trợ chẩn đoán y khoa
 
Cap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NETCap nhat CSDL trong VB.NET
Cap nhat CSDL trong VB.NET
 
Luận văn: Một thế thống tra cứu ảnh dựa trên nội dung, HAY
Luận văn: Một thế thống tra cứu ảnh dựa trên nội dung, HAYLuận văn: Một thế thống tra cứu ảnh dựa trên nội dung, HAY
Luận văn: Một thế thống tra cứu ảnh dựa trên nội dung, HAY
 
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phêbáo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
báo cáo hệ quản trị cơ sỡ dữ liệu hệ thống bán cà phê
 
Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++Lập trình hướng đối tượng với C++
Lập trình hướng đối tượng với C++
 

Ähnlich wie TÌM HIỂU và THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ dữ LIỆU GSP.pdf

Tong quan ve phan cum data mining
Tong quan ve phan cum   data miningTong quan ve phan cum   data mining
Tong quan ve phan cum data miningHoa Chu
 
Dm -chapter_1_-_overview_0
Dm  -chapter_1_-_overview_0Dm  -chapter_1_-_overview_0
Dm -chapter_1_-_overview_0Phi Phi
 
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Khai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfKhai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfTri Huynh Minh
 
3. Phân tích định tính.pdf
3. Phân tích định tính.pdf3. Phân tích định tính.pdf
3. Phân tích định tính.pdfFred Hub
 
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...LE Van Huy
 
Unit1_R_Version1.3.pptx
Unit1_R_Version1.3.pptxUnit1_R_Version1.3.pptx
Unit1_R_Version1.3.pptxPHAnHong53
 
Giao trinh-co-so-du-lieu
Giao trinh-co-so-du-lieuGiao trinh-co-so-du-lieu
Giao trinh-co-so-du-lieuAnh Ta
 
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdf
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdfGiáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdf
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdfMan_Ebook
 
Phân tích xử lý thông tin nghiên cứu định tính
Phân tích xử lý thông tin nghiên cứu định tínhPhân tích xử lý thông tin nghiên cứu định tính
Phân tích xử lý thông tin nghiên cứu định tínhPhap Tran
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)Trieu Nguyen
 

Ähnlich wie TÌM HIỂU và THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ dữ LIỆU GSP.pdf (20)

Tong quan ve phan cum data mining
Tong quan ve phan cum   data miningTong quan ve phan cum   data mining
Tong quan ve phan cum data mining
 
Luan van
Luan vanLuan van
Luan van
 
Dm -chapter_1_-_overview_0
Dm  -chapter_1_-_overview_0Dm  -chapter_1_-_overview_0
Dm -chapter_1_-_overview_0
 
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...
Ứng Dụng Khai Phá Dữ Liệu Để Xây Dựng Hệ Thống Chẩn Đoán Bệnh Trầm Cảm Cho Họ...
 
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...
Ứng Dụng Khai Phá Dữ Liệu Xây Dựng Hệ Thống Trợ Giúp Phòng, Chống Và Giảm Nhẹ...
 
Luận văn: Nghiên cứu và cài đặt một số đối tượng phân cụm, phân lớp
Luận văn: Nghiên cứu và cài đặt một số đối tượng phân cụm, phân lớpLuận văn: Nghiên cứu và cài đặt một số đối tượng phân cụm, phân lớp
Luận văn: Nghiên cứu và cài đặt một số đối tượng phân cụm, phân lớp
 
Cosodulieu
CosodulieuCosodulieu
Cosodulieu
 
Khai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdfKhai_pha_d_liu_Data_mining.pdf
Khai_pha_d_liu_Data_mining.pdf
 
3. Phân tích định tính.pdf
3. Phân tích định tính.pdf3. Phân tích định tính.pdf
3. Phân tích định tính.pdf
 
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...
Phương pháp nghiên cứu khoa học - Business Research Methods - Lê Văn Huy - Le...
 
Data Warehouse
Data WarehouseData Warehouse
Data Warehouse
 
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTITKHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
KHO DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU PTIT
 
Ứng Dụng Random Forest Để Tư Vấn Chọn Lộ Trình Học Trong Học Chế Tín Chỉ.doc
Ứng Dụng Random Forest Để Tư Vấn Chọn Lộ Trình Học Trong Học Chế Tín Chỉ.docỨng Dụng Random Forest Để Tư Vấn Chọn Lộ Trình Học Trong Học Chế Tín Chỉ.doc
Ứng Dụng Random Forest Để Tư Vấn Chọn Lộ Trình Học Trong Học Chế Tín Chỉ.doc
 
Unit1_R_Version1.3.pptx
Unit1_R_Version1.3.pptxUnit1_R_Version1.3.pptx
Unit1_R_Version1.3.pptx
 
Giao trinh-co-so-du-lieu
Giao trinh-co-so-du-lieuGiao trinh-co-so-du-lieu
Giao trinh-co-so-du-lieu
 
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdf
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdfGiáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdf
Giáo trình cơ sở dữ liệu, Phan Tấn Quốc.pdf
 
Nghiên Cứu Ứng Dụng Các Kỹ Thuật Của Big Data Trong Hệ Thống Phát Hiện Sao Ch...
Nghiên Cứu Ứng Dụng Các Kỹ Thuật Của Big Data Trong Hệ Thống Phát Hiện Sao Ch...Nghiên Cứu Ứng Dụng Các Kỹ Thuật Của Big Data Trong Hệ Thống Phát Hiện Sao Ch...
Nghiên Cứu Ứng Dụng Các Kỹ Thuật Của Big Data Trong Hệ Thống Phát Hiện Sao Ch...
 
Cosodulieu
CosodulieuCosodulieu
Cosodulieu
 
Phân tích xử lý thông tin nghiên cứu định tính
Phân tích xử lý thông tin nghiên cứu định tínhPhân tích xử lý thông tin nghiên cứu định tính
Phân tích xử lý thông tin nghiên cứu định tính
 
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
TỔNG QUAN VỀ DỮ LIỆU LỚN (BIGDATA)
 

Mehr von Man_Ebook

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfMan_Ebook
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docMan_Ebook
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfMan_Ebook
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfMan_Ebook
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfMan_Ebook
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfMan_Ebook
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfMan_Ebook
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfMan_Ebook
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdfMan_Ebook
 

Mehr von Man_Ebook (20)

BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdfBÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
BÀI GIẢNG MÔN HỌC CƠ SỞ NGÔN NGỮ, Dùng cho hệ Cao đẳng chuyên nghiệp.pdf
 
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.docTL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
TL Báo cáo Thực tập tại Nissan Đà Nẵng.doc
 
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdfGiáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
Giáo trình thực vật học 2 - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdfGiáo trình mô động vật - Trường ĐH Cần Thơ.pdf
Giáo trình mô động vật - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ hệ thống A - Trường ĐH Cần Thơ.pdf
 
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdfGiáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
Giáo trình ngôn ngữ mô hình hóa UML - Trường ĐH Cần Thơ.pdf
 
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdfGiáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
Giáo trình nguyên lý máy học - Trường ĐH Cần Thơ.pdf
 
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdfGiáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
Giáo trình mô hình hóa quyết định - Trường ĐH Cần Thơ.pdf
 
Giáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdfGiáo trình Linux và phần mềm nguồn mở.pdf
Giáo trình Linux và phần mềm nguồn mở.pdf
 
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdfGiáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
Giáo trình logic học đại cương - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdfGiáo trình lý thuyết điều khiển tự động.pdf
Giáo trình lý thuyết điều khiển tự động.pdf
 
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdfGiáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
Giáo trình mạng máy tính - Trường ĐH Cần Thơ.pdf
 
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdfGiáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
Giáo trình lý thuyết xếp hàng và ứng dụng đánh giá hệ thống.pdf
 
Giáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdfGiáo trình lập trình cho thiết bị di động.pdf
Giáo trình lập trình cho thiết bị di động.pdf
 
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình web  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình web - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình .Net  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình .Net - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song  - Trường ĐH Cần Thơ.pdfGiáo trình lập trình song song  - Trường ĐH Cần Thơ.pdf
Giáo trình lập trình song song - Trường ĐH Cần Thơ.pdf
 
Giáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdfGiáo trình lập trình hướng đối tượng.pdf
Giáo trình lập trình hướng đối tượng.pdf
 
Giáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdfGiáo trình lập trình hướng đối tượng Java.pdf
Giáo trình lập trình hướng đối tượng Java.pdf
 
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdfGiáo trình kỹ thuật phản ứng  - Trường ĐH Cần Thơ.pdf
Giáo trình kỹ thuật phản ứng - Trường ĐH Cần Thơ.pdf
 

Kürzlich hochgeladen

GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanmyvh40253
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxTrnHiYn5
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...Nguyen Thanh Tu Collection
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfXem Số Mệnh
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...Nguyen Thanh Tu Collection
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdfTrnHoa46
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoámyvh40253
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-KhnhHuyn546843
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnpmtiendhti14a5hn
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfXem Số Mệnh
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...Nguyen Thanh Tu Collection
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...Nguyen Thanh Tu Collection
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhdtlnnm
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docxTHAO316680
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiNgocNguyen591215
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptPhamThiThuThuy1
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...ChuThNgnFEFPLHN
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIĐiện Lạnh Bách Khoa Hà Nội
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxDungxPeach
 

Kürzlich hochgeladen (20)

GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quanGNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
GNHH và KBHQ - giao nhận hàng hoá và khai báo hải quan
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
TÀI LIỆU BỒI DƯỠNG HỌC SINH GIỎI KỸ NĂNG VIẾT ĐOẠN VĂN NGHỊ LUẬN XÃ HỘI 200 C...
 
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdfxemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
xemsomenh.com-Vòng Tràng Sinh - Cách An 12 Sao Và Ý Nghĩa Từng Sao.pdf
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
sách sinh học đại cương - Textbook.pdf
sách sinh học đại cương   -   Textbook.pdfsách sinh học đại cương   -   Textbook.pdf
sách sinh học đại cương - Textbook.pdf
 
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoáCác điều kiện bảo hiểm trong bảo hiểm hàng hoá
Các điều kiện bảo hiểm trong bảo hiểm hàng hoá
 
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
cac-cau-noi-tthcm.pdf-cac-cau-noi-tthcm-
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
3-BẢNG MÃ LỖI CỦA CÁC HÃNG ĐIỀU HÒA .pdf - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
TUYỂN TẬP 50 ĐỀ LUYỆN THI TUYỂN SINH LỚP 10 THPT MÔN TOÁN NĂM 2024 CÓ LỜI GIẢ...
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhhkinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
kinh tế chính trị mác lênin chương hai và hàng hoá và sxxhh
 
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
1.DOANNGOCPHUONGTHAO-APDUNGSTEMTHIETKEBTHHHGIUPHSHOCHIEUQUA (1).docx
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘIGIÁO TRÌNH  KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
GIÁO TRÌNH KHỐI NGUỒN CÁC LOẠI - ĐIỆN LẠNH BÁCH KHOA HÀ NỘI
 
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptxBài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
Bài tập nhóm Kỹ Năng Gỉai Quyết Tranh Chấp Lao Động (1).pptx
 

TÌM HIỂU và THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ dữ LIỆU GSP.pdf

  • 1. Chuyên Đề Công Nghệ Phần Mềm Tên đề tài: TÌM HIỂU VÀ THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ DỮ LIỆU GSP Giảng viên hướng dẫn: Nguyễn Mạnh Sơn Họ và tên sinh viên: Lại Thế Quyền Quách Văn Phong Cấn Quang Hưng Lớp : L14CNPM
  • 2. MỤC LỤC 1.Khai phá dữ liệu............................................................................................................................4 1.1Tại sao lại khai phá dữ liệu?...............................................................................4 1.2 Định nghĩa khai phá dữ liệu...............................................................................5 1.3 Các bước chính trong khám phá tri thức...........................................................6 2. Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu.........................................7 2.1 Các hướng tiếp cận và các kỹ thuật chính trong khai phá dữ liệu....................7 2.1 Các dạng dữ liệu có thể khai phá.......................................................................8 3. Ứng dụng của Khai phá dữ liệu..................................................................................................8 1. Giới thiệu chung về luật kết hợp.................................................................................................9 1.1 Khái niệm luật kết hợp.......................................................................................9 1.2 Các ứng dụng điển hình của luật kết hợp........................................................10 2.Luật dãy.......................................................................................................................................11 2.1 Khái niệm luật dãy và ví dụ............................................................................11 2.2 Một số ứng dụng...............................................................................................13 Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY................................16 1.Khái quát về khai phá luật dãy...................................................................................................16 2.Thuật toán GSP (Generalized Sequential Patterns)...................................................................18 2
  • 3. Giới thiệu đề tài Khai phá mẫu dãy là một nội dung quan trọng trong khai phá dữ liệu với nhiều ứng dụng rộng rãi như phân tích thị trường, phân tích mẫu truy cập web, phát hiện xâm nhập trong môi trường mạng, trong nghiên cứu DNA, dự doán nhu cầu mua sắm của khách hàng… Khai phá mẫu dãy là việc phát hiện các dãy con phổ biến trong cơ sở dữ liệu dãy. Theo các nghiên cứu, các thuật toán, khai phá mẫu dãy chủ yếu tập chung vào hai nội dung là cách thức mà dãy ứng viên được sinh ra và lưu trữ, cách mà độ hỗ trợ được tính và tần suất dãy ứng viên được kiểm tra. Dựa vào các tiêu chí trên, thuật toán khai phá mẫu dãy có thể được nhóm thành hai hướng tiếp cận chính: thuật toán dựa trên Aproori, thuật toán pháy triển mẫu. Có một số thuật toán theo phương pháp tiếp cận dựa trên Apriori như AprioriAll, GSP, Spade, Spam… và các biến thể của chúng. 3
  • 4. Chương I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1. Khai phá dữ liệu 1.1 Tại sao lại khai phá dữ liệu? Hơn một thập niên trở lại đây, lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, .v.v.) không ngừng tăng lên. Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ. Người ta ước đoán rằng, lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các CSDL cũng tăng lên một cách nhanh chóng [AR95]. Hình 1 - Lượng dữ liệu được tích lũy tăng mạnh theo thời gian Chúng ta quả thực đang “ngập” trong dữ liệu, nhưng lại cảm thấy “đói” tri thức và thông tin hữu ích. Lượng dữ liệu khổng lồ này thực sự là một nguồn “tài nguyên” rất giá trị bởi thông tin là yếu tố then chốt trong hoạt động kinh doanh vì nó giúp những người điều hành và quản lý có một cái nhìn sâu sắc, chính xác, khách quan vào tiến trình kinh doanh trước khi ra quyết định. KPDL – khai thác những thông tin tiềm ẩn có tính dự đoán từ những CSDL lớn – là một hướng tiếp cận mới với khả năng giúp các công ty chú trọng vào những thông tin có nhiều ý nghĩa từ những tập hợp dữ liệu lớn (databases, data warehouses, data repositories) mang tính lịch sử. Những công cụ KPDL có thể dự đoán những xu hướng trong tương lai và do đó cho phép doanh nghiệp ra những quyết định kịp thời được định hướng bởi tri thức mà KPDL đem lại. Sự phân tích dữ liệu một cách tự động và mang tính dự báo của KPDL có ưu thế hơn hẳn so với sự phân tích thông thường dựa trên những sự kiện trong quá khứ của các hệ hỗ trợ ra quyết định (decision support systems - DSSs) truyền thống trước đây. Công cụ KPDL cũng có thể trả lời những câu hỏi trong lĩnh vực kinh doanh mà trước đây được xem là tốn nhiều thời gian để xử lý. Với tất cả những ưu thế trên, KPDL đã chứng tỏ được tính hữu dụng của nó trong môi 4
  • 5. trường kinh doanh đầy tính cạnh tranh ngày nay. Giờ đây, KPDL đã và đang trở thành một trong những hướng nghiên cứu chính của lĩnh vực khoa học máy tính và công nghệ tri thức. Phạm vi ứng dụng ban đầu của KPDL chỉ là trong lĩnh vực thương mại (bán lẻ) và tài chính (thị trường chứng khoán). Nhưng ngày nay, KPDL đã được ứng dụng rộng rãi trong các lĩnh vực khác như tin-sinh (bio-informatics), điều trị y học (medical treatment), viễn thông (telecommunication), giáo dục (education), .v.v. 1.2 Định nghĩa khai phá dữ liệu Chúng ta có thể hiểu một cách sơ lược rằng KPDL là quá trình tìm kiếm những thông tin (tri thức) hữu ích, tiềm ẩn và mang tính dự báo trong các tập dữ liệu lớn. Như vậy, chúng ta nên gọi quá trình này là khám phá tri thức (Knowledge Discovery in Databases – KDD) thay vì là KPDL. Tuy nhiên các nhà khoa học trong lĩnh vực này đồng ý với nhau rằng hai thuật ngữ trên là tương đương và có thể thay thế cho nhau. Họ lý giải rằng, mục đích chính của quá trình khám phá tri thức là thông tin và tri thức có ích, nhưng đối tượng mà chúng ta phải xử lý rất nhiều trong suốt quá trình đó lại chính là dữ liệu. Mặt khác, khi chia các bước trong quá trình khám phá tri thức, một số nhà nghiên cứu lại cho rằng, KPDL chỉ là một bước trong quá trình khám phá tri thức [FSSU96]. Như vậy, khi xét ở mức tổng quan thì hai thuật ngữ này là tương đương nhau, nhưng khi xét cụ thể thì KPDL được xem là một bước trong quá trình khám phá tri thức. Có rất nhiều định nghĩa về KPDL, các định nghĩa này đều là những định nghĩa mang tính mô tả. Xin trích một vài định nghĩa ở nguyên bản tiếng Anh nhằm chuyển tải được y nguyên ý của tác giả và tránh được những sai sót chủ quan: Định nghĩa 1. William J Frawley, Gregory Piatetsky-Shapiro, và Christopher J Matheus 1991 [FSSU96]: “Knowledge discovery in databases, also known Data mining, is the non- trivial process of identifying valid, novel, potentially useful, and ultimately understandable patterns in data.” Định nghĩa 2. Marcel Holshemier và Arno Siebes (1994): 5
  • 6. “Data Mining is the search for relationships and global patterns that exist in large databases but are ‘hidden’ among the vast amount of data, such as a relationship between patient data and their medical diagnosis. These relationships represent valuable knowledge about the database and the objects in the database and, if the database is a faithful mirror, of the real world registered by the database.” 1.3 Các bước chính trong khám phá tri thức Người ta thường chia quá trình khám phá tri thức thành các bước sau [AR95] [MM00] [HK02]: • 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. • 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. • Biến đổi dữ liệu (data transformation): đây 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. • KPDL (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin, những mối liên hệ (relationships) đặ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. • Biểu diễn và đánh giá tri thức (knowledge representation & evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu đã được khai 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, .v.v. Đồ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. 6
  • 7. Hình 2 - Các bước trong quá trình khám phá tri thức (KDD) 2. Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu 2.1 Các hướng tiếp cận và các kỹ thuật chính trong khai phá dữ liệu Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các bài toán khác nhau. Sau đây là một số hướng tiếp cận chính [HK02]. • Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết. Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), .v.v. Phân lớp còn được gọi là học có giám sát (học có thầy – supervised learning). • Luật kết hợp (association rules): là dạng luật biểu diễn tri thứ ở dạng khá đơn giản. Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, .v.v. • Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao. • Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước. Phân cụm còn được gọi là học không giám sát (học không có thầy – unsupervised learning). • Mô tả khái niệm (concept description & summarization): thiên về mô tả, 7
  • 8. tổng hợp và tóm tắt khái niệm. Ví dụ: tóm tắt văn bản. 2.1 Các dạng dữ liệu có thể khai phá Do KPDL được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều kiểu dữ liệu khác nhau [HK02]. Sau đây là một số kiểu dữ liệu điển hình. • CSDL quan hệ (relational databases) • CSDL quan hệ - hướng đối tượng (object-relational databases) • CSDL đa phương tiện (multimedia databases) như âm thanh (audio), hình ảnh (image), phim ảnh (video), .v.v. • Dữ liệu Text và Web (text database & www) • …… 3. Ứng dụng của Khai phá dữ liệu KPDL tuy là một lĩnh vực mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó. Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình: • Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support) • Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẩu thuật, …). • 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, .v.v. • Tin-sinh (bio-informatics): tìm kiếm, đối sánh các hệ gene và thông tin di truyền, mối liên hệ giữa một số hệ gene và một số bệnh di truyền, .v.v. • Tài chính và thị trường chứng khoán (finance & stock market): 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, .v.v. • Bảo hiểm (insurance)  .v.v. 8
  • 9. Chương II: KHÁI QUÁT CHUNG VỀ LUẬT KẾT HỢP, LUẬT DÃY VÀ KHAI PHÁ LUẬT DÃY Khai phá luật dãy là một chủ đề thiết thực và quan trọng trong khai phá dữ liệu với nhiều ứng dụng như là trong phân tích giao dịch mua hàng của khách hàng, khai thác weblogs, khai thác các dãy ADN, nghiên cứu dữ liệu trong các bài toán khí tượng - thủy văn như dự báo thời tiết, các thảm họa tự nhiên như động đất, sóng thần... Các thuật toán khai phá luật dãy kế thừa nhiều từ các thuật toán khai phá luật kết hợp, và nhiều thuật toán trong số đó là mở rộng của các thuật toán khởi thủy, ở đó sự khác biệt chính là trong khai phá luật dãy đưa ra các phân tích liên giao dịch (inter- transaction), trong khi đó khai phá luật kết hợp là tìm luật về mối liên quan giữa các phần tử trong cùng một giao dịch (intra- transaction). Trước tiên, ta cần tìm hiểu một số vấn đề của luật kết hợp. 1. Giới thiệu chung về luật kết hợp 1.1 Khái niệm luật kết hợp Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu. Nội dung cơ bản của luật kết hợp được tóm tắt như dưới đây. Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn. T = {t1, t2, …, tn}. T gọi là cơ sở dữ liệu giao dịch (Transaction Database). Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset) I = {i1, i2, …, im}. Một itemset gồm k items gọi là k-itemset Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items. Những luật kết hợp này có dạng X =>Y Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. (X và Y gọi là itemset). Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian. Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable) Độ hỗ trợ (Support) và độ tin cây (Confidence) là 2 tham số dùng để đo lường luật kết hợp. Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa là 5% các giao dịch X và Y được mua cùng nhau. Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X. Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% khách hàng mua Apple cũng mua Banana. 9
  • 10. Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support (min_sup) và minimum confidence (min_conf) Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng) cả Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rle) Minimum support và Minimum confidence gọi là các giá trị ngưỡng (threshold) và phải xác định trước khi sinh các luật kết hợp. Một itemsets mà tần suất xuất hiện của nó >= min_sup goi là frequent itemsets Một số loại luật kết hợp Binary association rules (luật kết hợp nhị phân): Apple => Banana Quantitative association rules (luật kết hợp định lượng): weight in [70kg – 90kg] => height in [170cm – 190cm] Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY => height in TALL Thuật toán phổ biến nhất tìm các luật kết hợp là Apriori sử dụng Binary association rules. 1.2 Các ứng dụng điển hình của luật kết hợp Một số ứng dụng điển hình như: phân tích giỏ hàng (market basket analysis), đưa ra chiến lược tiếp thị, thiết kế bài trí gian hàng, chiến lược bán hàng khuyến mại, các bài toán phân lớp, phân cụm, ... Market basket analysis: Chẳng hạn, một người quản lý một chi nhánh bán hàng, họ muốn biết thêm về thói quen mua sắm của khách hàng. Cụ thể như họ muốn biết rằng “Trong mỗi lần mua sắm, khách hàng thường mua các nhóm mặt hàng nào cùng nhau?”. Để trả lời câu hỏi này, việc phân tích giỏ khách hàng sẽ được thực hiện trên dữ liệu mua bán lẻ của khách hàng đã được lưu trữ. Sau đó có thể sử dụng kết quả đó để lên kế hoạch tiếp thị, chiến lược quảng cáo hoặc dự định bổ sung các danh mục hàng hóa mới. Việc phân tích giỏ hàng có thể giúp bạn thiết kế gian hàng với các cách bài trí hàng hóa khác nhau. Các mặt hàng thường xuyên được mua với nhau có thể được đặt ở gần nhau để thúc đẩy việc bán hàng. Nếu khách hàng mua máy tính cũng có xu hướng mua phần mềm diệt virus cùng lúc, cũng thế, đặt màn hình gần với các phần mềm hiển thị có thể giúp tăng doanh số bán hàng của cả hai. Trong một chiến lược khác, bố trí phần cứng và phần mềm ở hai đầu của cửa hàng có thể lôi kéo khách hàng mua những mặt hàng khác trên đường di chuyển giữa hai vị trí. Ví dụ, sau khi quyết định mua một máy tính đắt tiền, trong khi đến mua phần mềm diệt virus, khách hàng quan sát thấy hệ thống an ninh gia đình được trưng bày và có thể quyết định mua. Việc phân tích giỏ hàng cũng có thể giúp các nhà bán lẻ đưa ra các kế hoạch bán hàng giảm giá. Thông thường, khách hàng có xu hướng mua máy tính và máy in với nhau, khi đó có thể bán giảm giá máy in nếu khách hàng mua máy tính. Trong gian hàng, mỗi mặt hàng gắn với một biến Boolean biểu thị sự có mặt hay vắng mặt của mặt hàng đó. Tiếp đến, mỗi giỏ hàng có thể được thể hiện bởi một vector Boolean các giá trị được gán cho các biến đó. Các vector Boolean biểu thị 10
  • 11. các mẫu mua hàng mà ở đó các mặt hàng được kết hợp một cách thường xuyên hoặc được mua với nhau. Các mẫu này có thể được biểu thị ở dạng các luật kết hợp. Ví dụ, khách hàng mua máy tính cũng có xu hướng mua phần mềm diệt virus cùng lúc, có thể được biểu diễn với luật kết hợp như sau: computer ⇒ antivirus_software [support = 2%, confidence = 60%] support = 2% nghĩa là có 2% trong tất cả các giao dịch được phân tích cho thấy máy tính và phần mềm diệt virus được mua cùng lúc. confidence = 60% nghĩa là có 60% số lượng khách hàng đã mua máy tính thì cũng mua phần mềm. Thông thường, các luật kết hợp được quan tâm nếu chúng đáp ứng được cả ngưỡng hỗ trợ tối thiểu và ngưỡng tin cậy tối thiểu. Các ngưỡng này có thể được thiết lập bởi người dùng. 2. Luật dãy 2.1 Khái niệm luật dãy và ví dụ Ta giới thiệu vấn đề dựa trên quá trình mua bán hàng và một CSDL lưu trữ thông tin giao dịch mua bán hàng bao gồm các thông tin về mã khách hàng (customer-id), thời gian giao dịch (transaction-time) và các mặt hàng trong giao dịch.  Các khái niệm Một itemset là một tập không rỗng các phần tử (item). Một dãy (sequence) là một danh sách có thứ tự các itemset. Không mất tính tổng quát, chúng ta giả sử rằng một tập các phần tử được ánh xạ tới một tập các số nguyên liền kề. Ta biểu thị itemset i bởi (i1i2...im), trong đó ij là một phần tử. Ta biểu thị dãy s bởi (s1s2...sn), trong đó sj là một itemset. Dãy (a1a2...an) được chứa trong dãy (b1b2...bn) nếu ở đó tồn tại các số nguyên i1 < i2 < ... < in sao cho a1 ⊆ bi1 , a2 ⊆ bi2 , ..., an ⊆ bin. Ta sử dụng ký hiệu  để biểu thị quan hệ “được chứa trong”. Ví dụ, dãy <(3) (4,5) (8)> <(7) (3 8) (9) (4 5 6) (8)>, vì ((3) ⊆ (3 8), (4 5) ⊆ (4 5 6) và (8) ⊆ (8). Tuy nhiên, dãy <(3) (5)> không được chứa trong <(3 5)> và ngược lại. Phần tử 3 và 5 trong dãy <(3) (5)> mô tả chúng không nằm trong cùng một lần giao dịch, trong khi phần tử 3 và 5 trong dãy <(3 5)> mô tả chúng nằm trong một lần giao dịch. Trong một tập các dãy, một dãy s là lớn nhất hay tối đa (maximal) nếu s không được chứa trong bất kỳ dãy nào khác. Tất cả các giao dịch của cùng một khách hàng có thể được xem như là một dãy. Trong đó, mỗi giao dịch được xem như một tập các phần tử, và danh sách các giao 11
  • 12. dịch theo thứ tự tăng dần về thời gian giao dịch tương ứng với một dãy. Chúng ta gọi đó là một dãy khách hàng (customer-sequence). Ta biểu thị các giao dịch của một khách hàng được sắp xếp thứ tự tăng dần theo thời gian là (T1, T2, ..., Tn). Tập các phần tử (item) trong Ti được biểu thị bởi itemset(Ti). Dãy customer-sequence của một khách hàng là một dãy <itemset(T1) itemset(T2) ... itemset(Tn)>. Một khách hàng hỗ trợ một dãy s nếu s được chứa trong dãy customer-sequence đối với khách hàng đó. Độ hỗ trợ của một dãy được định nghĩa là số khách hàng hỗ trợ dãy đó. Các dãy tối đa trong số tất cả các dãy phổ biến đáp ứng mức hỗ trợ tối thiểu cụ thể nào đó được gọi là luật dãy hay mẫu dãy (sequential patterns). Ta gọi dãy đáp ứng độ hỗ trợ tối thiểu là dãy phổ biến (large sequence)  Ví dụ Cho CSDL mua bán hàng thể hiện trong hình 1.1. Transaction Time Customer Id Items Bought June 10 '93 2 10, 20 June 12 '93 5 90 June 15 '93 2 30 June 20 '93 2 40, 60, 70 June 25 '93 4 30 June 25 '93 3 30, 50, 70 June 25 '93 1 30 June 30 '93 1 90 June 30 '93 4 40, 70 July 25 '93 4 90 Hình 1.1: CSDL gốc CSDL trong hình 1.2 đã được sắp xếp theo mã khách hàng (customer-id) và thời gian giao dịch. Customer Id Transaction Time Items Bought 1 June 25 '93 30 1 June 30 '93 90 2 June 10 '93 10, 20 2 June 15 '93 30 2 June 20 '93 40, 60, 70 3 June 25 '93 30, 50, 70 4 June 25 '93 30 4 June 30 '93 40, 70 12
  • 13. 4 July 25 '93 90 5 June 12 '93 90 Hình 1.2: CSDL được sắp xếp theo Khách hàng ID và thời gian giao dịch CSDL hình 1.3 thể hiện như là một tập các dãy khách hàng (customer-sequence). Customer Id Customer Sequence 1 <(30) (90)> 2 <(10 20) (30) (40 60 70)> 3 <(30 50 70)> 4 <(30) (40 70) (90)> 5 <(90)> Hình 1.3: CSDL theo dãy khách hàng (customer-sequence) Với mức hỗ trợ tối thiểu là 25%, tức là xuất hiện tối thiểu 2 trong tổng số 5 khách hàng, hai dãy <(30) (90)> và <(30) (40 70)> là lớn nhất trong số các dãy đáp ứng điều kiện giàng buộc hỗ trợ, và là các mẫu dãy mong muốn. Mẫu dãy <(30) (90)> xuất hiện trong các giao dịch của khách hàng 1 và 4. Mẫu dãy <(30) (40 70)> xuất hiện trong giao dịch của khách hàng 2 và 4.(Vì (40 70) là tập con của (40 60 70) nên cũng được tính cho khách hàng 2). Ví dụ về một dãy mà không có hỗ trợ tối thiểu là dãy <(10 20) (30)>, dãy này chỉ xuất hiện trong giao dịch của khách hàng 2. Các dãy <(30)>, <(40)>, <(70)>, <(90)>, <(30) (40)>, <(30) (70)>, <(40 70)> mặc dù thỏa mãn hỗ trợ tối thiểu, nhưng chúng không phải dãy tối đa nên không phải là kết quả cần tìm. Sequential Patterns with support > 25% <(30) (90)> <(30) (40 70)> Hình 1.4: Tập kết quả 2.2 Một số ứng dụng  Khai phá dãy cho các mẫu hành vi người dùng trong lĩnh vực thương mại điện thoại di động Sự phát triển của máy tính và các công nghệ truyền thông gần đây giúp cho các hệ thống liên lạc cá nhân (Personal Communication Systems - PCSs) ngày càng trở nên phổ biến, đặt ra vấn đề về quản lý thông tin di động. Mô hình hóa một cách hiệu quả các mẫu hành vi của người sử dụng trong các hệ thống điện thoại di động đem lại lợi ích không chỉ cho người sử dụng trong những truy cập thông minh, mà còn đem lại lợi nhuận tài chính cho các nhà cung cấp dịch vụ di động như quảng cáo. Trong môi trường web, người sử dụng di động có thể yêu cầu các loại hình dịch vụ khác nhau và ứng dụng của điện thoại di động, PDA hay máy 13
  • 14. tính xách tay từ bất cứ đâu tại bất kỳ thời gian nào thông qua GSM, GPRS hoặc mạng không dây. Rõ ràng là những hành vi của người sử dụng điện thoại di động (trong đó vị trí và dịch vụ vốn đã cùng tồn tại) trở nên phức tạp hơn so với các hệ thống web truyền thống. Để giúp người sử dụng thu nhận được thông tin mong muốn trong một thời gian ngắn là một trong những ứng dụng nhiều hứa hẹn, đặc biệt khi mà người dùng không có nhiều thời gian để lướt nhiều trang web. Hệ thống quản lý thông tin di động lưu trữ và cập nhật các thông tin vị trí của người sử dụng điện thoại di động, những người được phục vụ bởi hệ thống. Một chủ đề nóng trong lĩnh vực nghiên cứu quản lý thông tin di động là dự đoán di động. Dự đoán di động có thể được định nghĩa là dự đoán vị trí di chuyển tiếp theo của người sử dụng di động giữa các vùng trong hệ thống liên lạc cá nhân PCS hoặc mạng GSM. Dự đoán đó có thể được sử dụng để tăng hiệu quả của PCSs. Sử dụng dự đoán di chuyển, hệ thống có thể phân bổ nguồn tài nguyên một cách hiệu quả khả năng di chuyển đến các vùng thay vì phân bổ nguồn tài nguyên một cách không có định hướng trong các vùng lân cận của người sử dụng điện thoại di động. Hiệu quả phân bổ nguồn tài nguyên cho người dùng di động sẽ cải thiện việc sử dụng tài nguyên và giảm độ trễ trong việc tiếp cận các nguồn tài nguyên. Dự báo chính xác thông tin vị trí cũng rất quan trọng trong xử lý các truy vấn phụ thuộc vào vị trí của người dùng di động. Khi người dùng đưa ra một truy vấn liên quan đến vị trí, câu trả lời cho truy vấn sẽ phụ thuộc vào vị trí hiện tại của người dùng. Nhiều phạm vi ứng dụng bao gồm cả lĩnh vực chăm sóc sức khỏe, khoa học sinh học, quản lý khách sạn, và lợi ích quân sự từ hiệu quả xử lý các truy vấn phụ thuộc vào vị trí. Với hiệu quả dự đoán về vị trí, có thể thể trả lời các truy vấn liên quan đến vị trí di chuyển tiếp theo của người sử dụng. So với số lượng công việc thực hiện cho việc cập nhật vị trí, một số ít đã được thực hiện trong lĩnh vực dự báo di chuyển. Những công việc này có một số hạn chế, được giải thích như sau: • Một số trong đó là sự không nỗ lực tìm kiếm các mẫu thông tin di động. Thay vào đó, các mẫu này được giả định là có sẵn. Những mẫu này sau đó được sử dụng để dự báo di chuyển. • Việc dự đoán được dựa trên khả năng phân bố của tốc độ và hướng của người sử dụng điện thoại di động. Để thu thập những thông tin như vậy, cần thiết phải có những công cụ rất tinh vi và tốn kém như hệ thống định vị toàn cầu (Global Positioning System - GPS). Nhằm khắc phục những hạn chế trên, người ta đã phát triển một thuật toán dự đoán di động hiệu quả. Những qui luật này được gọi là các mẫu di động. Sau đó, các luật di động này được trích xuất ra từ các mẫu di động. Các quy tắc di động được gắn với quỹ đạo hiện tại của một người sử dụng điện thoại di động, và được sử dụng cho các dự đoán hướng di chuyển tiếp theo của người dùng. Thuật toán dự đoán này là khai phá các mẫu di động của người dùng và sinh ra các luật di động, được thực hiện 14
  • 15. offline bởi hệ thống. Tuy nhiên, dự báo di chuyển được thực hiện online. Điều đó có nghĩa là bất cứ khi nào người dùng có ý định thực hiện một di chuyển trong một khu vực nhất định, một yêu cầu dự đoán sẽ được gửi đến hệ thống và dự đoán được thực hiện bởi hệ thống bằng cách sử dụng các luật di động dựa trên thuật toán dự đoán. Hình 1.5: Kiến trúc tổng thể của hệ thống quản lý thông tin di động 15
  • 16. Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY 1. Khái quát về khai phá luật dãy Khai phá luật dãy xử lý dữ liệu điển hình là các dãy là một tập hợp các phần tử được sắp thứ tự. So với vấn đề luật kết hợp, luật dãy nghiên cứu dữ liệu đưa ra các phân tích “liên giao dịch” (inter-transaction). Có rất nhiều ứng dụng về khai phá mẫu dãy và vấn đề cũng được định nghĩa theo những cách khác nhau với mức độ thay đổi không đáng kể. Kết hợp với các giải pháp hiệu quả, những vấn đề này có thể phù hợp với dữ liệu thực tế có mốc thời gian (timestamp) (khi mà luật kết hợp đã không giải quyết được) và cung cấp những kết quả hữu ích. Ta sử dụng CSDL giao dịch mua bán hàng làm ví dụ, với các thông tin về: định danh của dãy hoặc định danh khách hàng (sequence-id or customer-id), thời gian giao dịch (transaction-time) và mặt hàng liên quan trong giao dịch (item). Một CSDL như vậy được gọi là CSDL dãy. Chính xác hơn, mỗi giao dịch là một tập hợp các mặt hàng (itemset) và mỗi dãy là một danh sách các giao dịch được sắp xếp theo thời gian giao dịch. Đối với hiệu quả của việc trợ giúp ra quyết định, mục đích là để tìm ra những thói quen tiêu biểu của người dùng. Để làm được việc đó, đòi hỏi phải có một CSDL dãy và đưa ra giá trị hỗ trợ tức là số lần xuất hiện trong CSDL. Một mẫu dãy phổ biến là một dãy mà tần xuất xuất hiện trong CSDL vượt ngưỡng quy định. Vấn đề tìm kiếm tất cả các mẫu thường xuyên từ lượng dữ liệu khổng lồ đòi hỏi chi phí về mặt thời gian là rất lớn. Thông thường, việc kiểm tra của tất cả các kết hợp có thể trong dữ liệu là vấn đề khó và những thuật toán mới tập trung vào dữ liệu dãy được coi là quan trọng đối với một tổ chức. Khai phá luật dãy có thể được áp dụng rộng rãi trên các ứng dụng từ nhiều loại dữ liệu có thời gian liên quan. Ví dụ, từ một CSDL mua bán hàng, một mẫu dãy có thể được dùng để phát triển các chiến lược tiếp thị và sản phẩm; Bằng cách phân tích weblog, các mẫu dãy rất hữu ích cho việc xây dựng website công ty giúp khách hàng truy cập một cách dễ dàng các liên kết phổ biến nhất (Kosala và Blockeel, 2000); Ta cũng có thể thấy CSDL báo động mạng viễn thông, phát hiện xâm nhập (Hu và Panda, 2004), các dãy ADN (Zaki, 2003), … Chúng ta chia vấn đề khai phá luật dãy thành các giai đoạn sau đây:  Giai đoạn sắp xếp (Sort Phase): CSDL (D) được sắp xếp, với mã khách hàng (custorm-id) là khóa chính và thời gian giao dịch (transaction-time) là khóa phụ. Bước này chuyển đổi ngầm cơ sơ dữ liệu giao dịch gốc thành CSDL dãy khách hàng.  Giai đoạn Litemset (Litemset Phase): Trong giai đoạn này, chúng ta tìm tập tất cả litemsets L, đồng thời cũng tìm kiếm tập tất cả các dãy phổ biến 1-sequence, vì tập này cũng là {<l> | l ∈ L}. 16
  • 17. Với giao dịch của một khách hàng, độ hỗ trợ được tính tăng lên chỉ một lần ngay cả khi khách hàng mua cùng một tập các sản phẩm trong hai hay nhiều giao dịch khác nhau. Tập hợp các litemsets được ánh xạ tới một tập hợp các số nguyên liên tiếp. Sau bước xử lý litemsets để có được các thực thể duy nhất, việc ánh xạ này giúp ta có thể so sánh hai litemsets có bằng nhau hay không trong thời gian cố định, và giảm số lần cần thiết để kiểm tra nếu một dãy được chứa trong dãy khách hàng.  Giai đoạn chuyển đổi (Transformation Phase): Như chúng ta sẽ thấy trong giai đoạn dãy (Sequence Phase), cần phải xác định lặp đi lặp lại nhiều lần để đưa ra một tập các dãy phổ biến (large sequences) được chứa trong một dãy khách hàng. Để thực hiện điều này một cách nhanh chóng, ta chuyển đổi mỗi dãy khách hàng thành một đại diện thay thế. Trong một dãy khách hàng được chuyển đổi, mỗi giao dịch được thay thế bằng tập tất cả các litemsets được chứa trong giao dịch đó. Nếu một giao dịch không chứa bất kỳ litemset nào, nó không được giữ lại trong dãy chuyển đổi. Nếu một dãy khách hàng không chứa bất kỳ litemset nào thì dãy này bị loại bỏ trong CSDL chuyển đổi. Tuy nhiên, nó vẫn góp phần vào việc tính tổng số lượng khách hàng. Một dãy các khách hàng khi đó được thể hiện bởi một danh sách tập các litemsets. Mỗi tập litemsets được biểu diễn bởi {l1, l2, ..., ln}, trong đó li là một litemset. CSDL chuyển đổi này gọi là DT. Tiếp tục sử dụng CSDL trong phần 1.2 làm ví dụ, việc chuyển đổi CSDL Hình 1.3 được thể hiện trong Hình 2.1. Ví dụ, trong trong việc chuyển đổi dãy khách hàng với Id 2, giao dịch (10 20) bị loại bỏ vì nó không chứa bất kỳ litemset nào và giao dịch (40 60 70) được thay thế bằng tập litemsets {(40),(70), (40 70)}. Customer Id Original Customer Sequence Transformed Customer Sequence After Mapping 1 < (30) (90)> < {(30)} {(90)}> <{1} {5}> 2 < (10 20) (30) < {(30)} {(40), (70), <{1} {2,3,4}> (40 60 70) > (40 70)}> 3 < (30 50 70)> < {(30), (70)}> <{1,3}> 4 < (30) (40 70) (90)> < {(30)} {(40), (70), (40 70)} <{1} {2,3,4} {(90)}> {5}> 5 < (90)> < {(90)}> <{5}> Hình 2.1: CSDL đã được chuyển đổi từ Hình 1.3
  • 18.  Giai đoạn dãy (Sequence Phase): Ta sử dụng tập các litemsets để tìm các dãy ứng viên. Cấu trúc chung là thực hiện các quá trình duyệt lặp đi lặp lại trên dữ liệu. Trong mỗi lần duyệt, ta bắt đầu với một tập khởi tạo các dãy phổ biến. Ta sử dụng tập khởi tạo này để sinh ra các dãy phổ biến mới, tiềm năng, gọi là các dãy ứng viên (candidate sequences). Tìm độ hỗ trợ cho các dãy ứng viên này trong suốt quá trình duyệt dữ liệu. Tại lần duyệt cuối cùng của mỗi bước, xác định dãy nào trong các dãy ứng viên là dãy phổ biến thực sự. Các dãy ứng viên phổ biến trở thành khởi tạo cho lần duyệt tiếp theo. Trong lần duyệt đầu tiên, tất cả các 1-sequences với độ hỗ trợ tối thiểu, được chứa trong giai đoạn litemset, tạo nên tập khởi tạo.  Giai đoạn tìm dãy tối đa (Maximal Phase): Tìm các dãy tối đa trong tập các dãy phổ biến (large sequences). Giai đoạn này được kết hợp với giai đoạn dãy (Sequence Phase) để giảm chi phí thời gian trong việc tính các dãy không tối đa. Tập tất cả các dãy phổ biến S được tìm thấy trong giai đoạn dãy, thuật toán tiếp theo đây có thể được sử dụng để tìm các dãy tối đa. Với n là độ dài của dãy dài nhất. for ( k = n; k > 1; k – – ) do foreach k-sequence sk do Delete from S all subsequences of sk 2. Thuật toán GSP (Generalized Sequential Patterns) Cấu trúc cơ bản của thuật toán GSP tìm kiếm mẫu dãy là thuật toán duyệt dữ liệu nhiều lần, lần duyệt đầu tiên xác định độ hỗ trợ của từng phần tử, tức là số lượng dữ liệu dãy có chứa các phần tử. Kết thúc lần duyệt đầu tiên, thuật toán đưa ra được các phần tử thường xuyên, nghĩa là thỏa mãn độ hỗ trợ tối thiểu. Mỗi phần tử như vậy tiết lộ một dãy phổ biến 1-element chứa phần tử đó. Mỗi dãy con bắt đầu duyệt với tập khởi đầu là các dãy phổ biến được tìm thấy trong lần duyệt trước đó. Tập khởi đầu được sử dụng để sinh ra các dãy phổ biến tiềm năng mới, gọi là các dãy ứng viên. Mỗi dãy ứng viên có ít nhất một phần tử thuộc dãy khởi đầu, vì thế tất cả các dãy ứng viên trong một lần duyệt sẽ có cùng số phần tử. Độ hỗ trợ cho các dãy ứng viên này được tìm thấy trong qúa trình duyệt dữ liệu. Kết thúc lần duyệt, thuật toán xác định các dãy ứng viên thường xuyên thực sự. Những ứng viên thường xuyên này trở thành tập khởi đầu cho lần duyệt tiếp theo. Thuật toán kết thúc khi không tìm được dãy phổ biến nào ở cuối lần duyệt, hoặc khi không có dãy ứng viên nào được sinh ra. Ta cần chỉ rõ hai điểm mấu chốt của thuật toán là cách sinh các dãy ứng viên (Candidate generation) và cách tính độ hỗ trợ để xác định dãy ứng viên (Counting
  • 19. candidates).  Sinh dãy ứng viên (Candidate Generation) Xét một dãy có k phần tử, gọi là k-sequence (nếu một phần tử xuất hiện nhiều lần trong các thành phần khác nhau của một dãy, mỗi lần xuất hiện được tính vào giá trị của k.). Gọi Lk biểu thị tập tất cả các dãy phổ biến k-sequence và Ck biểu thị tập các dãy ứng viên k-sequence. Cho Lk-1 là tập tất cả các dãy phổ biến (k-1)-sequence, ta cần tạo ra tập cha (superset) của tập tất cả các dãy phổ biến k-sequence. Đầu tiên, ta định nghĩa khái niệm về một dãy con liên tục. Định nghĩa: Cho dãy s = <s1 s2 … sn> và một dãy con c, c là dãy con liên tục của s nếu thỏa mãn bất kỳ điều kiện nào sau đây: 1. c nhận được từ s bằng cách lược bỏ phần tử s1 hoặc sn. 2. c nhận được từ s bằng cách lược bỏ một phần tử từ thành phần si mà si có ít nhất hai phần tử. 3. c là dãy con liên tục của c‟, và c‟ là dãy con liên tục của s. Ví dụ: Giả sử có dãy s = <(1,2) (3,4) (5) (6)>. Khi đó, các dãy con liên tục của s là <(2) (3,4) (5)>; <(1,2) (3) (5) (6)>; <(3) (5)>. Các dãy không phải là dãy con liên tục của s như: <(1,2) (3,4) (6)>; <(1,2) (5) (6)> Dữ liệu dãy có chứa dãy s cũng sẽ chứa bất kỳ dãy con liên tục nào của s. Nếu không có ràng buộc về khoảng thời gian tối đa max-gap, dữ liệu dãy sẽ chứa tất cả các dãy con của s (bao gồm cả các dãy con không liên tục). Đặc tính này cung cấp cơ sở cho thủ tục sinh dãy ứng viên. Thực hiện sinh các dãy ứng viên qua hai bước: a. Giai đoạn nối (Join Phase): Thực hiện sinh các dãy ứng viên bằng phép nối Lk- 1 với Lk-1. Một dãy s1 nối với s2 nếu dãy con thu được bằng cách loại bỏ phần tử đầu tiên của s1 và dãy thu được bằng cách loại bỏ phần tử cuối cùng của s2 là giống nhau. Dãy ứng viên được sinh bằng phép nối s1 với s2 là dãy s1 được mở rộng với phần tử cuối cùng trong s2. Phần tử được thêm trở nên thành phần riêng biệt nếu đó là một thành phần riêng biệt trong s2, và một phần của thành phần cuối cùng của s1 khác. Khi thực hiện nối L1 với L1, ta cần thêm vào phần tử trong s2 một phần của itemset cũng như một thành phần riêng biệt, vì cả hai <(x) (y)> và <(x y)> đều cho cùng một dãy <(y)> khi loại bỏ phần tử đầu tiên.
  • 20. (Ta thấy rằng s1 và s2 là các dãy con liên tục của các dãy ứng viên mới b. Giai đoạn thanh loại (Prune Phase): Ta loại bỏ các dãy ứng viên có dãy con liên tục (k-1)-subsequence mà có độ hỗ trợ nhỏ hơn độ hỗ trợ tối thiểu. Nếu không tính ràng buộc thời gian max-gap, ta cũng loại bỏ các dãy ứng viên mà có bất kỳ dãy con nào không thỏa mãn độ hỗ trợ tối thiểu. Ví dụ: Hình 1 cho thấy L3, và C4 sau khi thực hiện giai đoạn nối và thanh loại. Trong giai đoạn nối, dãy <(1, 2) (3)> nối với <(2) (3, 4)> để sinh ra dãy <(1, 2) (3, 4)> và nối với <(2) (3) (5)> để sinh ra dãy <(1, 2) (3) (5)>. Các dãy còn lại không được nối với bất kỳ dãy nào trong L3. Chẳng hạn, dãy <(1, 2) (4)> không được nối với bất kỳ dãy nào vì không có dãy nào có dạng <(2) (4 x)> hoặc <(2) (4) (x)>. Trong giai đoạn thanh loại, dãy <(1, 2) (3) (5)> bị loại bỏ vì dãy con liên tục của nó là <(1) (3) (5)> không thuộc L3. Frequent 3-Sequences Candidate 4-Sequences after join after pruning <(1, 2) (3)> <(1, 2) (3, 4)> <(1, 2) (3, 4)> <(1, 2) (4)> <(1, 2) (3) (5)> <(1) (3, 4)> <(1, 3) (5)> <(2) (3, 4)> <(2) (3) (5)> Hình 1: Ví dụ sinh dãy ứng viên  Tính độ hỗ trợ các ứng viên (Counting Candidates) Trong quá trình duyệt dữ liệu, ta đọc mỗi dữ liệu dãy tại một thời điểm và tăng độ hỗ trợ của các ứng viên có trong dữ liệu dãy. Như vậy, với một tập các dãy ứng viên C và một dữ liệu dãy d, ta cần tìm tất cả các dãy trong C có chứa d. Ta sử dụng hai kỹ thuật sau để giải quyết vấn đề này: 1. Sử dụng cấu trúc dữ liệu hash-tree để giảm số lượng các ứng viên trong C đã được kiểm tra cho một dữ liệu dãy. 2. Biến đổi đại diện của dữ liệu dãy d để có thể tìm kiếm ứng viên là dãy con của d một cách hiệu quả. Giảm số lượ ng các ứng viên cần kiể m tra: a. Thêm các dãy ứng viên vào hash-tree: Khi thêm một dãy s, ta bắt đầu đi từ nút gốc cho tới khi tìm được một nút lá. Tại nút trung gian có độ sâu p, ta lựa
  • 21. chọn nhánh tiếp theo bằng cách áp dụng một hàm băm cho phần tử thứ p của dãy. Lưu ý là ta áp dụng hàm băm đến phần tử thứ p, không phải là thành phần thứ p. Tất cả các nút được khởi tạo bước đầu là các nút lá. Khi số lượng các dãy trong một nút lá vượt quá một ngưỡng, nút lá khi đó được chuyển đến nút trung gian. b. Tìm các dãy ứng viên được chứa trong dữ liệu dãy: Bắt đầu từ nút gốc, ta tìm tất các các ứng viên được chứa trong dữ liệu dãy d. Áp dụng thủ tục sau, dựa trên các loại nút bao gồm:  Nút trung gian là nút gốc: Áp dụng hàm băm cho mỗi phần tử trong d, và áp dụng đệ quy thủ tục này tới nút nằm trong bucket tương ứng. Với bất kỳ dãy s được chứa trong dữ liệu dãy d, phần tử đầu tiên của s phải nằm trong d. Thực hiện băm trên mọi phần tử trong d, ta đảm bảo rằng chỉ bỏ qua các dãy bắt đầu với một phần tử không nằm trong d.  Nút trung gian không phải là nút gốc: Giả sử ta đến nút này bằng việc thực hiện băm phần tử x có thời gian giao dịch (transaction-time) là t. Áp dụng hàm băm tới mỗi phần tử trong d có thời gian giao dịch trong khoảng [t – window-size, t + max(window-size, max-gap)] và áp dụng đệ quy thủ tục này tới các nút trong bucket tương ứng. Để thấy tại sao kết quả trả về là tập các ứng viên, xét một dãy ứng viên s với hai phần tử liên tục là x và y. Cho x là phần tử được chứa trong giao dịch d với thời gian giao dịch là t. Vì d chứa s nên thời gian giao dịch tương ứng với y cần phải trong khoảng [t – window-size, t + window-size] nếu y là một phần của cùng thành phần chứa x, hoặc trong khoảng thời gian (t, t + max-gap] nếu y là một phần của thành phần kế tiếp. Do đó nếu chúng ta đạt đến nút này bằng thực hiện băm trên một phần tử x với thời gian giao dịch t, y phải được chứa trong một giao dịch có thời gian giao dịch ở trong khoảng [t – window-size, t + max (window-size, max-gap)] cho dữ liệu dãy để hỗ trợ các dãy. Như vậy chúng ta chỉ cần áp dụng hàm băm tới các phần tử trong d có thời gian giao dịch nằm trong khoảng thời gian trên, và kiểm tra các nút tương ứng.  Nút lá: Đối với mỗi dãy s là nút lá, ta kiểm tra xem d có chứa s, và thêm s vào tập kết quả nếu cần thiết. (Chúng ta sẽ thảo luận dưới đây cách chính xác để tìm d chứa một dãy ứng viên cụ thể.) Từ đó ta kiểm tra mỗi dãy được chứa trong nút này, và không bỏ qua bất kỳ dãy nào.
  • 22. Kiểm tra dữ liệu dãy chứa một dãy cho trướ c: Cho dữ liệu dãy d, và một dãy ứng viên s = <s1 … sn> . Trước tiên ta mô tả thuật toán để kiểm tra nếu d chứa s, giả sử tồn tại một thủ tục tìm kiếm sự xuất hiện đầu tiên của một thành phần của s ở d sau một thời gian nhất định, và sau đó mô tả thủ tục này. Thuật toán này kiểm tra nếu dữ liệu dãy d chứa một dãy ứng viên s luân phiên giữa hai giai đoạn. Thuật toán bắt đầu với giai đoạn duyệt xuôi từ phần tử đầu tiên.  Giai đoạn duyệt xuôi (forward phase): Thuật toán tìm thành phần kế tiếp của s trong d miễn là hiệu số giữa thời gian kết thúc của thành phần đã được tìm thấy và thời gian bắt đầu của thành phần trước đó là ít hơn khoảng max-gap. (Nhắc lại rằng đối với mỗi thành phần si, thời gian bắt đầu start-time(si) và thời gian kết thúc end-time(si) tương ứng với thời gian giao dịch đầu tiên và cuối cùng của tập các giao dịch có chứa si). Nếu hiệu số này nhiều hơn max-gap, thuật toán sẽ chuyển sang giai đoạn duyệt ngược. Nếu một thành phần không được tìm thấy tức là dữ liệu dãy không chứa s.  Giai đoạn duyệt ngược (backward phase): Thuật toán thực hiện quay lui và xét (kéo lên) các thành phần liền trước. Nếu si là thành phần hiện tại và thời gian kết thúc end-time(si) = t, thuật toán tìm tập các giao dịch đầu tiên có chứa si mà có thời gian giao dịch sau (t – max-gap). Thời gian bắt đầu đối với si–1 (sau khi si–1 được xét đến) có thể sau thời gian kết thúc end-time của si. Trong khi xét si–1 có thể đòi hỏi phải xét cả si–2 bởi vì ràng buộc max-gap giữa si–1 và si–2 có thể không còn được thỏa mãn. Thuật toán thực hiện quay lui cho đến khi hoặc là ràng buộc max-gap giữa thành phần vừa xét và thành phần liền trước thỏa mãn, hoặc là thành phần đầu tiên được lấy lên. Sau đó thuật toán chuyển sang giai đoạn duyệt xuôi để tìm các thành phần của s trong d bắt đầu từ thành phần liền sau của thành phần cuối cùng được lấy lên của giai đoạn duyệt ngược. Nếu không có bất kỳ thành phần nào được lấy lên (nghĩa là không có tập dãy con của các giao dịch có chứa thành phần) khi đó dữ liệu dãy không chứa s. Thủ tục thực hiện lặp đi lặp lại, hoán đổi giữa giai đoạn duyệt xuôi và duyệt ngược cho tới khi tất cả các thành phần được tìm thấy. Ví dụ: Cho dữ liệu dãy trong Hình 2. Xét trường hợp max-gap là 30, min-gap là 5 và window-size là 0. Với dãy ứng viên <(1, 2) (3) (4)>, (forward phase) trước tiên ta
  • 23. cần tìm (1, 2) tại thời gian giao dịch 10, tiếp theo tìm thành phần (3) tại thời gian giao dịch 45. Khi đó khoảng thời gian giữa hai thành phần (35 ngày) lớn hơn max-gap, (backward phase) lấy lên thành phần (1, 2). Tìm lần xuất hiện đầu tiên của (1, 2) sau thời gian 15, bởi vì thời gian kết thúc end-time((3)) = 45 và max-gap là 30, và vì vậy thậm chí nếu (1, 2) xảy ra tại một số thời điểm trước 15, nó vẫn sẽ không thỏa mãn ràng buộc max-gap. Ta tìm (1, 2) tại thời gian 50. Vì đây là thành phần đầu tiên nên không phải kiểm tra xem liệu ràng buộc max-gap có nằm giữa (1, 2) và thành phần trước đó có thỏa mãn không. Ta chuyển sang bước tiếp theo. Vì (3) không còn xảy ra lớn hơn 5 ngày sau (1, 2), cần tìm sự xuất hiện tiếp theo của (3) sau thời gian 55. Ta tìm thấy (3) tại thời gian 65. Khi ràng buộc giữa (3) và (1, 2) thõa mãn, ta tiếp tục di chuyển tiếp và tìm thấy (4) tại thời gian 90. Ràng buộc max-gap giữa (4) và (3) được thỏa mãn. 10 1, 2 25 4, 6 45 3 50 1, 2 65 3 90 2, 4 95 6 Item Times 1 → 10 → 50 → NULL 2 → 10 → 50 → 90 → NULL 3 → 45 → 65 → NULL 4 → 25 → 90 → NULL Hình 2: Dữ liệu dãy Hình 3: Item xuất hiện theo thời gian Để tìm kiếm một cách hiệu quả một phần tử đơn lẻ (item), ta sử dụng mảng để lưu trữ tất cả các phần tử có trong dữ liệu dãy và thời gian giao dịch, dữ liệu dãy trong Hình 2 được biến đổi như Hình 3, nhằm hỗ trợ cho việc tìm kiếm lần xuất hiện đầu tiên của một thành phần trong dữ liệu dãy sau thời gian t. Thuật toán duyệt một lần tất cả các phần tử trong thành phần và tìm thời gian giao dịch đầu tiên của mỗi phần tử lớn hơn t. Nếu hiệu số giữa thời gian bắt đầu và thời gian kết thúc nhỏ hơn hoặc bằng với window-size thì chấp nhận. Nếu không, t được lấy là hiệu số giữa thời gian kết thúc và window-size, thủ tục tiếp tục được lặp lại. Ví dụ: Cho dữ liệu dãy trong Hình 2, giả sử window-size = 7 ngày, ta phải tìm lần xuất hiện đầu tiên của thành phần (2, 6) sau thời gian t = 20. Ta tìm phần tử 2 tại thời gian 50, phần tử 6 tại thời gian 25. Vì end-time((2,6)) – start-time((2,6)) > 7 nên
  • 24. ta đặt t là 43 (= end-time((2,6)) – window-size) và thử lại. Phần tử 2 còn lại tại thời gian 90, trong khi phần tử 6 tiếp theo tại thời gian 95. Vì khoảng thời gian giữa 90 và 95 nhỏ hơn window-size nên ta bỏ qua.  Phân loại Cách tiếp cận cơ bản là thay thế mỗi dữ liệu dãy d với một dãy mở rộng d’, trong đó, mỗi giao dịch d’i của d’ chứa các phần tử trong giao dịch di của d tương ứng, cũng như tất cả các “ancestor” (tổ tiên) của mỗi phần tử trong di. Ví dụ, một dữ liệu dãy <(1, 2) (3)> có thể được thay thế với dãy mở rộng <(1, 2, 4, 5, 6) (3, 4, 6)> . Sau đó, ta thực GSP trên các dãy mở rộng này. Có hai cách tối ưu hóa để cải thiện đáng kể hiệu suất thực hiện. Cách thứ nhất là tính toán trước các “ancestor” của mỗi phần tử và loại bỏ các “ancestor” không có trong bất kỳ dãy ứng viên nào được tính trước khi thực hiện duyệt dữ liệu. Ví dụ, nếu (2), (3) và (4) không nằm trong bất kỳ dãy ứng viên nào được tính trong lần duyệt hiện tại, ta sẽ thay thế dãy <(1, 2) (3)> với dãy mở rộng <(1, 5, 6) (5, 6)> (thay vì dãy mở rộng <(1, 2, 4, 5, 6) (3, 5, 6)>). Cách tối ưu hóa thứ hai là không tính các mẫu dãy với một thành phần có chứa cả phần tử x và phần tử y là ancestor của x, vì độ hỗ trợ của các dãy này sẽ luôn giống độ hỗ trợ cho các mẫu dãy không có y. (Bất kỳ giao dịch nào chứa x cũng sẽ chứa y.)
  • 25. 3. Ví dụ thuật toán GSP Cho dữ liệu: Seq. ID Sequence 10 <(b,d)cb(a,c)> 20 <(b,f)(c,e)b(f,g)> 30 <(a,h)(b,f)abf> 40 <(b,e)(c,e)d> 50 <a(b,d)bcb(a,d,e)> Minsupp=2 Các ứng viên đầu tiên C1: <a>, <b>, <c>, <d>, <e>, <f>, <g>, <h> •Duyệt CSDL để tính độ phổ biến của từng ứng viên và tìm F1 -> F1 = <a>, <b>, <c>, <d>, <e>, <f> <g>,<f> có minsupp nhỏ hơn 2 nên bị loại. Tạo các ứng viên C2: Tạo các chuỗi có chiều dài 2, có 2 phần tử từ các ứng viên của F1 <a> <b> <c> <d> <e> <f> <a> <aa> <ab> <ac> <ad> <ae> <af> <b> <ba> <bb> <bc> <bd> <be> <bf> <c> <ca> <cb> <cc> <cd> <ce> <cf> <d> <da> <db> <dc> <dd> <de> <df> <e> <ea> <eb> <ec> <ed> <ee> <ef> <f> <fa> <fb> <fc> <fd> <fe> <ff> Tạo các chuỗi chiều dài 2 có 1 phần tử C Sup <a> 3 <b> 5 <c> 4 <d> 3 <e> 3 <f> 2 <g> 1 <h> 1
  • 26. <a> <b> <c> <d> <e> <f> <a> <(a,b)> <(a,c)> <(a,d)> <(a,e)> <(a,f)> <b> <(b,c)> <(b,d)> <(b,e)> <(b,f)> <c> <(c,d)> <(c,e)> <(c,f)> <d> <(d,e)> <(d,f)> <e> <(e,f)> <f> Vậy tổng cộng có 51 chuỗi ứng viên có chiều dài 2 Xác định tập chuỗi phổ biến F2: Duyệt cơ sở dữ liệu và xác định độ phổ biến của từng chuỗi ứng viên ta được 19 ứng viên có độ phổ biến >= minsupp (=2) <a> <b> <c> <d> <e> <f> <a> <aa> Supp=2 <ab> Supp=2 <ac> Supp=1 <ad> Supp=1 <ae> Supp=1 <af> Supp=1 <b> <ba> Supp=3 <bb> Supp=4 <bc> Supp=4 <bd> Supp=2 <be> Supp=3 <bf> Supp=2 <c> <ca> Supp=2 <cb> Supp=3 <cc> Supp=1 <cd> Supp=2 <ce> Supp=1 <cf> Supp=1 <d> <da> Supp=2 <db> Supp=2 <dc> Supp=2 <dd> Supp=1 <de> Supp=1 <df> Supp=0 <e> <ea> Supp=0 <eb> Supp=1 <ec> Supp=0 <ed> Supp=1 <ee> Supp=1 <ef> Supp=1
  • 27. <f> <fa> Supp=1 <fb> Supp=2 <fc> Supp=1 <fd> Supp=0 <fe> Supp=1 <ff> Supp=2 Tập chuỗi phổ biến F2 gồm 19 chuỗi: <aa>, <ab>, <ba>, <bb>, <bc>, <bd>, <be>, <bf>, <ca>, <cb>, <cd>, <da>, <db>, <dc>, <fb>, <ff>, <b,d>, <b,f>, <c,e> <a> <b> <c> <d> <e> <f> <a> <(a,b)> Supp=0 <(a,c)> Supp=1 <(a,d)> Supp=1 <(a,e)> Supp=1 <(a,f)> Supp=0 <b> <(b,c)> Supp=0 <(b,d)> Supp=2 <(b,e)> Supp=1 <(b,f)> Supp=2 <c> <(c,d)> Supp=0 <(c,e)> Supp=2 <(c,f)> Supp=0 <d> <(d,e)> Supp=1 <(d,f)> Supp=0 <e> <(e,f)> Supp=0 <f>
  • 28. Kết Luận GSP, một thuật toán mới khai thác những mẫu tuần tự tổng quát. Đánh giá thực nghiệm sử dụng tổng hợp dữ liệu thực tế cho thấy GSP nhanh hơn nhiều thuật toán AprioriAll.Thuật toán GSP tỷ lệ tuyến tính với số lượng của dữ liệu tuần tự, và có tỷ lệ tăng nhiều với số lượng trung bình của dữ liệu tuần tự. Thuật toán GSP đã thực hiện như một phần của sự tìm kiếm dữ liệu nguyên mẫu ở khu nghiên cứu của IBM, vầ đã được hợp nhất trong sản phẩm tìm kiếm dữ liệu IBM. Nó chạy trên nhiều nền tảng, bao gồm AIX và MVS. Nó cũng được dùng kết nối song song cho các hệ thống cơ sở dữ liệu. Thuật toán GSP tồn tại hạn chế khi sử dụng với số lượng lớn tập chuỗi ứng viên, không hiệu quả khi khai thác các chuỗi dài.
  • 29. Tài liệu tham khảo 1. Nguyễn Hoàng Tú Anh, Bài giảng khai thác dữ liệu và ứng dụng. 2. Ramakrishnan Srikant and Rakesh Agrawal, Mining Sequential Patterns: Generalizations and Performance Improvements 3. Manan Parikh, Bharat Chaudhari and Chetna Chand, A comparative of Senquential Pattern Mining Algorithm, 2013 4. Đỗ Phúc, Giáo trình Khai thác dữ liệu, NXB ĐHQG TP. HCM, 2005