Tải bản đầy đủ (.doc) (29 trang)

TÌM HIỂU VỀ MICROSOFT SEQUENCE CLUSTERING TRÊN SQL SERVER 2008

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

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG
BÀI THU HOẠCH
KHAI PHÁ DỮ LIỆU

TÌM HIỂU VỀ MICROSOFT SEQUENCE CLUSTERING
TRÊN SQL SERVER 2008
Học viên thực hiện:
Họ và tên: TRỊNH QUỐC HÙNG
Mã học viên: CH1101088
Giảng viên: PGS. TS. ĐỖ PHÚC
TP.HCM, ngày 17 tháng 11 năm 2012

Mục lục
TP.HCM, ngày 17 tháng 11 năm 2012 1
2
Mục lục 2
CHƯƠNG 1: TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU 3
1.1Giới thiệu chung 3
1.2 Các khái niệm và phương pháp khai thác dữ liệu trong Microsoft SQL 2008 4
1.3 Qui trình khám phá tri thức (Knowledge Discovery in DB) 6
1.4 Tiến trình khai phá dữ liệu 7
1.5 Các dạng dữ liệu có thể khai thác dữ liệu 8
1.6 Ứng dụng của khai thác dữ liệu 8
CHƯƠNG 2: MICROSOFT SEQUENCE CLUSTERING 10
2.1 Giới thiệu Microsoft Sequence Clustering 10
2.2 Các nguyên tắc của Microsoft Sequence Clusterings 12
2.2.1 Hoạt động của thuật toán 12
2.2.2 Các thông số trong thuật toán 13
2.3 Cách sử dụng thuật toán Microsoft Sequence Clustering 16
2.3.1 Nội dung mô hình 16


2.3.2 Phân tích mô hình 17
2.4 Demo 20
Tài liệu tham khảo 29
CHƯƠNG 1: TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU
1.1 Giới thiệu chung
Sự phát triển nhanh chóng các ứng dụng công nghệ thông tin (CNTT) và Internet vào
nhiều lĩnh vực đời sống xã hội, quả lý kinh tế, khoa học kỹ thuật … đã tạo ra nhiều cơ sở dữ
liệu (CSDL) khổng lồ. Ví dụ CSDL bán hàng của siêu thị Co-op mark với hàng triệu giao tác
bán hàng; CSDL của công ty tài chính với hàng triệu khách hàng và dữ liệu liên quan đến quá
trình trả lãi, nợ, v.v Để khai thác hiệu quả nguồn thông tin từ các CSDL lớn hỗ trợ tiến trỉnh
ra quyết định, bên cạnh các phương pháp truyền thống, các nhà nghiên cứu đã phát triển các
phương pháp, kỹ thuật và phần mềm hỗ trợ tiến trình khám phá, phân tích tổng hợp thông tin.
Trong những năm gần đây, một lĩnh vực mới nghiên cứu và ứng dụng về phát hiện tri
thức (Knowledge Discovery) và khai thác dữ liệu (Data Mining) là một bước đột phá trong
việc tìm kiếm và sử dụng thông tin một cách hữu ích nhất.
Trong quá trình sử dụng, người ta phát hiện tri thức trong các cơ sở dữ liệu (các mẫu
hoặc mô hình dữ liệu) có rất nhiều thông tin khả ích, mới và có thể hiểu được.
Khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật toán
khai thác dữ liệu chuyên dùng dưới một số quy định về hiệu quả tính toán chấp nhận được để
tìm ra các mẫu hoặc các mô hình dữ liệu đang tồn tại trong các cơ sở dữ liệu nhằm khai thác
thông tin một cách triệt để nhưng vẫn còn bị che khuất bởi một khối dữ liệu lớn.
Khai thác dữ liệu là quá trình tìm kiếm các mẫu mới, những thông tin tiềm ẩn mang tính
dự đoán trong các khối dữ liệu lớn. Những công cụ khai thác dữ liệu có thể dự đoán những xu
hướng trong tương lai, các tri thức mà khai thác dữ liệu mang lại giúp cho các công ty kinh
doanh ra các quyết định kịp thời và có thể trả lời những câu hỏi trong lĩnh vực kinh doanh mà
trước đây tốn nhiều thời gian để xử lý. Sự phân tích một cách tự động và mang tính dự báo của
khai thác dữ liệu có ưu thế hơn hẳn so với 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) trước đây.
Với tất cả các ưu điểm trên, Khai thác dữ liệu đã chứng tỏ được tính hữu dụng của nó trong
môi trường kinh doanh đầy tính cạnh tranh ngày nay và được ứng dụng rộng rãi trong các lĩnh

