Tích hợp khai phá dữ liệu trong InfoSphere Warehouse với việc tạo
báo cáo Cognos của IBM
Phần 3: Gọi khai phá động từ Cognos khi sử dụng một ví dụ phân
tích giỏ thị trường
Mở đầu
Khi bạn đang làm việc với lượng dữ liệu lớn, điều quan trọng là bạn hiểu rõ các quy tắc về các
thực thể khác nhau có liên quan với nhau như thế nào. Thường phát hiện ra các quy tắc này là
một quá trình phức tạp. Các quy tắc kết hợp rất đơn giản chỉ là chủ nghĩa hình thức có tác động
mạnh đến các quy tắc mô tả các tập dữ liệu vì chúng biểu thị các thực thể nào có thể xuất hiện
đồng thời với nhau.
Một ví dụ truyền thống về các quy tắc kết hợp có thể thường thấy trong lĩnh vực bán lẻ. Ví dụ,
một quy tắc kết hợp chung là “NẾU trứng VÀ sữa thì SAU ĐÓ là đường” nói lên rằng khi mua
hàng nhiều khách hàng mua trứng và sữa cũng mua đường. Quy tắc này có thể được phát hiện có
hiệu quả thậm chí từ các các tập dữ liệu rất lớn. InfoSphere Warehouse cho phép bạn tìm các quy
tắc này một cách thuận tiện như bài viết này đã mô tả chi tiết.
Bài viết trước của loạt bài này đã mô tả cách trước hết xây dựng mô hình khai phá trong
InfoSphere Warehouse và sau đó xuất bản các kết quả bằng cách sử dụng Cognos. Điều này là
tốt trong một số kịch bản. Tuy nhiên, một nhà phân tích thường muốn tác động đến việc phân
tích tương tác, ví dụ, hạn chế các quy tắc được tìm thấy. Chuyển sang InfoSphere Warehouse
DesignStudio rồi quay lại Cognos mỗi khi thay đổi một tham số thật không thuận tiện chút nào.
Do đó bạn muốn tạo các bản ghi tương tác cho phép người dùng thiết lập các tham số trong một
báo cáo Cognos, tự động gọi khai phá trong nền tảng rồi cung cấp các kết quả trả lại Cognos. Bài
viết này cho bạn thấy cách thực hiện chính xác các bước đó.
Trước tiên, hãy tìm hiểu về nhiệm vụ khai phá quy tắc kết hợp và cách có được nó trong
InfoSphere Warehouse. Sau đó, hãy xem cách gọi động khai phá dữ liệu từ Cognos. Cuối cùng,
hãy xem một ví dụ về việc có thể sử dụng cơ chế này theo thời gian thực.
Về đầu trang
Phân tích giỏ hàng và khai phá quy tắc kết hợp
Các quy tắc kết hợp và các ứng dụng của chúng
Các quy tắc kết hợp mô tả những mục nào thường xảy ra cùng nhau. Khái niệm về một giao dịch
có tầm quan trọng thiết yếu trong ngữ cảnh này. (Một truy cập đơn vào một cửa hàng có thể
được xem như một giao dịch và tất cả các mặt hàng đã mua trong quá trình truy cập này sau đó
đang cùng xuất hiện và được gọi là một giỏ hàng hay tổng quát hơn là giỏ thị trường). Mặc dù,
tất cả các mua sắm của một khách hàng trong suốt một năm cũng có thể được xem như là một
giao dịch. Điều đó phụ thuộc vào loại các quy tắc nào mà bạn quan tâm.
Hãy xem xét một ví dụ đơn giản. Bảng sau đây chứa các giao dịch về các mặt hàng. Mỗi giao
dịch có chứa tất cả các mặt hàng mà một khách hàng đã mua trong một lần truy cập vào một cửa
hàng.
Hình 1. Các giao dịch mẫu
Như bạn thấy, máy tính (PC) được mua khá thường xuyên. Ngoài ra, sự kết hợp của máy tính và
màn hình (Monitor) xuất hiện trong 20% các giao dịch. Như bạn cũng có thể thấy, trong 50%
trường hợp đã mua một máy tính (PC) và màn hình (Monitor), cũng mua một con chuột
(Mouse). Nếu chúng ta lấy điều này làm một quy tắc: [PC, Monitor]->Mouse, ở đây [Pc,
Monitor] là phần thân còn Mouse là phần đầu hoặc phần đích, thì số lượng các giao dịch bao
gồm các phần thân và phần đầu được chia cho số lượng tất cả các giao dịch có hiệu lực được gọi
là sự hỗ trợ (20%). Cách tính này cho chúng ta biết quy tắc này xuất hiện trong dữ liệu thường
xuyên như thế nào. Mặc dù nó không cho chúng ta biết độ chính xác của quy tắc này bằng bao
nhiêu. Độ tin cậy mô tả tỷ lệ phần trăm số lần phần thân của một quy tắc xuất hiện trong một
giao dịch và phần đầu cũng xuất hiện. Điều này mang đến thông tin về tính chính xác của quy tắc
này. Khai phá các quy tắc kết hợp đòi hỏi người sử dụng phải nói sự hỗ trợ và độ tin cậy tối
thiểu. Sau đó thuật toán xác định chính xác các cách kết hợp các mặt hàng và các quy tắc để thực
hiện tiêu chuẩn này
Có nhiều kịch bản ứng dụng trong đó sử dụng khai phá quy tắc kết hợp. Chúng ta đã đề cập đến
một sự khai phá nổi bật nhất: đó là bán lẻ. Ví dụ, các quy tắc kết hợp được dùng để sắp xếp hàng
hóa trong một siêu thị sao cho các sản phẩm thường được mua trong cùng một lần truy cập đến
một cửa hàng được đặt gần nhau. Quan trọng hơn là, sử dụng các quy tắc kết hợp để tận dụng
tiềm năng bán hàng chéo trong thương mại điện tử bằng cách giới thiệu cho những người sử
dụng các mặt hàng nào có thể cần quan tâm thêm nữa với họ. Một lĩnh vực ứng dụng khác là
chăm sóc sức khỏe. Có thể sử dụng các quy tắc kết hợp để tìm hiểu về các vấn đề sức khỏe
thường xuất hiện cùng nhau để cho các bệnh nhân có chẩn đoán cụ thể có thể được khám các vấn
đề sức khỏe phát sinh thường đi kèm với nhau trong chẩn đoán này. Các lĩnh vực ứng dụng khác
bao gồm phát hiện xâm nhập, phân tích bản ghi nhật ký web, các mẫu truy cập cơ sở dữ liệu và
v.v.
Một biến thể hơi khác một chút của các quy tắc kết hợp là các quy tắc tuần tự. Các quy tắc này
không những nói rõ các thực thể nào mà còn nói rõ các sự kiện nào có liên quan đến sự xuất hiện
liên quan của chúng theo thời gian. Ví dụ, các quy tắc như vậy có thể nói rõ rằng các khách hàng
đầu tiên đã mua một máy tính xách tay rồi mua một túi đựng cho nó, có lẽ sẽ mua một con chuột
di động trong một khoảng thời gian sáu tháng. Hầu hết những gì được trình bày trong phần còn
lại của bài viết này cũng áp dụng theo các quy tắc tuần tự.
Khai phá các quy tắc kết hợp trong InfoSphere Warehouse
Khai phá các quy tắc kết hợp được dẫn ra bằng cách gọi một thủ tục đã lưu trữ làm tất cả các
hoạt động khai phá khác trong InfoSphere Warehouse. Các định dạng giao dịch khác nhau được
hỗ trợ và trong phần sau chúng ta sẽ sử dụng một định dạng giao dịch dựa trên trình bày sau đây.
Hình 2. Bảng giao dịch
Để thực hiện khai phá, bạn phải nói cho các thuật toán biết nó tìm thấy các mặt hàng thực tế
trong cột nào và cột nào chứa các thông tin về cách phân nhóm các mặt hàng trong các giao dịch.
Trong trường hợp này, tên của cột này là TRANSID để phân nhóm các mặt hàng theo từng lần
mua hàng của khách hàng. Chúng ta cũng có thể đã sử dụng mã định danh (id) khách hàng làm
một mã định danh nhóm để tìm các cách kết hợp theo toàn bộ lịch sử mua hàng của khách hàng.
Khi sử dụng lệnh SQL IDMMX.BuildRuleModel hoặc toán tử Associations (Các cách kết hợp)
trong DesignStudio, chúng ta gọi khai phá. Bạn phải cung cấp một tên mô hình, tên của bảng
giao dịch, cột nhóm, sự hỗ trợ và độ tin cậy tối thiểu và chiều dài quy tắc tối đa. Xin lưu ý rằng
các mặt hàng được mô tả theo các id. Các tên mặt hàng có thể được thêm vào một bảng ánh xạ
tên trong đó có các id mặt hàng và một sự mô tả tương ứng. Có rất nhiều tùy chọn bổ sung có thể
như phân loại, trọng lượng mặt hàng và v.v Xin vui lòng tham khảo hướng dẫn InfoSphere
Warehouse để biết thêm chi tiết.
Các mô hình quy tắc có thể được hiển thị trực quan trong DesignStudio giống như các mô hình
phân loại hay phân cụm. Chúng ta cũng có thể trích xuất thông tin có trong mô hình này vào một
bảng, cũng như với các cụm. Điều này có thể đạt được bằng lệnh IDMMX.DM_getRules hoặc
bằng toán tử Extractor trong DesignStudio. Tập kết quả chứa một quy tắc cho mỗi bản ghi với
thông tin sau:
phần đầu
phần thân
độ tin cậy
hỗ trợ
nâng lên
chiều dài
Bảng có các quy tắc được trích xuất có thể trông như sau:
Hình 3. Bảng các quy tắc
Phần dưới đây cho thấy cách bạn có thể chuyển giao thông tin này tới Cognos để hiển thị trực
quan nó theo cách tiện lợi.
Về đầu trang
Gọi các thủ tục khai phá từ Cognos
Trong bài viết trước, bạn đã thấy rằng có thể gọi thủ tục DB2 đã lưu trữ từ Cognos Reporting
(Việc tạo báo cáo Cognos) bằng cách bao gồm chúng như là Query Subjects (Các truy vấn đối
tượng) trong Cognos Metadata (Siêu dữ liệu Cognos). Điều này làm cho thủ tục đã lưu trữ thực
hiện ngay báo cáo được chạy và sau đó bạn có thể sử dụng nó để trích xuất thông tin từ một mô
hình khai phá PMML (Ngôn ngữ đánh dấu mô hình hóa dự báo) hiện có.
Trong bài này, hãy tiến thêm một bước nữa và tạo một mô hình khai phá động theo một thủ tục
đã lưu trữ được tham số hóa bằng cách sử dụng SQL API của Khai phá InfoSphere Warehouse.
Sau đó thủ tục đã lưu trữ tương tự trích xuất thông tin từ mô hình và trả nó về cho Cognos
Report (Báo cáo Cognos)
Thực sự chỉ có hai cuộc gọi liên quan đến quá trình tạo các quy tắc và chuyển giao chúng cho
Cognos. Một cuộc gọi để xây dựng mô hình quy tắc trong cơ sở dữ liệu và một cuộc gọi thứ hai
để trích xuất các quy tắc và trả chúng về như là tập kết quả. Tuy nhiên, cuộc gọi để tạo một mô
hình là một thủ tục đã lưu trữ không trả về bất kỳ giá trị nào. Để gọi khai phá từ Cognos, thật lý
tưởng là thực hiện cả hai trong một cuộc gọi duy nhất tới cơ sở dữ liệu.
Để làm được điều này, ý tưởng cơ bản là tạo ra một hàm kết hợp do người dùng định nghĩa để
trước hết gọi quá trình tạo mô hình và sau đó trích xuất các quy tắc và trả chúng về như là một
tập kết quả. Quá trình này được thể hiện trong hình sau.
Hình 4. Các hàm kết hợp do người dùng định nghĩa để khai phá động
Bạn có thể tạo một thủ tục đã lưu trữ được kết hợp bằng thủ công. Tuy nhiên, có khả năng để tạo
ra nó trực quan nhờ sử dụng InfoSphere Warehouse. Bạn sẽ tìm hiểu cách có được điều này bằng
cách làm theo cùng với ví dụ đi dần qua từng bước sau đây.
Sử dụng InfoSphere Warehouse để tạo ra các thủ tục đã lưu trữ khai phá phức tạp
Trước tiên, bạn phải tạo logic khai phá phức tạp. InfoSphere Warehouse có Mining Editor (Trình
soạn thảo khai phá) làm cho nó có thể thiết kế các luồng khai phá (các chuỗi lệnh khai phá) bằng
đồ họa. Các luồng khai phá này có thể được thực hiện trong DesignStudio hoặc được triển khai
đến Bàn điều khiển quản trị của InfoSphere Warehouse (InfoSphere Warehouse Administration
Console) để được chạy trên một cơ sở lịch trình dự kiến. Nhưng do tất cả các hoạt động khai phá
dựa vào SQL, nên nó cũng có thể tạo ra một kịch bản lệnh SQL từ một luồng khai phá (trừ một
số toán tử như phân tích Mining Visualizers (Các trình hiển thị trực quan khai phá) và Text (Văn
bản) không được thực hiện trong cơ sở dữ liệu). Các toán tử khai phá như Association Operator
và Rules Extractor (được sử dụng trong ví dụ sau đây) được dịch sang SQL. Lệnh "Generate
SQL Code" (Tạo mã SQL) của Mining Editor tạo ra DDL của SQL biểu diễn luồng khai phá và
có thể được bao gồm trong một thủ tục đã lưu trữ bằng cách trả về bảng kết quả của luồng khai
phá như là kết quả của thủ tục đã lưu trữ. Ví dụ cho bạn thấy cách làm điều này.
Sau khi bạn đã tạo ra logic khai phá phức tạp, trở ngại thứ hai là tạo, triển khai và kiểm tra thủ
tục SQL đã lưu trữ mà bạn muốn tạo. InfoSphere Warehouse DesignStudio có Data perspective
(Phối cảnh dữ liệu) với dự án Data Development (Phát triển dữ liệu) đưa ra sự hỗ trợ để tạo ra
các thủ tục đã lưu trữ của Java và SQL và các hàm do người dùng định nghĩa. Một trình thủ thuật
tạo một thủ tục đã lưu trữ khuôn mẫu để giúp bạn có thể triển khai và thử nghiệm trực tiếp từ
DesignStudio.
Trong ví dụ sau đây, hãy xem cách tạo ra luồng khai phá, việc tạo mô hình kết hợp và trích xuất
các quy tắc từ nó. Sau đó hãy xem cách tạo mã SQL từ luồng này. Trong bước tiếp theo, sử dụng
việc tạo công cụ để tạo ra một thủ tục đã lưu trữ của mã SQL. Chúng ta sẽ thêm các tham số đầu
vào cho các thủ tục đã lưu trữ để sau đó có thể được thiết lập trong Cognos Report và sẽ tham số
hóa mô hình khai phá được tạo ra. Các quy tắc được trích xuất của các mô hình kết hợp được thủ
tục đã lưu trữ trả về và được nhập khẩu vào Cognos làm các chủ thể truy vấn. Cuối cùng, hãy tìm
hiểu một báo cáo Cognos đơn giản đang chỉ ra một danh sách doanh thu cho các sản phẩm và
cho phép truy vấn ngược (ND: drill-through là một tính năng cho phép người dùng từ báo cáo
tổng hợp tìm ngược về tận bản ghi dữ liệu gốc. Sau đây gọi là truy vấn ngược) tới các quy tắc kết
hợp có liên quan với các sản phẩm đó.
Về đầu trang
Việc sử dụng các kết quả Khai phá dữ liệu động trong Các báo cáo Cognos: Một ví dụ từ khu
vực bán lẻ
Trong ví dụ này, chúng ta sẽ thực hiện phân tích giỏ hàng dựa vào dữ liệu bán lẻ của giao dịch.
Dữ liệu biểu diễn các giỏ hàng (các giao dịch) từ một cửa hàng bán lẻ. Bảng đầu tiên chứa các
mã định danh (ID) của giao dịch đang xác định một giỏ hàng duy nhất cùng với các ID của sản
phẩm. Để thu được các kết quả có ý nghĩa, hãy áp dụng một bảng ánh xạ-tên cho các ID của sản
phẩm.
Bảng này có thể có trong các ví dụ đi kèm với InfoSphere Warehouse. Để nhập khẩu nó vào cơ
sở dữ liệu của bạn:
Mở cửa sổ lệnh DB2.
Vào thư mục cài đặt của bản cài đặt InfoSphere Warehouse của bạn.
Chuyển hướng đến thư mục con SQLLIB\samples\dwe\ModelingDB2.
Nối với cơ sở dữ liệu làm việc của bạn (trong ví dụ này, đó là cơ sở dữ liệu mẫu
DWESAMP: db2 CONNECT TO DWESAMP).
Thực hiện lệnh db2 -tvf retailImport.db2 để nhập khẩu các bảng mẫu vào lược đồ của bạn
(trong ví dụ của chúng ta, lược đồ này được gọi là IMINER).
Ngoài ra hãy tạo một sơ đồ mới, ASSOC, được sử dụng trong ví dụ sau đây bằng lệnh
db2 CREATE SCHEMA ASSOC.
Mục tiêu phân tích là để trích xuất các quy tắc kết hợp theo biểu mẫu:
Toy car + flash light => Battery (support: 3%, confidence: 83%)
Quy tắc trên nói rõ rằng trong 83% các trường hợp ở nơi người ta mua các xe ô tô đồ chơi và các
đèn flash, thì cũng mua pin . Tất cả các sản phẩm đi cùng với nhau có thể có trong 3% của tất cả
các giỏ hàng (còn gọi là hỗ trợ).
Thay vì tính toán trước các quy tắc, một báo cáo Cognos kích hoạt tính toán. Trong báo cáo, bạn
có thể nhập các tham số để thay đổi các tham số khai phá. Trong ví dụ này, một danh sách sản
phẩm cho mỗi doanh thu cho phép bạn truy vấn ngược (drill-through) đến các quy tắc kết hợp
cho các sản phẩm cụ thể. Bạn có thể định nghĩa sự hỗ trợ và chiều dài tối thiểu của các quy tắc.
Sau đó các quy tắc được tính toán theo yêu cầu và được trả về cho người dùng thông qua bản ghi
khác. Ví dụ, có thể sử dụng các quy tắc để thực hiện bố trí sản phẩm thông minh trong cửa hàng
để tăng doanh thu.
Tạo các quy tắc kết hợp trong InfoSphere Warehouse DesignStudio
Trước tiên, bạn phải tạo ra một mô hình quy tắc kết hợp được lưu trữ như PMML từ đó bạn có
thể trích xuất các quy tắc vào trong một bảng cơ sở dữ liệu để truy cập Cognos sau đó. Để biết
thêm thông tin về PMML, hãy tham khảo trang Web chuẩn PMML.
Tạo một dự án Data Warehouse (Kho dữ liệu):
Trong Project Explorer (Trình thám hiểm Dự án), nhấn chuột phải và chọn New > Data
Warehouse project như Hình 5 minh họa.
Hình 5. Tạo một dự án Data Warehouse
Trong trình thủ thuật sau đây, gõ vào tên dự án, ví dụ, "AdvancedAnalytics." Sau đó nhấn
Finish.
Tạo ra một luồng khai phá rỗng:
Mở rộng dự án vừa tạo ra.
Nhấn chuột phải vào thư mục Mining Flow (Luồng khai phá). Chọn New -> Mining
Flow.
Trong trình thủ thuật sắp tới, gõ AssocFlow làm tên luồng khai phá.
Trong ví dụ này, bạn sẽ làm việc dựa vào cơ sở dữ liệu, do đó cứ giữ nguyên giá trị mặc
định và nhấn Next.
Chọn cơ sở dữ liệu DWESAMP database (hoặc cơ sở dữ liệu mà bạn đã chọn) và nhấn
Finish.
Tạo luồng khai phá:
Trình soạn thảo Mining Flow mở ra. Ở phía bên phải của trình soạn thảo Khai phá, bạn có thể
thấy một bảng các toán tử. Với các toán tử này bạn có thể xây dựng một Mining Flow bằng cách
kéo và thả chúng vào khung trình soạn thảo.
Hình 6. Luồng khai phá bên trong Design Studio
Để tạo ra mô hình khai phá quy tắc kết hợp và trích xuất các quy tắc tới một bảng cơ sở dữ liệu,
hãy làm như sau:
Trong bảng các toán tử bạn có thể tìm thấy phần Sources and Targets (Các nguồn và các
đích). Chọn một toán tử Table Source (Nguồn bảng) và kéo nó vào trình soạn thảo.
Trong hộp thoại chọn bảng, mở rộng lược đồ IMINER (hoặc lược đồ mặc định của bạn)
và chọn bảng RETAIL (Bán lẻ). Sau đó nhấn Finish.
Tạo một toán tử Table Source khác với một bảng gọi là RETAIL_NAMES.
Trong bảng các toán tử bạn có thể tìm thấy phần Mining Operators (Các toán tử khai
phá). Chọn một toán tử Associations và kéo nó vào trình soạn thảo.
Nối Output Port (cổng đầu ra) của bảng RETAIL tới Associations Input Port (Đầu vào
cổng kết hợp) và Output Port của bảng RETAIL_NAME với Associations Names Port
(Cổng các tên kết hợp).
Chọn toán tử Associations.
Trong thẻ các đặc tính dưới trình soạn thảo khai phá, chọn thẻ Mining Settings (Các giá
trị cài đặt khai phá) ở phía bên trái.
Trong danh sách chọn cột Group, chọn TRANSID. Tất cả các sản phẩm (ITEMID) có
cùng một TRANSID đã được mua trong một giỏ thị trường duy nhất.
Bây giờ hãy chọn trang đặc tính Name Maps (Các ánh xạ tên) và thiết lập "Item Id
Column" (Cột mã ID mặt hàng) thành "ITEMID" và "Item Name Column" (Cột tên mặt
hàng) thành "DESCRIPTION" (Mô tả). Cả hai cột đều đến từ bảng RETAIL_NAMES
biểu diễn một bảng tra cứu tên.
Tiếp tục với trang Column Properties (Các đặc tính cột). Thiết lập "Field Usage Type"
(Kiểu sử dụng trường) của tất cả các cột đầu vào thành Inactive (Không hoạt động) trừ
cột ITEMID được thiết lập là Active (Hoạt động).
Bên phải của "Field Usage Type", bạn có thể chỉ rõ Name Mapping (Ánh xạ tên) cho các
cột. Đối với cột ITEMID, chỉ định ánh xạ tên là Names. Names là tên của cổng đầu vào
được nối với bảng ánh xạ tên RETAIL_NAMES.
Từ bảng các toán tử trong Mining Operators, bạn có thể tìm thấy một toán tử
Associations Extractor (Trình trích xuất các kết hợp). Kéo nó vào trình soạn thảo và nối
các cổng đầu ra Model của toán tử Associations với toán tử cổng đầu vào Model của trình
trích xuất. Toán tử của trình trích xuất sẽ trích xuất mô hình PMML của biểu mẫu các
quy tắc kết hợp được toán tử Associations tạo ra và cung cấp chúng trong một cấu trúc
bảng quan hệ.
Cuối cùng, bạn phải lưu trữ các quy tắc kết hợp đã trích xuất vào một bảng vật lý. Để làm
điều này, hãy nhấn chuột phải vào cổng đầu ra "quy tắc" của trình trích xuất và chọn
Create Suitable Table (Tạo bảng thích hợp).
Đặt tên bảng là RETAIL_RULES và, với lược đồ, chọn đồ lược đồ mặc định ở nơi bảng
RETAIL thường trú. Nhấn Finish.
Bây giờ cần cho thấy một toán tử bảng đích cho "RETAIL_RULES" trong luồng khai
phá. Để chỉ nhận các quy tắc hiện tại cho từng lần chạy, hãy đánh dấu chọn vào hộp kiểm
tra Delete previous content (Xóa nội dung trước đó) trong các đặc tính của các toán tử
bảng đích.
Lưu luồng khai phá.
Bây giờ, luồng khai thác đã sẵn sàng để chạy.
Chạy luồng khai phá:
Luồng này tạo ra một mô hình có chứa các quy tắc kết hợp và lưu nó như là một mô hình PMML
trong cơ sở dữ liệu. Sau đó, các quy tắc được trích xuất tới một bảng cơ sở dữ liệu để bạn có thể
truy cập chúng sau từ bên trong Cognos. Trong khung nhìn bên dưới trình soạn thảo, chọn thẻ
Execution Status (Trạng thái thực hiện) và trên phần bên phải của khung nhìn, bạn có thể thấy
đầu ra bảng của toán tử cuối cùng, đó là, toán tử Target Table. Bảng này cho thấy các quy tắc
trích xuất, mỗi quy tắc đều có một thông tin ID, phần đầu và phần thân và các số liệu thống kê về
mỗi quy tắc. Bạn có thể khám phá trực quan các quy tắc kết hợp bằng cách nhấn chuột phải vào
toán tử Associations và chọn Open Model.
Triển khai luồng khai phá quy tắc kết hợp như là một thủ tục đã lưu trữ của DB2
Sau đó, trong Cognos, bạn có thể muốn gọi động luồng khai phá được thiết kế trước đây của bạn
với đầu vào do người dùng định nghĩa. Như đã đề cập ở trên, đầu vào này là sự hỗ trợ tối thiểu
cho các quy tắc để trích xuất và chiều dài của chúng. Để cho phép cuộc gọi động, bạn cần tạo
một thủ tục đã lưu trữ có hai tham số và gọi luồng khai phá với đầu vào của người dùng này.
Tạo một thủ tục đã lưu trữ mới trong một dự án Data Development (Phát triển dữ liệu):
Để tạo ra dự án Data Development làm như sau:
Nhấn chuột phải trong "Data Project Explorer" và chọn New -> Data Development
Project. Nếu không thể tìm thấy dự án Data Development, hãy chọn Project . . . để thay
thế và tìm kiếm trong toàn bộ danh sách dự án.
Chỉ rõ tên là Assoc Stored Procedure (Thủ tục đã lưu trữ kết hợp) và nhấn Next.
Chọn Use an existing connection (Sử dụng một kết nối hiện có) và chọn các cơ sở dữ
liệu trong đó bạn đã nhập khẩu các bảng bán lẻ. Nhấn vào Finish.
Nếu được hỏi liệu bạn có muốn chuyển đổi phối cảnh không, chọn No.
Để tạo Stored Procedure (Thủ tục đã lưu), làm như sau:
Mở rộng dự án mới và nhấn chuột phải vào thư mục Stored Procedure. Chọn New" ->
Stored Procedure.
Đặt tên thủ tục là "ASSOC_PROC" và chọn SQL làm ngôn ngữ thủ tục. Nhấn Next.
Trên màn hình trình thủ thuật tiếp theo, chấp nhận câu lệnh SQL được đề xuất và nhấn
Next.
Trên màn hình Parameters (Các tham số), định nghĩa hai tham số đầu vào hỗ trợ và
chiều dài. Nhấn Add, đặt tên là support và chọn FLOAT làm kiểu. Nhấn OK.
Làm tương tự với tham số thứ hai "length" với kiểu "INTEGER".
Nhấn Finish.
Một trình soạn thảo có phần thân thủ tục đã lưu trữ mở ra.
Sửa lại thủ tục đã lưu trữ để thực hiện luồng khai phá được định nghĩa trước đây:
1. Có hai câu lệnh trong phần thân của thủ tục này định nghĩa một con trỏ cho phép trả về
các hàng của bảng. Sửa lại câu lệnh đầu tiên khai báo con trỏ thành:
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT * FROM IMINER.RETAIL_RULES;
2.
3. Con trỏ trả về nội dung của bảng RETAIL_RULES chứa các quy tắc kết hợp. Hãy nhớ
rằng, IMINER là lược đồ mặc định trong ví dụ này và có thể khác với thiết lập của bạn.
4. Bây giờ, chuyển đổi luồng khai phá trực quan trong các câu lệnh SQL mà chúng ta có thể
dán vào phần thân thủ tục đã lưu trữ. Chuyển đến trình soạn thảo AssocFlow bằng cách
chọn thẻ tương ứng trong vùng soạn thảo.
5. Trong trình đơn, chọn Mining Flow -> Generate SQL Code.
6. Một trình soạn thảo mở ra chứa SQL biểu diễn luồng này. Đánh dấu toàn bộ nội dung của
trình soạn thảo và sao chép nó.
7. Chuyển sang trình soạn thảo thủ tục đã lưu trữ ASSOC_PROC và chuyển mã giữa việc
khai báo con trỏ và câu lệnh "OPEN" con trỏ. Lưu phần soạn thảo.
8. Chuyển đến đầu trình soạn thảo thủ tục đã lưu trữ và loại bỏ "CURRENT" khỏi câu lệnh
thiết lập lược đồ và thay thế tên lược đồ bằng lược đồ "ASSOC"mà bạn tạo ra lúc đầu:
Liệt kê 1. Thay thế tên lược đồ bằng lược đồ ASSOC
P1: BEGIN
Declare cursor
DECLARE cursor1 CURSOR WITH RETURN FOR
SELECT * FROM IMINER.RETAIL_RULES;
SET SCHEMA="ASSOC";
Sử dụng lược đồ ASSOC để triển khai thủ tục.
9. Chuyển đến câu lệnh CALL IDMMX.BuildRuleModel và sửa lại nó để thiết lập động sự hỗ
trợ và chiều dài quy tắc tối thiểu qua các tham số hỗ trợ và chiều dài, chỉ cần sửa lại tham
số thứ tư và thứ sáu như Liệt kê 2 cho thấy.
Liệt kê 2. Sửa lại tham số thứ tư và thứ sáu
CALL IDMMX.BuildRuleModel('AssocAnalysis.IM_ASSOC_03',
'INPUT_03',
'TRANSID',
support,
25.0,
length,
'DM_addNmp(''nameMap'',''NAMEMAP_03'',
''ITEMID'',''DESCRIPTION''),
DM_setFldNmp(''ITEMID'',''nameMap''),
DM_setFldUsageType(''ITEMID'',1),
DM_setFldUsageType(''STOREID'',2),
DM_setFldUsageType(''CUSTOMER_ID'',2),
DM_setFldUsageType(''ITEMPRICE'',2),
DM_setFldUsageType(''TRANSDATE'',2),
DM_setMaxNumRules(10000),
DM_setAlgorithm(''SIDE'',
''<NumBins>5</NumBins>'')');
10. Cuối cùng, đi tới câu lệnh
ALTER
TABLE "IMINER"."RETAIL_RULES" ACTIVATE NOT LOGGED INITIALLY WITH EMPTY
TABLE;
11.
12. và thay thế nó bằng câu lệnh
DELETE FROM "IMINER"."RETAIL_RULES";
13.
14. Lưu phần soạn thảo.
Triển khai thủ tục đã lưu trữ tới cơ sở dữ liệu:
Để triển khai các thủ tục đã lưu trữ được tạo ra trước đó làm như sau:
1. Trong Data Project Explorer, mở rộng dự án Data Development "Assoc Stored
Procedure", mở rộng thư mục Stored Procedure và nhấn chuột phải vào thủ tục
ASSOC_PROC; chọn Deploy
2. Trong hộp thoại Deploy Routines (Các thường trình triển khai), thay đổi lược đồ là
"ASSOC" và nhấn Finish.
Bây giờ, thủ tục đã lưu trữ ASSOC_PROC được triển khai đến lược đồ ASSOC. Bạn có thể kiểm
tra việc triển khai bằng cách chuyển hướng đến thư mục Stored Procedure trong lược đồ bằng
cách sử dụng Database Explorer (xem hình 7). Thủ tục đã lưu trữ cho phép bạn gọi động luồng
khai phá được thiết kế trước đây với các giá trị thiết lập đặc tính do người dùng định nghĩa.
Hình 7. Thủ tục đã lưu trữ ASSOC_PROC được triển khai trong Design Studio
Trong phần tiếp theo, hãy xem cách sử dụng Cognos để truy cập thủ tục đã lưu trữ và xây dựng
một báo cáo bằng cách sử dụng khai phá quy tắc kết hợp theo cách động.
Tạo siêu dữ liệu để tạo bản ghi sau này bằng cách sử dụng Cognos Framework Manager
Trước khi bạn có thể tạo một báo cáo bằng cách sử dụng các kết quả khai phá, bạn cần phải định
nghĩa các tài nguyên nào (cơ sở dữ liệu, bảng biểu, các thủ tục đã lưu trữ) nên được sử dụng.
Framework Manager cho phép bạn định nghĩa siêu dữ liệu này và cũng cho phép bạn làm giàu
thêm các nguồn dữ liệu bằng cách định nghĩa các mối quan hệ.
Trong các đoạn sau đây, hãy xem cách tạo ra một dự án Cognos Framework Manager, định
nghĩa hai bảng đầu vào và thủ tục đã lưu trữ được tạo ra trước đó. Cuối cùng, hãy tìm hiểu cách
xuất bản dự án và làm cho nó có sẵn cho báo cáo.
Mở Framework Manager và tạo một dự án mới:
Khởi chạy Cognos Framework Manager.
Sau khi khởi động xong, nhấn vào Create a new project (Tạp một dự án mới).
Trong hộp thoại sắp tới, chỉ rõ tên là AssociationExample (Ví dụ kết hợp) và nhấn OK.
Chọn English (Tiếng Anh) làm ngôn ngữ sử dụng và nhấn OK.
Khi bạn muốn tạo ra siêu dữ liệu từ một cơ sở dữ liệu DB2, chọn Data Sources và nhấn
Next.
Trong bước tiếp theo, chọn cơ sở dữ liệu mà bạn đã sử dụng trong suốt ví dụ này và nhấn
Next. Nếu bạn vẫn chưa có một kết nối đến cơ sở dữ liệu, bạn cần phải tạo một kết nối.
Để biết thông tin về cách tạo kết nối này, hãy tham khảo tài liệu Cognos.
Bây giờ bạn được yêu cầu chọn đối tượng dữ liệu mà bạn muốn nhập khẩu làm siêu dữ
liệu. Mở rộng lược đồ mặc định của bạn tại nơi đặt bảng RETAIL và RETAIL_NAMES,
mở rộng thư mục Tables và chọn các bảng nêu trên.
Sau đó, mở rộng lược đồ ASSOC và thư mục Procedures và chọn thủ tục
ASSOC_PROC mà bạn đã triển khai trước đó. Nhấn Next.
Các giá trị thiết lập trên trang này là tốt, vì thế nhấn Import rồi nhấn Finish.
Figure 8. Trình quản lý khung công tác Cognos 8
Sau khi tạo dự án này, Framework Manager hiển thị ở phía bên trái của Project Viewer (xem
Hình 8). Trong Project Viewer bạn có thể tìm hiểu dự án mới được tạo ra. Mở rộng thư mục có
tên của cơ sở dữ liệu của bạn (trong trường hợp này "DWESAMP") để xem các bảng được nhập
khẩu và thủ tục đã lưu trữ. Bây giờ, bạn định nghĩa một mối quan hệ mới giữa bảng RETAIL và
RETAIL_NAMES. Điều này làm cho việc định nghĩa báo cáo sau đó dễ dàng hơn.
Để tạo ra mối quan hệ này, thực hiện các bước sau:
Nhấn chuột phải vào thư mục cơ sở dữ liệu (ở đây "DWESAMP"). Chọn Create ->
Relationship.
Hộp thoại Relationship Definition (Định nghĩa mối quan hệ) mở ra (xem Hình 9).
Bạn có thể định nghĩa một đối tượng truy vấn ở phía bên trái và một ở phía bên phải. Ở
phía bên trái, chọn bảng RETAIL và ở phía bên phải chọn bảng RETAIL_NAMES.
Chọn cột ITEMID trên cả hai phía để kết hợp chúng.
Đặt cardinalities (số các yếu tố trong một tập hợp) như trong Hình 9. Nhấn OK.
Bạn có thể tìm hiểu mối quan hệ được tạo ra bằng cách nhấn vào liên kết Explorer ở
phần giữa của Framework Manager (xem Hình 9).
Hình 9. Hộp thoại Relationship Definition
Trong bước tiếp theo, bạn thấy cách định nghĩa các tham số của thủ tục đã lưu trữ. Các tham số
được định nghĩa như là đối số đã được báo cáo chuyển qua . Bạn cũng có thể gọi thủ tục đã lưu
trữ một lần nữa. Không chỉ để kiểm tra nó, mà còn để lấy các cột do thủ tục đã lưu trữ cung cấp.
Điều này là cần thiết để sử dụng thủ tục lưu trữ giống như một bảng trong việc tạo công cụ báo
cáo.
Để tạo các đối số, thực hiện các bước sau:
Nhấn đúp vào thủ tục đã lưu trữ ASSOC_PROC trong Project Viewer.
Hộp thoại Query Subject Definition (Định nghĩa chủ thể truy vấn) mở ra (xem Hình 10).
Trong phần dưới, bạn thấy hai đối số của thủ tục đã lưu trữ. Nhấn vào nút ". . . " ở cuối
bên phải của dòng đối số SUPPORT.
Trong hộp văn bản Value của hộp thoại Edit Argument (Chỉnh sửa đối số), gõ #
prompt('support')#. Nhấn OK.
Làm tương tự với đối số LENGTH (sử dụng "# prompt('length')#" làm giá trị đối số).
Nhấn OK để xác nhận các giá trị thiết lập trong hộp thoại Query Subject Definition.
Bây giờ, một hộp thoại Prompt Values (Nhắc các giá trị) mở ra. Bạn phải chuyển hai giá
trị tham số ví dụ để cho phép Framework Manager thực hiện thủ tục này và lấy các cột
kết quả. Đặt vào trường giá trị độ dài bằng "2" và trong trường giá trị hỗ trợ bằng "3.0".
Lưu ý, bây giờ luồng khai phá quy tắc kết hợp đang thực hiện và trả về các quy tắc được
trích xuất đến Framework Manager.
Hình 10. Hộp thoại Query Subject Definition với hộp thoại Edit Argument đã mở
Sau khi nhập khẩu các bảng và thủ tục đã lưu trữ và điều chỉnh siêu dữ liệu cho các đối tượng cơ
sở dữ liệu đó, bạn có thể tạo ra một gói cho dự án và xuất bản nó vào Cognos Content Store
(Kho lưu trữ nội dung Cognos). Sau đó, nó sẵn sàng cho Cognos Report Studio (Xưởng báo cáo
Cognos)
Tạo một gói và xuất bản nó:
Để làm cho siêu dữ liệu vừa được tạo ra có sẵn, chuyển đến Project Viewer và nhấn
chuột phải vào thư mục Packages. Chọn Create -> Package.
Trong trường name, gõ vào AssociationRulePackage. Nhấn Next.
Nhấn Next một lần nữa do không có gì phải làm cả.
Trong hộp thoại sau đây, hãy chắc chắn rằng DB2 có trong danh sách “Available function
sets” (Các tập hàm có sẵn). Nhấn Finish.
Trong hộp thoại tiếp theo, nhấn Yes để tiếp tục quá trình xuất bản.
Trong phần “Select publish location” (Chọn vị trí xuất bản) của Publish Wizard (Trình
thủ thuật xuất bản), nhấn Next do không có gì phải thay đổi cả.
Bạn không cần phải chỉ định các giá trị cài đặt bảo mật. Do đó, nhấn Next.
Sau đó, nhấn Publish.
Một hộp thoại hiện ra nói rằng bạn đã xuất bản thành công gói phần mềm của mình, nhấn
Finish.
Tạo một báo cáo Cognos bằng cách sử dụng các kết quả từ khai phá quy tắc kết hợp động
Để tạo một báo cáo Cognos, hãy sử dụng Cognos Report Studio, đây là một ứng dụng hoàn toàn
dựa trên web. Bạn sẽ tạo ra hai báo cáo một báo cáo cho thấy một danh sách doanh thu được
nhóm lại theo các sản phẩm và một báo cáo hiển thị danh sách các quy tắc kết hợp cho các sản
phẩm từ bảng RETAIL. Hãy xem cách xác định một định nghĩa truy vấn ngược (drill-through),
từ một báo cáo đến hai báo cáo. Bằng cách nhấn vào một sản phẩm trong danh sách doanh thu,
mở các quy tắc nào có chứa sản phẩm được chọn trong phần đầu của quy tắc này. Việc này cho
phép bạn phân tích những sản phẩm nào làm tăng doanh thu của sản phẩm đã chọn. Hơn nữa,
bạn có thể xác định sự hỗ trợ tối thiểu của các quy tắc trong tập dữ liệu và độ dài của quy tắc
này. Việc khai phá được thực hiện theo thời gian thực và kết quả sẽ được lọc và được trình bày
chỉ bằng một cái nhấn chuột.
Bạn phải thực hiện các bước sau để tạo báo cáo danh sách doanh thu:
Khởi động Cognos Report Studio.
Trong màn hình Welcome, nhấn vào liên kết Create professional reports (Tạo các báo
cáo chuyên nghiệp).
Trong Select a package explorer (Chọn một trình thám hiểm gói), hãy nhấn vào gói
AssociationRulePackage mà bạn đã xuất bản trong Framework Manager.
Trong hộp thoại Welcome, chọn Create a new report for template (Tạo một báo cáo
mới cho khuôn mẫu).
Chọn khuôn mẫu List và nhấn OK.
Trong ô phía trên bên trái của khung nhìn Insertable Objects , bạn có thể chọn giữa các
thẻ khác nhau. Thẻ nguồn (Data sources) tab được chọn (xem Hình 11).
Hình 11. Report studio
Trong khung nhìn Insertable Objects, mở rộng bảng RETAIL và kéo cột ITEMID đến
bảng danh sách trên trang trình soạn thảo ở phần bên phải của Report Studio. Sau đó kéo
cột ITEMPRICE đến bên phải của cột ITEMID trong danh sách đó (xem Hình 11).
Mở rộng bảng RETAIL_NAMES và kéo cột DESCRIPTION giữa các cột ITEMID và
ITEMPRICE.
Nhấn vào cột ITEMPRICE. Không nhấn vào tiêu đề mà vào ba ô phía dưới tiêu đề cột.
Trong thanh công cụ, nhấn nút Sort (Phân loại) (xem Hình 11) và chọn tùy chọn Sort
Descending (Sắp xếp theo thứ tự giảm dần). Bạn cần danh sách doanh thu để cho thấy
nhóm sản phẩm có doanh thu lớn nhất ở trên đỉnh.
Nhấn nút Run Report để xem trước giai đoạn chuẩn bị báo cáo hiện tại.
Lưu báo cáo là RevenueReport (Báo cáo doanh thu).
Bạn phải thực hiện các bước sau để tạo báo cáo các quy tắc kết hợp:
Tạo một báo cáo mới từ khuôn mẫu List cho gói giống nhau. Bạn có thể làm điều này
bằng cách chọn File->New in the Report Studio.
Trong khung nhìn Insertable Objects, mở rộng đối tượng ASSOC_PROC và kéo cột
BODYTEXT, HEADNAME, SUPPORT và CONFIDENCE vào danh sách trên trang
soạn thảo ở phần bên phải của Report Studio.
Khi bạn chỉ muốn hiển thị các quy tắc chứa một sản phẩm cụ thể trong phần đầu của quy
tắc, bạn phải xác định một bộ lọc. Chọn cột bất kỳ trong danh sách và nhấn nút Filters
trong thanh công cụ.
Trong phần dưới bên trái của hộp thoại Filters, nhấn nút Add.
Hộp thoại Detail Filter Expression (Mô tả chi tiết biểu thức lọc) mở ra. Mở rộng thủ tục
ASSOC_PROC và nhấn đúp vào HEAD. Cột HEAD được thêm vào phần bên phải của
hộp thoại. Mở rộng phần bên phải như sau:
[DWESAMP].[ASSOC_PROC].[HEAD] = ?product?
Biểu thức ?product? định nghĩa một tham số mà sau này sẽ được báo cáo đầu tiên
chuyển qua tùy thuộc vào sản phẩm nào mà bạn nhấn chuột.
Nhấn OK hai lần.
Với việc chuyển qua tham số và cuộc gọi thủ tục đã lưu trữ, bạn phải thực hiện một điều
chỉnh cuối cùng. Chọn Query Explorer trong thanh chọn Explorer (xem Hình 11) và sau
đó chọn Query 1.
Trong phần Properties ở phía dưới bên trái của Report Studio, chọn đặc tính Processing
(Xử lý) và chọn Limited Local (Đã giới hạn cục bộ) từ hộp thả xuống.
Nhấn nút Run Report để xem trước giai đoạn chuẩn bị báo cáo hiện tại.
Sau đó bạn sẽ được nhắc về ba tham số - hai do thủ tục đã lưu trữ cung cấp và một do bộ
lọc bạn vừa định nghĩa cung cấp. Sử dụng sự hỗ trợ là 3.0, chiều dài là 2 và mã định danh
HEAD là 142. Nhấn OK.
Cuối cùng, lưu báo cáo là "AssocReport".
Bây giờ, bạn phải mở rộng báo cáo đầu tiên để gọi báo cáo thứ hai thông qua một định nghĩa truy
vấn ngược (drill-through).
Bạn phải thực hiện các bước sau để tạo ra một định nghĩa truy vấn ngược (drill-through) trong
báo cáo doanh thu:
Mở lại RevenueReport (Báo cáo doanh thu) đầu tiên bằng cách chọn File->Open.
Trong danh sách trong vùng soạn thảo, chọn cột ITEMID (lưu ý tiêu đề trừ ba ô bên
dưới tiêu đề).
Nhấn chuột phải vào ô được chọn và chọn Drill-Through Definitions (Các định nghĩa
truy vấn ngược ).
Trong phần dưới bên trái của hộp thoại Drill-Through Definition, chọn nút Add.
Nhấn vào " " bên cạnh trường Report và chọn AssocReport.
Đánh chọn dấu vào ô Open in new window (Mở cửa sổ mới).
Nhấn nút Edit bên dưới hộp Parameters.
Trong hộp thoại Parameters, bạn sẽ định nghĩa giá trị được chuyển tới tham số sản phẩm
của AssocReport được định nghĩa trước. Trong cột Method (Phương thức) của hàng sản
phẩm, chọn Pass data item value (Chuyển giá trị mặt hàng dữ liệu) từ hộp thả xuống.
Trong cột Value của hàng sản phẩm, chọn cột ITEMID từ báo cáo này. Itemid sẽ được
chuyển tới AssocReport và do đó dẫn đến chỉ trình bày các quy tắc với sản phẩm này
trong phần đầu của quy tắc.
Nhấn OK hai lần.
Lưu báo cáo.
Nhấn nút Run Report để xem trước báo cáo.
Trong danh sách doanh thu được xếp loại, ví dụ, chọn "Toy car" có ID 191. Lưu ý, không
phải tất cả các sản phẩm có các quy tắc kết hợp liên quan, do sự hỗ trợ của các quy tắc có
thể đã là quá nhỏ trong lúc tính toán.
Bây giờ, bạn sẽ được nhắc về hai tham số vì tham số thứ ba - sản phẩm - được chuyển
qua bằng định nghĩa truy vấn ngược (drill-through). Sử dụng hỗ trợ là 2.0 chiều dài là 3
và nhấn OK.
Hình 12 sau đây cho thấy báo cáo cuối cùng. Báo cáo đầu tiên cho thấy doanh thu của sản phẩm
được sắp xếp theo thứ tự giảm dần. Báo cáo thứ hai cho thấy các quy tắc kết hợp được tạo động,
có lọc cho sản phẩm được chọn.
Hình 12. Các báo cáo của quy tắc kết hợp bán lẻ cuối cùng
Về đầu trang
Kết luận
Trong bài này bạn đã học về khai phá quy tắc kết hợp và cách tìm thấy các quy tắc kết hợp bằng
InfoSphere Warehouse. Khai phá quy tắc kết hợp là một nhiệm vụ tương tác cao và những người
dùng thường phải thử các giá trị thiết lập tham số khác nhau để đạt được kết quả mong muốn.
Cognos rất thích hợp để hỗ trợ nhiệm vụ phân tích quy tắc tương tác. Ngoài các kỹ thuật được sử
dụng trong hai bài viết đầu tiên của loạt bài này, bạn đã tìm hiểu cách khai phá trên thực tế có thể
được gọi động từ Cognos, cho phép người dùng thiết lập các tham số và các hạn chế mà không
cần phải chuyển sang DesignStudio. Trong bài viết cuối cùng sắp tới của loạt bài này, bạn sẽ tìm
hiểu cách kết hợp tất cả các phương thức đã trình bày cho đến nay trong một ứng dụng phân
đoạn khách hàng tương tác.