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 1: Tổng quan về kiến trúc tích hợp InfoSphere Warehouse và
Cognos
Mở đầu
Khai phá dữ liệu cho phép các chuyên gia, các nhà phân tích và những người sử dụng có được
cái nhìn sâu sắc với các mẫu trong các bộ sưu tập dữ liệu lớn và kết hợp chúng vào quy trình
nghiệp vụ hàng ngày. Về lịch sử, khai phá dữ liệu là một nhiệm vụ mà chỉ các chuyên gia về
thống kê và phân tích dữ liệu mới có thể thực hiện được. Mặt khác, các kết quả của việc khai phá
dữ liệu thường liên quan đến những người dùng khác nhau trên toàn công ty.
Hãy xem xét kịch bản sau đây. Bạn thu thập dữ liệu về khách hàng của mình bao gồm các khía
cạnh nhân khẩu học (như tuổi tác, nghề nghiệp và nơi cư trú) cũng như các giao dịch trong quá
khứ (như các mặt hàng đã bán và các hợp đồng). Bộ phận tiếp thị của bạn muốn phát triển các đề
xuất chào hàng mới được thiết kế riêng cho các nhóm khách hàng cụ thể với các đặc tính giống
nhau. Làm thế nào để tìm ra các nhóm người dùng điển hình như vậy? Phân cụm dữ liệu cung
cấp một giải pháp cho vấn đề này. Nó tự động nhóm các tập dữ liệu theo các đặc tính hoặc các
tính năng của chúng. Sau đó, một nhà phân tích có thể rà soát lại các nhóm này và điều chỉnh
chúng dần dần cho đến khi chúng đáp ứng các yêu cầu của mình. Ví dụ, một chuyên gia tiếp thị
có thể thấy rằng có một nhóm khách hàng nhỏ nhưng là nhóm khách hàng quan trọng về kinh tế
có độ tuổi trên trung bình và không sử dụng dịch vụ ngân hàng Internet. Dựa vào thông tin này,
các đề xuất chào hàng riêng biệt có thể được thực hiện cho những khách hàng này. Một bước
quan trọng trong quá trình phân tích là cho phép những người dùng hiểu các kết quả của bước
phân cụm dữ liệu này. Các chuyên gia phân tích thường không phải là các chuyên gia về lập
trình các cơ sở dữ liệu mức thấp.
Làm thế nào có thể phân phối các kết quả khai phá dữ liệu đến các nhà phân tích và các nhân
viên cần dùng nó? Làm thế nào có thể trình bày các kết quả sao cho phản ánh quy trình nghiệp
vụ mà người dùng có dính líu đến? Làm thế nào có thể đáp ứng các yêu cầu an ninh, sao cho mỗi
người dùng chỉ thấy những gì mà người ấy được xem theo quy định? Để đưa ra các câu trả lời
thoả đáng cho những câu hỏi đó, cần di chuyển vị trí trong khung nhìn phối cảnh, rời xa các phân
tích thống kê và tiến gần đến phía người dùng cuối thực tế và các quy trình nghiệp vụ mà người
đó dính líu đến. InfoSphere Warehouse là nền móng vững mạnh cho việc tạo kho dữ liệu phạm
Khai phá dữ liệu.
Phân tích văn bản.
InfoSphere Warehouse Design Studio (Xưởng thiết kế kho dữ liệu InfoSphere) là nền tảng tạo
công cụ dựa trên Eclipse được sử dụng để thiết kế các quy tắc về khối lượng công việc, các
luồng biến đổi dữ liệu và các luồng phân tích để khai phá dữ liệu và phân tích văn bản. Sau đó,
các luồng này có thể được triển khai tới bàn điều khiển quản trị InfoSphere Warehouse để được
lập lịch biểu và chạy theo các yêu cầu. Khai phá dữ liệu InfoSphere Warehouse được xây dựng
với các thủ tục đã lưu của DB2 và các hàm do người dùng định nghĩa để thực hiện trong cơ sở dữ
liệu với hiệu năng cao, lợi dụng DB2 làm một môi trường thực hiện. Có thể truy cập nó hoặc
thông qua giao diện SQL của nó hoặc thông qua các luồng khai phá dữ liệu của InfoSphere
Warehouse.
Khai phá dữ liệu là nhiệm vụ tìm kiếm thông tin có ích trong các tập dữ liệu lớn. Một kịch bản
điển hình sẽ được sử dụng khi chạy ví dụ trong bài viết này là chăm sóc sức khỏe. Hiện nay có
thể thu thập một lượng lớn dữ liệu chăm sóc sức khỏe, mô tả tình trạng của nhiều bệnh nhân
khác nhau qua nhiều năm. Một công dụng quan trọng của dữ liệu này là để sớm tìm ra các chỉ
báo cho các bệnh tiềm ẩn. Với mục đích này, bạn có thể thu thập dữ liệu của các bệnh nhân, ví
dụ, mắc bệnh tim và phân tích các tham số nào, chẳng hạn như huyết áp và cân nặng, có liên
quan với nó. Dữ liệu này phải được thu gom và được chuyển đổi để có thể dùng nó cho việc khai
phá dữ liệu. Cụ thể hơn, bạn cần phải có được một bảng chứa đúng một hàng cho một bệnh nhân
và một số cột biểu diễn thông tin về bệnh nhân. Ngoài ra, cần có một cột riêng chỉ thị liệu bệnh
nhân này có thực sự bị mắc bệnh không. Lược đồ có thể sẽ giống như Hình 1:
Hình 1. Lược đồ của bảng cơ sở dữ liệu bệnh tim (một phần của các ví dụ InfoSphere
Warehouse)
Dựa trên dữ liệu này, các thủ tục đã lưu trữ trong InfoSphere Warehouse có thể xây dựng một
mô hình dự báo, cho bất kỳ bệnh nhân mới nào, cho biết liệu người đó có thể mắc bệnh tim tiềm
ẩn hay không. Quá trình này được gọi là "mô hình hóa". Mô hình khai phá dữ liệu XML được
lưu trữ trong cơ sở dữ liệu và có thể được truy cập thông qua SQL/XQuery. Nó có thể được sử
dụng cho hai mục đích. Trước tiên, bạn có thể trích xuất thông tin từ mô hình này để có được các
người cần gửi bản ghi đến.
Cognos Framework Manager (Nhà quản lý khung công tác Cognos): Công cụ mô hình
hóa cho các nguồn dữ liệu được sử dụng trong Cognos 8. Dữ liệu từ hầu hết các cơ sở dữ
liệu và các nguồn khác, như các dịch vụ Web, ví dụ, có thể được truy cập vào các bản ghi
của Cognos bằng cách mô tả một tầng siêu dữ liệu trong Framework Manager (Nhà quản
lý khung công tác). Các bảng, các khung nhìn cơ sở dữ liệu và các thủ tục đã lưu trữ có
thể được thêm vào một gói Cognos làm các chủ đề truy vấn. Framework Manager được
sử dụng để nhập khẩu và hợp nhất thông tin có sẵn trong các nguồn dữ liệu khác nhau
trong công ty để cho thông tin có thể được sử dụng theo cách chặt chẽ trong các công cụ
BI của Cognos 8 như Report Studio. Điều quan trọng cần lưu ý rằng chính dữ liệu được
lưu giữ trong nguồn dữ liệu và được truy cập khi báo cáo được tạo ra.
Cognos Report Studio (Xưởng tạo báo cáo Cognos): Một trong các xưởng thiết kế nội
dung dựa trên Web của Cognos 8 BI. Nó được dùng để tạo và chỉnh sửa các bản ghi phức
tạp về dữ liệu đã được mô tả trong Framework Manager. Nó cung cấp chức năng mạnh
mẽ như truy vấn ngược (drill-down), nhắc nhở và một thư viện tạo biểu đồ toàn diện.
Để làm cho dữ liệu có sẵn trong một báo cáo, cần thực hiện một vài bước:
Trong Framework Manager, Trình mô hình hóa dữ liệu tạo ra siêu dữ liệu Cognos để mô
tả dữ liệu trong cơ sở dữ liệu từ một khung nhìn phối cảnh nghiệp vụ (bao gồm cả quan
hệ giữa các bảng, các tên nghiệp vụ của các giá trị và v.v).
Sau khi siêu dữ liệu đã được mô hình hóa, nó được triển khai như là một gói vào kho lưu
trữ nội dung Cognos 8. Từ đó, nó có thể được truy cập thông qua kết nối Cognos và các
xưởng thiết kế nội dung.
Nhà thiết kế báo cáo nhập Kết nối Cognos và tạo ra một báo cáo mới về gói đã triển khai.
Sau khi tạo ra báo cáo này, có thể quản trị nhóm đích và dạng phân phối (như thư điện tử
hoặc cổng thông tin Web).
Khả năng tạo các báo cáo từ các nguồn dữ liệu quan hệ là chìa khóa cho sự tích hợp khai phá
InfoSphere Warehouse và Cognos của IBM.
Về đầu trang
Kiến trúc tích hợp
Nội dung của các báo cáo Cognos bao gồm một tập kết quả do một nguồn dữ liệu quan hệ cung
điều khiển từ Cognos.
Phần tiếp theo là một ví dụ từng bước cho kiểu tích hợp này, nó cũng là một ví dụ đơn giản nhất:
cho điểm các bản ghi trong cơ sở dữ liệu và hiển thị các kết quả trong một báo cáo Cognos. Việc
trích xuất thông tin mô hình và gọi khai phá dữ liệu động từ các báo cáo Cognos sẽ được trình
bày trong các bài viết tiếp theo của loạt bài này.
Về đầu trang
Sử dụng các kết quả khai phá dữ liệu trong các báo cáo Cognos: Một ví dụ từ lĩnh vực chăm sóc
sức khỏe
Ví dụ này phân tích dữ liệu bệnh nhân trong bệnh viện. Khoa tim mạch của bệnh viện có toàn bộ
các hồ sơ chính về bệnh nhân của họ cùng với một số kết quả đo như nhịp tim, huyết áp,
cholesterol và v.v Các bệnh nhân được kiểm tra với bốn căn bệnh tim mạch khác nhau. Các bản
ghi bệnh nhân có một cột cho biết liệu họ có mắc một trong bốn căn bệnh tim mạch (y = có) hay
không (n = không). Bảng cơ sở dữ liệu của bệnh tim mạch tương ứng được mô tả trong Hình 1.
Bảng này có thể được tìm thấy trong các ví dụ đi kèm với InfoSphere Warehouse.
Mục tiêu phân tích là để dự báo cho các bệnh nhân mới về nguy cơ họ mắc phải bất kỳ một trong
bốn căn bệnh tim mạch. Nếu có nguy cơ cao, cần thực hiện ngay các cuộc khám sức khỏe toàn
bộ.
Ý tưởng là để cho phép quản lý nguy cơ mắc bệnh ngay cả khi không tiến hành khám chuyên
khoa cho một trong những người mắc các bệnh tim mạch, nhưng đã có sẵn các kết quả đo từ các
cuộc khám sức khỏe trước đó về các lĩnh vực khác.
Tạo mô hình dự báo
Đầu tiên, tạo một mô hình dự báo dựa vào bảng HEART cho phép bạn dự báo các nguy cơ bệnh
tim cho các bệnh nhân.
Tạo một dự án Data Warehouse (Kho dữ liệu):
Nhấn chuột phải vào Project Explorer và chọn New > Data Warehouse Project (như trong
Hình 4 dưới đây).
Hình 4. Tạo một dự án Kho dữ liệu
Trong trình thủ thuật sau đây, hãy gõ tên dự án, ví dụ là AdvancedAnalytics. Sau đó nhấn
dụng 20 phần trăm dữ liệu để xác nhận hợp lệ mô hình của chúng ta sau đó. Vì vậy, bạn
phải phân chia dữ liệu trước khi xây dựng mô hình dự báo.
7. Trong bảng các toán tử, trong phần Mining Operators (Các toán tử khai phá), chọn một
toán tử Predictor (Trình dự báo) và kéo nó vào trình soạn thảo.
8. Nối cổng Training Output (Đầu ra đào tạo) của toán tử phân chia với Predictor Input
Port (Các đầu vào Trình dự báo).
9. Chọn toán tử Predictor.
10. Trên thẻ Properties bên 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.
11. Trong danh sách chọn cột Target (Đích), chọn DISEASED (Mắc bệnh) làm cột bạn
muốn dự báo.
12. Design Studio tự động nhận ra rằng bạn muốn dự báo một cột giá trị danh định và tự
động cung cấp cho bạn các giá trị thiết lập (trong cùng một thẻ này) có sẵn cho mục đích
này. Trong danh sách lựa chọn Algorithm (Thuật toán), chọn Naïve Bayes.
13. Trên thẻ các đặc tính Mining Settings (các giá trị cài đặt khai phá), chọn thẻ Model
Name (Tên mô hình). Để lại tiền tố như đã có nhưng thay đổi tên mô hình thành
HeartDiseasePrediction.
14. Ngoài ra, trong phần Mining của bảng các toán tử, chọn toán tử Tester (Trình kiểm tra)
và kéo nó vào trình soạn thảo.
15. Nối cổng đầu ra Predictor’s Model (Mô hình của Trình dự báo) với cổng đầu vào
Tester’s Model (Mô hình của Tester) và cổng kiểm tra đầu ra Random Split’s Test
(Phân chia ngẫu nhiên) với cổng đầu vào của Tester’s input port.
16. Lưu trữ luồng khai phá, ví dụ, bằng cách nhấn vào vùng soạn thảo và nhấn Ctrl+S.
Bây giờ, luồng khai phá đã sẵn sàng chạy.
Chạy luồng khai phá:
Bạn có thể thực hiện toàn bộ một trình soạn thảo luồng khai phá hoặc chỉ theo các đường dẫn
dành riêng cho luồng đó bằng cách nhấn chuột phải vào một toán tử và chọn Run to this step…
(Chạy đến bước này ). Trong kịch bản này, bạn nhấn chuột phải vào toán tử Tester, chọn Run
to this step… và nhấn Finish. Luồng khai phá này tạo ra một mô hình dự báo nguy cơ về bệnh
tim và lưu nó trong cơ sở dữ liệu. Nó được đào tạo trên 80 phần trăm dữ liệu và sau đó được
Suitable Table… (Tạo bảng phù hợp ).
8. Trong hộp thoại hiện lên, chỉ cần chỉ rõ tên của bảng mới:
NEW_PATIENT_CLASSIFICATION và lược đồ ở nơi bảng sẽ được tạo:
HEALTHCARE. Nhấn Finish.
9. Lưu luồng cho điểm.
10. Cuối cùng, thực hiện luồng này bằng cách nhấn chuột vào toán tử đích của bảng và chạy
theo bước này.
Sau khi thực hiện luồng cho điểm này, trong khung nhìn phía dưới xuất hiện một mẫu từ bảng
cho điểm (xem Hình 6). Nếu bạn cuộn sang bên phải, bạn sẽ thấy hai cột đã được trình cho điểm
này nối thêm vào.
Hình 6. Luồng cho điểm với các kết quả mẫu
Cột được nối đầu tiên, PREDICTED_CLASS, chứa kết quả dự báo. Nó nói rõ liệu mô hình khai
phá phân loại các bệnh nhân đang xét là người sẽ bị bệnh (y) hay không bị bệnh (n). Cột được
nối thứ hai, CLASS_CONFIDENCE, chứa các số giữa 0 và 1 và nói rõ độ chắc chắn đã dự báo
của trình cho điểm (theo mô hình). Giá trị 1 tương ứng với "chắc chắn 100 phần trăm rằng phân
loại này là đúng."
Tạo siêu dữ liệu trong Cognos Framework Manager
Trước khi bạn có thể tạo một bản ghi bằng cách sử dụng các kết quả khai phá, bạn cần phải định
nghĩa tài nguyên nào (các cơ sở dữ liệu, các bảng hoặc các khung nhìn) nên được sử dụng.
Framework Manager cũng cho phép bạn làm phong phú thêm các nguồn dữ liệu bằng cách định
nghĩa các kết nối và các cột mới (với các biểu thức).
Ví dụ đơn giản này tạo ra một dự án Cognos Framework Manager. Hãy định nghĩa bảng kết quả
cho điểm và xuất bản siêu dữ liệu.
Mở Framework Manager và tạo một dự án mới:
1. Trên màn hình, bạn có thể khởi chạy Cognos Framework Manager.
2. Sau khi khởi động xong, nhấn vào Create a new project….
3. Trong hộp thoại hiện lên, chỉ rõ tên là HeartMetaData, và nhấn OK.
4. Chọn English làm ngôn ngữ được dùng và nhấn OK.
THEN('necessary') ELSE('maybe'))
ELSE (IF([DWESAMP].[NEW_PATIENT_CLASSIFICATION].[CLASS_CONFIDENCE] > 0.9)
THEN('not necessary')
ELSE('maybe'))
Biểu thức trên tạo ra ba lớp mới trong nhãn PREDICTED_CLASS (y và n) và
CLASS_CONFIDENCE. Biểu thức này đặt những bệnh nhân nào có lớp được dự báo là
y với độ tin cậy cao hơn 83 phần trăm vào nhóm các bệnh nhân có nguy cơ cao (có nghĩa
là cần khám sức khỏe ngay). Các bệnh nhân được phân loại là n và độ tin cậy một của lớp
này cao hơn 90 phần trăm được đặt vào nhóm các bệnh nhân có nguy cơ thấp (có nghĩa là
không cần thiết phải khám sức khỏe). Tất cả các bệnh nhân khác được phân loại là có
nguy cơ trung bình (có thể cần khám sức khỏe). Hình 9 là một ví dụ về hộp thoại
Calculation Definition.
Hình 9. Hộp thoại Calculation Definition
6. Nhấn OK để đóng hộp thoại Calculation Definition.
7. Bạn có thể kiểm tra biểu thức này bằng cách vào thẻ Test và nhấn vào Test Sample
(Kiểm tra mẫu).
8. Nhấn OK để đóng hộp thoại Query Subject Definition.
Tạo một gói và xuất bản nó:
1. Để làm cho siêu dữ liệu mới được tạo sẵn sàng sử dụng, hãy chuyển tới Project Viewer
và nhấn chuột phải vào thư mục Packages, sau đó chọn Create > Package.
2. Trong trường name, gõ Heart rồi nhấn Next.
3. Nhấn Next, do không cần thực hiện gì cả.
4. Trong hộp thoại sau đây thêm DB2 vào danh sách các tập hợp hàm có sẵn và nhấn
Finish.
5. Trong hộp thoại tiếp theo, nhấn Yes để tiếp tục quá trình xuất bản.
6. 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.
10. Bạn thấy bảng bệnh nhân đã phân loại và nếu bạn cuộn sang bên phải bạn cũng thấy các
cột được nối thêm vào. Do bạn chỉ cần cột được nối vào là Check, được tạo ra trong
Framework Manager, nên hãy loại bỏ hai cột khác là <PREDICTED_CLASS> và
<CLASS_CONFIDENCE>. Chọn cả hai tiêu đề cột (ấn giữ phím Ctrl), nhấn chuột phải
vào các các tiêu đề đã chọn và chọn Delete từ trình đơn ngữ cảnh. Với ví dụ hiện tại, bạn
cũng loại bỏ các cột <DISEASED>, <KEYWORDS> và <MEDICAL_HISTORY>.
11. Bây giờ, bạn muốn làm nổi bật những bệnh nhân không cần (không cần thiết) khám sức
khỏe bằng màu xanh lá cây, những người cần (cần thiết) khám sức khỏe bằng màu đỏ và
những người khác (có thể khám) sẽ không được đánh dấu. Để làm như vậy, nhấn chuột
phải vào cột Check (Lưu ý: Nhấn vào thân cột, không phải vào phần tiêu đề) và chọn
Style > Conditional styles….
12. Trong hộp thoại Conditional Styles (Các kiểu dáng có điều kiện), nhấn vào biểu tượng ở
góc dưới bên trái để tạo ra một kiểu dáng mới có điều kiện.
13. Trên hộp thoại tiếp theo, cột Check đã được chọn. Từ Type (Kiểu) của danh sách thả
xuống kiểu dáng có điều kiện, chọn String (Chuỗi ký tự) và nhấn OK.
14. Trên hộp thoại tiếp theo, nhấn vào biểu tượng ở góc dưới bên trái và chọn Select
Multiple Values… (Chọn nhiều giá trị ). Report Studio trực tiếp lấy các giá trị có thể
từ cơ sở dữ liệu (Lưu ý: Có thể xảy ra là Report Studio yêu cầu mã định danh ID và mật
khẩu người dùng của DB2).
15. Đầu tiên thêm giá trị necessary (cần thiết) vào danh sách đã chọn và nhấn OK.
16. Lặp lại các bước 14 và 15 để thêm giá trị not necessary (không cần thiết).
17. Đối với giá trị không cần thiết, chọn Excellent từ danh sách Style thả xuống.
18. Đối với giá trị cần thiết, chọn Poor từ danh sách Style thả xuống.
19. Nhấn OK hai lần.
20. Thay đổi kiểu dáng tiêu đề bằng cách chọn nó và sau đó nhấn vào trình đơn Font (Phông
chữ) hiện lên trên cửa sổ Properties.
21. Nhấn vào nút Run report (Chạy báo cáo) để xem báo cáo kết quả.
Hình 11 cho thấy báo cáo cuối cùng. Cột cuối cùng bên cho thấy sự phân loại nguy cơ.
Hình 11. Báo cáo nguy cơ bệnh tim trong lĩnh vực Chăm sóc sức khỏe