a. Khái niệm mô hình khai phá dữ liệu
Một mô hình KPDL có thể xem nh một bảng quan hệ. Nó bao gồm các cột khóa (key columns), các cột dữ liệu nhập (input columns), và các cột dự báo (predictable columns). Mỗi mô hình KPDL tơng ứng với một thuật toán KPDL mà mô hình KPDL sẽ đợc huấn luyện trên thuật toán đó. Huấn luyện mô hình KPDL nghĩa là tìm các mẫu trong tập dữ liệu huấn luyện bằng cách sử dụng các thuật toán KPDL đợc chỉ định với các tham số thuật toán thích hợp. Sau khi huấn luyện, mô hình KPDL lu các mẫu mà thuật toán KPDL khám phá đợc trên tập dữ liệu huấnluyện.
Trong khi một bảng dữ liệu quan hệ chứa các bảng ghi, mô hình KPDL chứa các mẫu.
Tạo mô hình: Tạo mô hình KPDL rỗng, tơng tự nh tạo bảng trong CSDL quan hệ.
Huấn luyện mô hình: Còn gọi là bớc xử lý mô hình. Nó đợc sử dụng để thuật toán KPDL phát hiện các tri thức trong tập dữ liệu huấn luyện. Sau khi huấn luyện, các mẫu phát hiện đợc lu trong mô hình KPDL.
Dùng mô hình để dự báo: áp dụng các mẫu để dự báo các giá trị tiềm tàng của các cột dự báo cho mỗi trờng hợp mới trong tập dữ liệu mới.
DMX: Sự đóng góp quan trọng nhất của đạc tả OLEDB for Data Mining là định nghĩa ngôn ngữ truy vấn KPDL (data mining query language). Ngôn ngữ này đợc gọi là DMX (Data Mining eXtensions).
DMX đợc định nghĩa trong OLEDB for DM có các khái niệm cơ bản và cú pháp dựa trên SQL.
b. Tạo mô hình bằng wizard
SQL Serrver Analysis Services có 2 đối tợng chính trong KPDL:
mining structures và mining models. Mining structure định nghĩa lĩnh vực của vấn đề KPDL còn mining model là một ứng dụng của một thuật toán của một cấu trúc trong một mining structure.
Mining structure chứa danh sách của các cột cấu trúc có dữ liệu và các kiểu nội dung kết nối với dữ liệu nguồn, một số tùy chọn của model. Thêm vào đó, một mining structure chứa một danh sách các mining model sử dụng các cột từ mining structure đó.
Một mining model chứa một thuật toán với các tham số liên quan cộng với một danh sách các cột từ mining structure. Mỗi model trong một structure có thể sử dụng một thuật toán khác nhau hay cùng một thuật toán với các tham số khác nhau, các tập con khác nhau của các cột trong mining structure. Đối với mỗi cột trong model ta có thể gán các giá trị khác nhau của tham số của thuật toán để chọn ra model tối u.
Tạo structure bằng Wizard:
- Trong Solution Explorer click chuột phải lên th mục mining structures, chọn New mining structure. Bỏ qua dialog giới thiệu đầu tiên.
- Trong dialog thứ hai, chọn tạo mining structure từ CSDL quan hệ hay khối dữ liệu (cube) hoặc tạo structure từ khối dữ liệu. Click Next.
- Chọn thuật toán KPDL. Click Next. - Chọn Data Source View. Click Next.
- Chọn case table và bảng nested table trong trang Specify table types. Click Next.
Hình 3.5: Chọn case table và nested tables.
Chú ý: Một case là một thực thể cơ bản (basic entity) của thông tin. Nó chứa một tập các thuộc tính. Ví dụ mỗi hàng trong bảng customer là một case. Khi ta phân tích hành vi mua hàng của khách hàng, mỗi case là một khách hàng cùng với một danh sách các sản phẩm mà khách hàng đã mua. Trong tr- ờng hợp này case đợc gọi là nested case (hình 3.6).
Case table là bảng chứa case information liên đến flat part của case. Nested table là bảng chứa các thông tin liên quan đến nested part của case. Một case table thờng là một bảng giao tác, ví dụ nh bảng purchase. Một bảng nested table kết nối với case table thông qua case key, chính là khóa chính trong case table. Mặc dù case key là khóa chính trong case table nhng nested key lại khác hoàn toàn với khóa ngoại. Case key chỉ đơn giản định danh một thực thể và không chứa mẫu nào cả, trong khi đó nested key là một thuộc tính rất quan trọng trong nested part dùng để làm thuộc tính input để dự báo cho một thuộc tính trong flat part, các thuộc tính trong nested part đều có thể dùng để mô tả nested key. Nested key không phải là một thuộc tính định danh; nó chứa thông tin hữu ích vầ các mẫu. Ví dụ ta có thể sử dụng nested key là thuộc tính Product để dự báo tình hình mua hàng theo thuộc tính Gender.
Hình 3.6: Ba nested customer cases
- Trong Specify the Training Data page, chúng ta chỉ định các cột dự định sử dụng và chúng sẽ đợc sử dụng nh thế nào. Mặc định case key đợc chọn làm key của mô hình. Các key đợc chọn trong các nested tables sẽ là các nested key. Chúng ta cũng có thể nhờ đến sự trợ giúp của chơng trình bằng cách bấm vào nút Suggest sau khi đã chọn thuộc tính Predict, khi đó chơng trình sẽ gợi ý các thuộc tính nằm trong cùng bảng và liên quan đến thuộc tính Predict. Nếu đồng ý với sự gợi ý của chơng trình ta chỉ cần click OK trong dialog Suggest Related Columns. Click Next để tới trang tiếp theo.
Tiếp theo chọn kiểu dữ liệu và kiểu nội dung của các thuộc tính
Hình 3.8: Chọn kiểu dữ liệu (data type) và kiểu nội dung (content type)
Nếu khó khăn trong bớc này ta có thể bấm nút Detect để chơng trình tự động chọn content type và data type.
Trong trang Completing the wizard chọn tên của model structure và model mining. Click Finish để kết thúc wizard.
- Sau khi tạo mô hình xong trong tab Mining Model của mô hình Microsoft_Stock.dmm [Design] chúng ta có thể thiết lập các tham số cho thuật toán sử dụng trong mô hình:
Hình 3.10: Thiết lập các tham số cho thuật toán c. Tạo mô hình bằng các câu lệnh truy vấn DMX
* Tổng quan về DMX
DMX bao gồm:
- Các câu lệnh ngôn ngữ định nghĩa dữ liệu (DDL-Data Definition Language),
- Các câu lệnh của ngôn ngữ xử lý dữ liệu (DML-Data manipulation language),
- Các hàm và các toán tử. DDL đợc sử dụng:
- Tạo các mô hình KP(Khai phá) và các cấu trúc KP CREATE MINING STRUCTURE, CREATE MINING MODEL
- Xóa các mô hình, và các cấu trúc tồn tại (existing) - DROP MINING STRUCTURE, DROP MINING MODEL
- Export and import các cấu trúc KP - EXPORT, IMPORT
- Copy dữ liệu từ một mô hình KP sang một mô hình KP khác
SELECT INTO
DML đợc sử dụng:
- Huấn luyện các mô hình- INSERT INTO
- Browse dữ liệu trong các mô hình KP -SELECT FROM
Xét CSDL của một website bán hàng trực tuyến bao gồm hai bảng d- ới đây:
Hình 3.11: CSDL của một website bán hàng
* Tạo mô hình KPDL
Cú pháp tạo mô hình KPDL nh sau:
CREATE MINING MODEL <tên mô hình> (<Các cột thành viên >) USING <tên thuật toán>
Ví dụ: CREATE MINING MODEL MemberCard_Prediction(
CustomerID long key,
Gender text discrete,
Age long continuous,
Profession text discrete,
Income long continuous,
HouseOwner text discrete,
MemberCard text discrete predict ) USING Microsoft_Decision_Trees
Các từ khóa long, text định nghĩa kiểu dữ liệu của cột. Hai từ khóa continuous (liên tục) và discrete (rời rạc) là hai giá trị có thể có cho các cột nội dung. Từ khóa key chỉ định cột làm khóa, predict chỉ định cột kết quả dự báo.
Mô hình trên sử dụng các thuộc tính Gender, Age, Proession, HasChildren và HouseOwner để dự báo loại card thành viên (MemberCard) mà khách hàng sẽ có đợc. Thuật toán đợc sử dụng là Microsoft Decision Trees. Chúng ta có thể gán thông số
Minimum_Support cho thuật toán Microsoft Decision Trees (tức là số trờng hợp bé nhất của mỗi nút lá trong cây quyết định) nh sau:
USING Microsoft_Decision_Tree (Minimum_Support = 50)
Một vài thuật toán nh Microsoft Decision Trees có thể hỗ trợ nhiều hơn một cột dự báo. Ta có thể tạo mô hình dự báo cả hai thuộc tính MemberCard và HouseOwner nh sau:
CREATE MINING MODEL MemberCard_Prediction (
CustomerID long key, Gender text discrete, Age long continuous, Profession text discrete, Income long continuous,
HouseOwner text discrete predict MemberCard text discrete predict ) USING Microsoft_Decision_Trees
Trong mô hình trên, nếu ta chỉ muốn MemberCard chủ đợc sử dụng nh là cột dự báo, không dùng nh là cột nhập để dự báo HouseOwner, ta có thể sử dụng từ khóa Predict_Only:
MemberCard text discrete predict_only
Đôi khi có các thuộc tính phụ thuộc vào các thuộc tính khác. Ví dụ nh trong bảng khách hàng có hai thuộc tính City và State. Thuộc tính State phụ thuộc vào thuộc tính City (Nếu City là Seattle, State phải là Washington). Thông tin này có thể rất hữu ích. Ví dụ, khi có rất nhiều City, một số thuật toán có thể quyết định nhóm các city dựa trên các state của chúng. Trong DMX, từ khóa Related To đợc dùng để chỉ định sự phụ thuộc giữa các thuộc tính. Ví dụ:
City text discrete,
State text discrete related to City
Đối với các cột dữ liệu số nh Age, đôi khi ta cần rời rạc hóa vào trong các bucket. Trong DMX có hàm discretized(discretization method, buckets number). Tham số đầu tiên là phơng pháp đợc sử dụng để chia miền dữ liệu. Tham số thứ hai là số các bucket. Ví dụ ta rời rạc hóa thuộc tính Income vào trong 5 bucket bằng cách sử dụng
Income long discretized (Equal_Areas, 5)
Hay chỉ đơn giản: Income long discretized. Lúc này hàm discretized sử dụng phơng thức rời rạc hóa mặc định để rời rác hóa thuộc tính Income thành 5 giá trị khác nhau.
Ta cũng có thể tạo mô hình dự báo với các bảng lồng nhau.
Ví dụ: Tạo mô hình dự báo MemberCard có thêm bảng Purschase Create mining model MemberCard_Prediction(
CustomerId long key, Gender text discrete, Income long continuous, MemberCard text discrete predict, Purchase table (
ProductName text key, Quantity long continuous )
) Using Microsoft_Decision_Trees
Ví dụ: Tạo mô hình dự báo các mặt hàng mà khách hàng sẽ mua Create mining model MarketBasket(
CustomerId long key, Gender text discrete, Income long continuous, MemberCard text discrete, Purchase table Predict_Only (
ProductName text key,
Quantity long continuous )
) Using Microsoft_Decision_Trees
* Huấn luyện mô hình KTDL
Cú pháp cho câu lệnh huấn luyện mô hình KPDL tơng tự nh câu lệnh Insert đối với bảng quan hệ:
Insert into <mining model name> [ <mapped model columns>] <source data query>
Trong hầu hết các trờng hợp, <Source data query> là một Select query từ một CSDL quan hệ. Trong OLD DB, lệnh OpenRowset hỗ trợ truy vấn dữ liệu từ một datasource thông qua một OLE DB provider. Cú pháp cho lệnh OpenRowset nh sau:
OpenRowset( Provider_Name , Provider_String , DB Query )‘ ’ ‘ ’ ‘ ’
Ví dụ: Insert into MemberCard_Prediction
( CustomerId, Gender, Age, Profession, Income, HouseOwner, MemberCard)
OpenRowset( sqloledb , myserver ; mylogin ; mypwd ,‘ ’ ‘ ’ ’ ’ ’ ’
Select CustomerId, gender, age, profession, income, houseowner,
‘
membercard From customers )’
Nếu mô hình KTDL chứa các bảng lồng nhau, cú pháp huấn luyện mô hình sẽ phức tạp hơn trong phần <source data query>. DMX sử dụng Data Shaping Service đợc định nghĩa trong OLE DB để tạo các rowset phân cấp. Câu lệnh Shape tơng tự nh câu lệnh Join trong SQL. Shape trả về kết quả trong các rowset phân cấp. Mỗi hàng cha (parent row) chứa vài cột biễu diễn các hàng con (child row) nh hình.
Hình 3.12: Kết quả trả về của câu lệnh Shape.
Ví dụ sau là câu lệnh huấn luyện với bảng lồng nhau sử dụng Shape provider
Insert into MarketBasketModel ( CustomerId, Gender, Income, MemberCard,
Purchases(skip, ProductName, Quantity) )
OPENROWSET( MSDataShape , data provider=SQLOLEDB;‘ ’ ‘
Shape
‘
{Select CustomerId, Gender, Income,MemberCard From Customers} Append (
{ Select CustomerId, ProductName, Quantity From Purchases } Relate CustomerId to CustomerId ) as Purchases )’
Chú ý rằng trong SQL Server 2005, mặc định câu lệnh OpenRowset đợc tắt, để sử dụng OpenRowset cho KTDL, ta phải thiết lập thuộc tính AllowAdhocOpenRowsetQueries trong Analysis Services server bằng true.
* Dùng mô hình để dự báo
Dự báo là một tác vụ KPDL quan trọng. Nó đòi hỏi hai thành phần: Một mô hình KPDL đã đợc huấn luyện và một tập các trờng hợp mới. Kết quả của dự báo là một tập bản ghi mới chứa giá trị cho những cột mang tính dự báo và những cột input khác. Toàn bộ tiến trình rất giống với kết nối quan hệ nhng thay vì kết nối hai bảng, sự dự báo nối Data Minning Model (DMM) với bảng input bằng câu lệnh Prediction Join (kết nối dự báo).
Cú pháp của Prediction Join:
SELECT <Biểu thức Select>
FROM <Tên DMM> Prediction Join ON <Điều kiện nối>
[WHERE <biểu thức WHERE>]
Ví dụ: Truy vấn dự báo đợc sử dụng để dự báo loại membership card của khách hàng
Select T.CustomerID, T.LastName, MemberCard_Prediction Prediction.MemberCard
From MemberCard_Prediction Prediction Join OpenRowset( Provider=Microsoft.Jet.OLEDB ,‘ ’
datasource=c:\customer.mdb , select
‘ ’ ‘
* from customers ) as T’
On MemberCard_Prediction.Gender= T.Gender And MemberCard_Prediction.Age = T.Age
And MemberCard_Prediction.Profession = T.Profession And MemberCard_Prediction.Incom = T.Income
And MemberCard_Prediction.HouseOwner=T.HouseOwner Where NewCustomer.age > 30
Ngời dùng có thể duyệt nội dung của mô hình KPDL trong Analysis Manager. Nội dung mô hình KPDL đại diện cho những mẫu mà thuật toán KPDL đã tìm thấy trong tập dữ liệu. Kết quả duyệt đợc thể hiện trên đồ thị.
Cú pháp duyệt DMM bằng câu lệnh select:
SELECT *
FROM MyModel.Content
Chơng IV