vực thương mại, tài chính, điều trị y học, giáo dục, viễn thông,…
Khai thác dữ liệu là sự kết hợp của nhiều ngành như: cơ sở dữ liệu, hiển thị dữ liệu, học
máy, trí tuệ nhân tạo, lý thuyết thông tin, xác suất thống kê, tính toán hiệu năng cao, và các
phương pháp tính toán mềm, Khai thác dữ liệu được định nghĩa là quá trình tìm kiếm những
thông tin (tri thức) có ích, tiềm ẩn và mang tính dự đoán trong các khối cơ sở dữ liệu lớn. Một
số nhà khoa học xem khai thác dữ liệu như là một cách gọi khác của một thuật ngữ cũng rất
thông dụng là Khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases –
KDD), vì cho rằng mục đích 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 khám phá tri thức lại
chính là dữ liệu. Một số nhà khoa học khác thì xem khai thác dữ liệu như là một bước chính
trong quá trình khám phá tri thức.
1.2 Các khái niệm và phương pháp khai thác dữ liệu trong Microsoft SQL 2008
Khai thác dữ liệu được mô tả như là quá trình lấy các thông tin hợp lệ, xác thực từ các cơ
sở dữ liệu lớn. Các mẫu dữ liệu được lấy và xu hướng đang tồn tại trong dữ liệu. Các mô hình
và các xu hướng có thể được thu thập lại với nhau và xác định như là một mô hình mỏ. Mô
hình mỏ dữ liệu có thể được áp dụng cho các doanh nghiệp cụ thể như: Dự báo bán hàng, xác
định mục tiêu cụ thể về khách hàng qua thư (tìm hiểu nhu cầu, sở thích và những vấn đề mà
khách hàng quan tâm qua các phương pháp khảo sát), xác định những sản phẩm sẽ có nhiều
khả năng được bán với nhau, quản lý rủi ro, chiến lược quảng cáo v.v
Một khái niệm quan trọng trong khai thác dữ liệu mà doanh nghiệp rất quan tâm là xây
dựng một mô hình mỏ là một phần của một quá trình lớn hơn trong đó bao gồm tất cả mọi thứ
từ xác định các vấn đề cơ bản là mô hình sẽ giải quyết, để triển khai các mô hình thành một
môi trường làm việc. Quá trình này có thể được xác định bằng cách sử dụng sáu bước cơ bản
sau đây:
1. Xác định các vấn đề
2. Chuẩn bị dữ liệu
3. Khám phá dữ liệu
4. Xây dựng mô hình
5. Khám phá và xác nhận hiệu lực của mô hình
6. Triển khai và cập nhật các mô hình.

Quá trình được minh họa trong biểu đồ tròn. Tạo ra một mô hình dữ liệu mỏ và năng
động là một quá trình lặp đi lặp lại. Sau khi khám phá những dữ liệu, có thể thấy rằng những
dữ liệu là đủ để tạo ra các mô hình thích hợp mỏ, và do đó mà cần phải xem xét để có thêm dữ
liệu. Chúng ta có thể xây dựng một số mô hình và nhận thấy rằng những khách hàng không trả
lời những vấn đề mà chúng ta đặt ra, vì vậy mà chúng ta phải xác nhận lại thông tin. Nhờ vậy
mà có thể cập nhật các mô hình đã được triển khai nhiều dữ liệu hơn. Vì vậy, điều quan trọng
để hiểu rằng việc tạo một mô hình mỏ dữ liệu là một quá trình và mỗi bước trong quá trình này
có thể được lặp lại nhiều lần để tạo ra một mô hình tốt.
SQL Server 2008 cung cấp một môi trường tích hợp để tạo ra và làm việc với mô hình
khai thác dữ liệu, gọi là Business Intelligence Development Studio. Môi trường này bao gồm
các thuật toán khai thác dữ liệu và các công cụ mà làm cho việc xây dựng giải pháp toàn diện
một cách dễ dàng cho các dự án khác nhau.
Thuật toán của Microsoft SQL Server 2008 (SSAS) bao gồm các thuật toán sau đây:
• Microsoft Decision Trees Algorithm
• Microsoft Clustering Algorithm
• Microsoft Naive Bayes Algorithm
• Microsoft Association Algorithm
• Microsoft Sequence Clustering Algorithm
• Microsoft Time Series Algorithm
• Microsoft Neural Network Algorithm (SSAS)
• Microsoft Logistic Regression Algorithm
• Microsoft Linear Regression Algorithm
1.3 Qui trình khám phá tri thức (Knowledge Discovery in DB)
Bước 1: Tìm hiểu lĩnh vực và ứng dụng bài toán, quyết định cho việc rút ra được các tri thức
hữu ích và cho phép chọn các phương pháp KTDL thích hợp với mục đích ứng dụng và bản
chất của dữ liệu.
Bước 2: Thu thập và xử lý thô, còn gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu, xử lý việc
thiếu dữ liệu, biến đổi dữ liệu và rút gọn dữ liệu, bước này thường chiếm nhìu thời gian nhất
trong toàn bộ quá trình.
Bước 3: Khai thác dữ liệu là một bước quan trọng trong qui trình, trích ra các mẫu hoặc các

mô hình ẩn dưới các dữ liệu.
Bước 4: Hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên
có thể lặp di lặp lại một số lần, kết quả thu được lấy trung bình trên tất cả các lần thực hiện.
Hình 1.1: Qui trình khám phá tri thức
1.4 Tiến trình khai phá dữ liệu
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
thác từ các tập dữ liệu lớn (databases, data warehouses) .
Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý dữ liệu không
đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, …), rút gọn dữ liệu (sử dụng các phương pháp
thu gọn dữ liệu, histograms, lấy mẫu, … ), rời rạc hoá dữ liệu (dựa vào histograms, entropy,
phân khoảng, … ). 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
hoá.
Biến đổi dữ liệu (data transformation): là bước chuẩn hoá và biến đổi dữ liệu để đưa dữ
liệu về dạng thuận lợi nhất (gom nhóm tất cả những dữ liệu riêng lẻ thành một cơ sở dữ liệu)
nhằm phục vụ cho các kỹ thuật khai thác ở bước sau.
Khai thác dữ liệu (data mining): đây là bước quan trọng và tốn nhiều thời gian nhất của
quá trình khám phá tri thức, áp dụng các kỹ thuật khai thác (phần lớn là các kỹ thuật của
machine learning) để khai thác, trích chọn được các mẫu (pattern) thông tin, các mối liên hệ
đặc biệt trong dữ liệu.
Đánh giá và biểu diễn tri thức (knowledge representation & evaluation ): Dùng các kỷ
thuật hiển thị dữ liệu để trình bày các mẫu thông tin (tri thức) và mối liên hệ đặc biệt trong dữ
liệu đã được khai thác ở bước trên biểu diễn theo dạng gần gũi với người sử dụng như đồ thị,
cây, bảng biểu, luật,.
Hình 1.2: Tiến trình khai phá dữ liệu
1.5 Các dạng dữ liệu có thể khai thác dữ liệu
Khai thác dữ liệu có khả năng chấp nhận một số kiểu dữ liệu khác nhau
điển hình như sau: Cơ sở dữ liệu quan hệ (relational databases): là các dữ liệu tác nghiệp
được tổ chức theo mô hình dữ liệu quan hệ rất phổ biến trong ngành viễn thông, do hầu hết các
hệ quản trị cơ sở dữ liệu đều hỗ trợ dạng cơ sở dữ liệu quan hệ như Oracle, MS SQL Server,
IBM DB2, MS Access,…

Cơ sở dữ liệu đa chiều (multidimention structures, data warehouses, data
mart): là các kho dữ liệu được tập hợp và chọn lọc từ nhiều nguồn dữ liệu khác nhau. Dạng dữ
liệu này chủ yếu phục vụ cho quá trình phân tích cũng như khai phá tri thức và hỗ trợ quá trình
ra quyết định.
Cơ sở dữ liệu giao tác (transactonal databases): đây cũng là dạng dữ liệu tác nghiệp có
các bản ghi thường là các giao tác. Dạng dữ liệu này cũng phổ biếnhiện nay trong đó có ngành
bưu chính.
Cơ sở dữ liệu quan hệ – hướng đối tượng (object relational databases: là dạng dữ liệu lai
giữa hai mô hình quan hệ và hướng đối tượng.
Dữ liệu không gian và thời gian (spatial, temporal, and time-series data): là dạng dữ liệu
có tích hợp thuộc tính về không gian như dữ liệu bản đồ mạng cáp điện thoại hoặc thời gian
như dữ liệu cước điện thoại, phát hành báo chí.
Cơ sở dữ liệu đa phương tiện (Multimedia database) : là dạng dữ liệu âm thanh (audio),
hình ảnh (video), Text & WWW, v. v. Dạng dữ liệu này đang rất phổ biến trên internet và lưu
tại các web server của các đơn vị trực thuộc ngành bưu điện.
1.6 Ứng dụng của khai thác dữ liệu
Khai thác dữ liệu có nhiều ứng dụng trong thực tế. Một số ứng dụng điển hình như :
* Bảo hiểm
* Tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự
báo giá của các loại cổ phiếu trong thị trường chứng khoán. Danh mục vốn và giá, lãi suất, dữ
liệu thẻ tín dụng, phát hiện gian lận.
* Thương mại điện tử: Công cụ tìm hiểu, định hướng, thúc đẩy, giao tiếp với khách hàng; phân
tích khách hàng duyệt web; phân tích hàng vi mua sắm trên mạng và cho biết thông tin tiếp thị
phù hợp với loại khách hàng trong một phân khu thị trường nhất định.
* Phân tích dữ liệu và hỗ trợ ra quyết dịnh.
* Điều trị y học và Chăm sóc y tế: Một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống
quản lý bệnh viện. Phân tích mối liên hệ giữa triệu chứng bệnh, chuẩn đoán và phương pháp
điều trị (chế độ dinh dưỡng, thuốc ).
* Sản xuất và chế biến: Qui trình, phương pháp chế biến và xử lý xử cố * Text mining & Web
mining: phân lớp văn bản và các trang web, tóm tắt văn bản,…

* Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh
các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền.
* Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất
lượng dịch vụ,
CHƯƠNG 2: MICROSOFT SEQUENCE CLUSTERING
2.1 Giới thiệu Microsoft Sequence Clustering
Giả sữ rằng bạn là một người quản lý kinh doanh một Website bán hàng trực tuyến. Bao
gốm rất nhiều chủng loại và mặt hàng. Hàng ngày có hàng ngàn lượt truy cập từ nhiều nơi
khác nhau đến Website. Bạn có thể biết được những chủng loại và mặt hàng nào được nhiều
khách hàng quan tâm nhất và trình tự duyệt mua sản phẩm. Từ đó có thể tùy biến lại giao diện
website, sắp xếp lại các mặc hàng cho phù hợp với từng khách hàng, tiện lợi cho khách hàng
đồng thời mang lại hiệu quả kinh doanh tốt hơn. Hoặc có thể biết được trình tự những trang
web nào được khách hàng ghé thăm trong chuổi duyệt web của khách hàng
Ví dụ: />Dòng “Khách hàng mua cuốn sách trên cũng từng mua một trong những cuốn sách dưới đây”
Thể hiện trình tự mua sách “Hẹn Với Mắt Cười” sẽ mua sách kế tiếp là một trong những cuốn
sách bên dưới
Web demo:
Như tên “Sequence Clustering” cho thấy: thuật toán là sự kết hợp giữa kỹ thuật gom
nhóm (Clustering) và trình tự (sequence). Nó được thiết kế để phân tích sự phổ biến của các
trường hợp chứa các “dữ liệu trình tự” và “gom nhóm” vào những trường dựa trên sự giống
nhau của những trình tự.
Một trình tự (sequence) là một chuỗi các sự kiện (state) rời rạc, riêng biệt. Thường số
lượng các state là hữu hạn.Trong thực tế, chuổi dữ liệu rất phổ biến. Rất nhiều thông tin được
mã hoá vào duối dạng chuổi trình tự. Ví dụ: Chuổi AND là trình tự của các nucleotide ađêlin
(A) timin(T). guanin(G) xitôgin(X). Chuổi Click chuộtvào đường link của người dùng trên
một website.…
Thuật toán này tương tự với thuật toán Microsoft Clustering. Tuy nhiên, thay vì tìm kiếm
các nhóm trường hợp chứa các thuộc tính tương tự nhau, thuật toán Microsoft Sequence
Clustering tìm kiếm các nhóm trường hợp chứa các đường dẫn tương tự nhau trong trình tự.
Mô hình khai thác mà thuật toán này tạo ra bao gồm các mô tả của các trường hợp phổ

biến nhất trong dữ liệu. Bạn có thể sử dụng các mô tả này để dự đoán bước có khả năng tiếp
theo của trình tự mới. Khi thuật toán nhóm ghi lại, nó cũng có thể coi như là các cột trong dữ
liệu mà không có liên quan trực tiếp đến các trình tự. Vì thuật toán bao gồm các cột không có
liên quan, bạn có thể sử dụng mô hình kết quả để xác định mối quan hệ giữa dữ liệu trình tự và
dữ liệu không xảy ra trong trình tự.
2.2 Các nguyên tắc của Microsoft Sequence Clusterings
2.2.1 Hoạt động của thuật toán
Thuật toán sử dụng phương pháp nhóm Expectation Maximization (EM) để xác định các
nhóm và trình tự của chúng. Việc xử lý toàn diện của thuật toán này là:
1. Khởi tạo mô hình tham số nào đó (ngẫu nhiên)
2. Cho một số mô hình hiện nay, mỗi trường hợp được phân công mỗi
K cụm với một cài xác suất. Đây là bước E.
3. Đánh giá tham số mẫu dựa trên độ quan trọng của việc bố trí trong mỗi trường hợp.
Đây là bước M.
4. Kiểm tra mô hình có đồng quy chưa, nếu không quay về bước 2.
Xác suất của một thuộc tính trình tự x trong cluster C được tính bằng công thức:
P(x|C) = P(xL|xL-1)P(xL-1|xL-2) P(x2|x1)P(x1)
Trong đó: P(xj|xi) là xác suất chuyển tiếp từ trạng thái i sang j trong cluster C
Thuật toán Microsoft Sequence Clustering hỗ trợ cả thuộc tính trình tự và không trình tự.
Thuộc tính không trình tự có thể các thuộc tính vô hướng hoặc lồng nhau. Trình tự dữ liệu
được lưu trữ trong một bảng lồng nhau. Chuỗi lồng nhau bảng phải chứa cột gọi là key
sequence. Cột này là khoá của trình tự. Sequence key có thể là bất kỳ lọai dữ liệu nào mà có
thể được phân loại, như date, integer và string. Trong một số trường hợp, dữ liệu của bạn có
thể có nhiều thuộc tính trình tự.
Ví dụ, bạn có thể muốn nhóm khách hàng của bạn bằng một chuỗi các trang Web mà họ
viếng thăm, và một chuỗi các sản phẩm mà họ mua. Tuy nhiên, nhiều trình tự trong một mô
hình duy nhất không được hỗ trợ trong SQL Server 2008.
Có thể xây dựng một mô hình trình tự mà không cần dữ liệu trình tự. Trong trường hợp
này, mô hình trở thành một mô hình clustering.
 Sự phân chia nhóm:

Trong mô hình phân nhóm trình tự, khi số trạng thái trong trình tự lớn, có thể có nhiều
nhóm riêng biệt. Ví dụ, trong tiến trình duyệt web, có 60 URL. Nhóm khách hàng đầu tiên chủ
yếu duyệt những trang news, nhóm thứ hai tập trung vào music & movies, và nhóm thứ ba
thích vào trang thời tiết. Khi gom nhóm, ta lấy ra các nhóm và so sánh với mẫu nhóm không
trình tự. Nó tương đối dễ dàng để làm rõ những mẫu này dựa trên trình tự thuộc tính của
chúng.
Một bước trưong tiến trình gom nhóm trình tự là sự phân chia nhóm. Nếu
người dùng chỉ định ra một số nhóm nhỏ và có những loại trình tự khác nhau trong một nhóm,
thuật toán sẽ phân chia nhóm thành nhiều nhóm. Ví dụ: nếu một nhóm chứa hai loại trình tự -
Movie -> Music -> Download và New ->
News -> Weather – thuật toán sẽ tách nó ra thành hai nhóm.
2.2.2 Các thông số trong thuật toán
 Tham số thuật toán:
- Cluster_Count: xác định số lượng nhóm chứa trong mô hình.
Cluster_Count = 0: cho phép thuật toán tự động chọn số lượng nhóm tốt nhất cho mục
đích dự đoán.
- Minimum_Support: Kiểu integer. Xác định số lượng trường hợp nhỏ nhất trong mỗi
nhóm để tránh mỗi nhóm có quá ít trường hợp. Giá trị mặc định là 10.
- Maximum_states: Kiểu integer. Xác định số lượng tối đa của những trạng thái cho thuộc
tính không tuần tự. Nếu số lượng trạng thái của thuộc tính không tuần tự lớn hơn trị này,
thuật toán sẽ sữ dụng thuộc tính trạng thái phổ nhất xữ lý các trạng thái còn lại là
Missing. Giá trị mặc định là 100.
- Maximum_Sequence_States: Xác định số lượng trạng thái lớn nhất mà trình tự có thể có.
Kiểu intger, giá trị mặc định là 64. Người dùng có thể ghi đè lên giá trị này. Nếu dữ liệu
trình tự có số lượng trạng thái vượt quá giới hạn thì thuật toán sử dụng các trạng thái phổ
biến nhất của thuộc tính.
* Giả sữ rằng có m trạng thái trình tự. Mổi nhóm cluster chứa một ma trận M*M. Thời
gian xữ lý sẽ là M
2
. Nếu M quá lớn, nó có thể tốn nhiều thời gian để xử lý. Vì thế không

nên để M quá lớn hơn 100. Nếu có quá nhiều trạng thái, Ví dụ: hàng tram trang trên
website của bạn thì bạn có thể giảm M bằng cách nhóm các trang lại với nhau theo chủng
loại.
 Những yêu cầu:
- Bảng trường hợp cần có một cột ID trường hợp. Bảng trường hợp có thể chứa những cột
khác để lưu trử các thuộc tính về các trường hợp.
- Thuật toán này các thông tin về trình tự được lưu trử bằng bảng “nested”. Bảng “nested”
cần có một cột chứa khóa trình tự. Cột khóa trình tự có thể chứa bất kì kiểu dữ liệu nào
có thể lưu trử được. Bao gồm cà kiểu chuổi, nhưng mà cột này cần chứa giá trị không
trùng nhau. Ngoài ra, trước khi xữ lý mô hình, cần chắc chắn rằng cả Bảng trường hợp và
bảng “nested” được sắp xếp theo thứ tự tang dần của khóa.
 Một số hàm:
- Cluster (): trả về Cluster ID trong từng trường hợp
- ClusterDistance():
- PredictProbability(): Trả về xác suất cho mỗi trạng thái trình tự được dự đoán
- PredictHistogram(): Trả về biểu đồ xác suất cho mỗi trạng thái trình tự tại mỗi bước.
- PredictSequence(): Trả về trạng thái trình tự được dự đoán tiếp theo từ trình tự đưa ra.
PredictSequence(<table column reference>): Trả về trạng thái trình tự được dự đoán kế
tiếp từ trình tự đưa ra.
PredictSequence(<table column reference, n>): Trả về n trạng thái trình tự được dự đoán
tiếp theo từ trình tự đưa ra.
* Tham khảo thêm theo thông tin bên dưới:
Prediction Function Usage
Cluster (DMX) Returns the cluster that is most likely to contain the input case
ClusterDistance (DMX) Returns the distance of the input case from the specified cluster, or if no cluster is specified, the
distance of the input case from the most likely cluster.
This function can be used with any kind of clustering model (EM, K-Means, etc.), but the results
differ depending on the algorithm.
ClusterProbability (DMX) Returns the probability that the input case belongs to the specified cluster.
IsInNode (DMX) Indicates whether the specified node contains the current case.

PredictAdjustedProbability
(DMX)
Returns the adjusted probability of a specified state.
PredictAssociation (DMX) Predicts associative membership.
PredictCaseLikelihood (DMX) Returns the likelihood that an input case will fit in the existing model.
PredictHistogram (DMX) Returns a table that represents a histogram for the prediction of a given column.
PredictNodeId (DMX) Returns the Node_ID of the node to which the case is classified.
PredictProbability (DMX) Returns the probability for a specified state.
PredictSequence (DMX) Predicts future sequence values for a specified set of sequence data.
PredictStdev (DMX) Returns the predicted standard deviation for the specified column.
PredictSupport (DMX) Returns the support value for a specified state.
PredictVariance (DMX) Returns the variance of a specified column.
 Một số ví dụ về Sequence Clustering queries:
- Trả về các tham số của mô hình:
SELECT MINING_PARAMETERS
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Sequence Clustering'
Kết quả:
MINING_PARAMETERS
CLUSTER_COUNT=15,MINIMUM_SUPPORT=10,MAXIMUM_STATES=100,MAXIMUM
_SEQUENCE_STATES=64
- Lấy danh sách trình tự cho một trạng thái:
SELECT FLATTENED NODE_UNIQUE_NAME,
(SELECT ATTRIBUTE_VALUE AS [Product 1],
[Support] AS [Sequence Support],
[Probability] AS [Sequence Probability]
FROM NODE_DISTRIBUTION) AS t
FROM [Sequence Clustering].CONTENT
WHERE NODE_TYPE = 13
AND [PARENT_UNIQUE_NAME] = 0

Kết quả:
NODE_UNIQUE_NAME Product 1 Sequence
Support
Sequence
Probability
1081327 Missing 0 #######
1081327 All-Purpose Bike
Stand
17 0.00111
1081327 Bike Wash 64 0.00418
1081327 (rows 4-36 omitted)
1081327 Women's Mountain
Shorts
506 0.03307

2.3 Cách sử dụng thuật toán Microsoft Sequence Clustering
2.3.1 Nội dung mô hình
Nội dung của mô hình sequence clustering được phân ra làm 4 mức, như minh họa trong
hình 3. Nút gốc đại diện cho mô hình. Mức thứ 2 là mức cluster, mỗi nút ngoại trừ nút cuối
cùng đại diện cho 1 cluster được khám phá bởi thuật toán. Nút cuối cùng trong mức thứ 2 là
một ma trận chuyển đổi, đại diện cho xác suất chuyển đổi trạng thái của toàn bộ. Ma trận
chuyển đổi có 1 tập con; mỗi con là một dòng trong ma trận chuyển đổi. Bởi vì kích cỡ của nội
dung, ma trận chỉ lưu những items có xác suất lớn hơn 0. Mỗi nút cluster cũng có 1 ma trận
chuyển đổi giống như nút con của nó, đại diện xác suất chuyển đổi của 1 cluster cho trước. Vì
vậy, có 4 mức trong nội dung của mô hình sequence clustering.
2.3.2 Phân tích mô hình
2.3.2.1 Cluster Diagram
Tab này giống như trình xem (khung nhìn) Clustering. Clusters là layout dựa trên các mối
quan hệ. Những nhóm tương đương nhau về xác suất được nhóm lại gần nhau hơn. Node nền
mặc định miêu tả kích thước của cluster.

Ví dụ: Trong hình 1a: Cluster 4 là cluster lớn nhất và cluster 14 là nhỏ nhất.
Hình 2.1: Nội dung mô hình Sequence
Clustering
Hình 2.2a: Cluster Diagram
Cũng có thể sử dụng node được mã hóa bằng màu để miêu tả những giá trị thuộc tính
khác, bao gồm trạng thái trình tự. Màu tối biểu thị cho độ phổ biến (probability) cao.
Ví dụ: Trong hình 2.2b: chọn Shading Variable: “ProductId” và State: “Hoa Bó” thì ta
thấy Cluster 2 chứa xác suất về “Hoa Bó” cao nhất.

2.3.2.2 Cluster profile
Minh họa hiện trạng cluster. Mỗi cột biểu diễn cho 1 cluster. Mỗi dòng là 1 thuộc tính.
Mỗi ô trong dòng này chứa 1 biểu đồ trình tự. Mỗi hàng (line) trong biểu đồ trình tự biểu diễn
1 trường hợp mẫu trong cluster, và 1 hàng được tạo nên bởi 1 chuỗi các trạng thái trình tự. Các
ô trình tự này là những trình tự mẫu từ những trường hợp chuyển đổi.
Dòng đầu tiên ProductId.samples thể hiện thứ tự của dữ liệu, dòng thứ 2 là ProductId môt
cái nhìn toàn diện về sự phân bố các danh mục trong cluster. Mỗi dòng màu sắc tượng trưng
hiển thị trong các ô của ProductId.samples cho biết hành vi của các mẫu được chọn ngẫu nhiên
vào cluster. Mỗi màu sắc tượng trưng cho một sản phẩm được chọn.
Hình 2.2b: Cluster Diagram
Hình 2.3: Cluster Proflie
2.2.3.2 Cluster characteristics:
Hiển thị những đặc điểm của mỗi cluster. Mỗi dòng trình bày xác suất xuất hiện của mỗi
thuộc tính hay nhóm giá trị trong cluster đã được chọn. Mỗi trạng thái trình tự (gồm những sự
kiện Start và End ) được xem như 1 giá trị riêng cho thuộc tính trình tự. Danh sách các giá trị
thuộc tính được sắp xếp dựa trên tần số xuất hiện. Ví dụ: giá trị thuộc tính có xác suất cao nhất
trong cluster 12 là Start->Hoa Cẩm Chướng, có nghĩa khách hàng trong cluster 12 bắt đầu với
Hoa Cẩm Chướng là nhiều nhất.
2.2.3.4 Cluster discrimination:
Tab này được thiết kế để so sánh 2 cluster (nhóm) bất kỳ, hoặc để so sánh 1cluster với
toàn bộ hoặc phần bù của nó. Cluster Discrimination gồm 4 cộtVariables, Values, Favors

Cluster (x), Favors Cluster (y). Nếu một mục
(model) cột (Variables) tương ứng có một thanh ngang Favors Cluster nào thể hiện nó được ưa
chuộng, độ dài thanh ngang tương ứng mức độ ưa chuộng cluster của mục đó. Từ hình minh
họa, có thể thấy rằng sự khác biệt lớn nhất giữa cluster 1 và cluster 10 là cluster 1 cái chọn lựa
của khách hàng là “Hoa Chúc Mừng”->”Hoa Hồng” trong khi cluster 10 cái chọn lựa cuối
cùng của khách hàng là “Hoa Chúc Mừng”->”->End.
Hình 2.4: Cluster characteristics
2.2.3.5 State transitions:
Nó được thiết kế để hiển thị các mẫu truy xuất trình tự của mỗi cluster. Mỗi node là một
trạng thái trình tự, và mỗi cạnh là sự chuyển đổi giữa 2 trạng thái. Mỗi cạnh có hướng và trọng
lượng. Trọng lượng là xác suất chuyển đổi. Trong hình trên, là kết quả khi ta chọn cluster1, và
chọn node Water Bottle. Ta thấy, khi khách hàng chọn mua Road Bottle Cage thì có xác suất
khoảng 0.93 sẽ mua tiếp Water Bottle, và sau khi mua Mountain Bottle Cage sẽ có xác suất
khoảng 0.26 mua tiếp Water Bottle.
2.4 Demo
Em có phát triển một website thương mại điện tử bán hoa online, với CSDL bán hàng, Em sẽ
dùng thuật toán Sequence Clustering phục vụ cho công tác marketing. Từ việc nghiên cứu thói
quen duyệt qua các danh mục trên website ta sẽ tìm ra một quy luật chung, cách mà khách hàng
đưa hàng hóa vào giỏ hàng của họ. Thông tin này sẽ giúp cho nhóm marketing phân luồng
website nhằm làm cho khách hàng mua nhiều hàng hóa hơn, dự đoán các khách hàng sẽ mua
những gì tiếp theo ở lần viếng thăm website sau.
Hình 2.5: Cluster discrimination
 Các bước thực hiện
- Bước1: Tạo New Project: File\New Project ->Chọn Analysis Services Project
- Bước 2: Tạo Data Sources
Tạo New Connection & chọn database là “BanHoaOnline”
* Có thể Attach file database trực tiếp bằng cách chọn “Attach a database file” và duyệt tới file
“*.mdf”
Chọn Inherit trên hộp thoại Data Source Wizard
- Bước 3: Tạo Data Source Views

Chọn table: dbo.vAsocSeqLineItems và dbo.vAsocSeqOrders
- Bước 4: Tạo Relationship như hình vẽ
- Bước 5: Tạo new Mining Structures theo trình tự như hình vẽ bên dưới
Check vào Case cạnh view “vAssocSeqOrders” và Nested cạnh view “vAssocSeqLineItems”.
Check vào Key của OrderNumber và LineNumber.
Check chọn thuộc tính Input và Predictable cho cột Model.

×