1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Nghiên cứu công cụ data mining trong SQL server 2000

26 775 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 26
Dung lượng 591,32 KB

Nội dung

Hầu hết các thuật toán Clustering đều phải đọc tất cả các con trỏ dữ liệu vào bộ nhớ, điều này có thể gây ra các vấn đề nghiêm trọng về khả năng tải của bộ nhớ khi xử lý một tập dữ liệu

Trang 1

MỤC LỤC

1 Giới thiệu 3

2 Các thuật toán Data Mining của Microsoft 3

3 Xây dựng các mô hình Data Mining bằng Analysis Services 2000 6

3.1 Nguồn dữ liệu cho mô hình data mining 6

3.2 Tạo mô hình data mining 7

3.3 Huấn luyện mô hình data mining 8

3.4 Duyệt qua nội dung của mô hình data mining 9

3.5 Dùng mô hình data mining thực hiện dự báo 12

4 Kết luận 15

Phụ lục A: Kết quả thử nghiệm 16

A.1 Kết quả thực thi trên thuật toán cây quyết định 16

A.1.1 Kết quả thực thi Training khi không có sự liên kết giữa các bảng16 A.1.2 Kết quả thực thi Training khi có sự liên kết giữa các bảng 19

A.2 Kết quả thực thi trên thuật toán Clustering (phân lớp) 21

A.2.1 Kết quả thực thi Training khi không có sự liên kết giữa các bảng21 A.2.2 Kết quả thực thi Training khi có sự liên kết giữa các bảng 23

Phụ lục B: Một số thuật ngữ 25

Phụ lục C: Chương trình demo 26

Tài liệu tham khảo: 27

Trang 2

Nghiên cứu công cụ Data Mining trong SQL Server 2000

1 Giới thiệu

Trong môi trường thương mại điện tử ngày nay, lĩnh vực data mining ngày càng thu hút nhiều sự quan tâm Nhờ vào các phương tiện tự động hay bán tự động, data mining khảo sát và phân tích trên một lượng lớn dữ liệu để rút ra những mẫu và qui luật có ý nghĩa Các thông tin này giúp các công ty kinh doanh chẳng hạn như hiểu rõ khách hàng hơn để từ đó có các chiến lược phù hợp hơn nhằm nhằm cải thiện hoạt động tiếp thị, bán hàng và hỗ trợ khách hàng Qua nhiều năm hoạt động, các công ty kinh doanh tích luỹ được các cơ sở dữ liệu (CSDL) rất lớn từ các ứng dụng như Lập kế hoạch sử dụng nguồn tài nguyên cho hoạt động kinh doanh (Enterprise Resource Planning (ERP)), Quản lý khách hàng (Client Relationship Management (CRM)), hay từ các hệ thống điều hành khác Người ta tin rằng có các giá trị chưa được khai thác tiềm ẩn bên trong các dữ liệu này Các kỹ thuật data mining có thể giúp lấy ra những mẫu như thế

Gần đây Microsoft đã đưa ra OLE DB cho giao diện lập trình ứng dụng (API) Data Mining với nhiều data mining provider hàng đầu API này định nghĩa một ngôn ngữ truy vấn data mining dựa trên cú pháp SQL Các mô hình data mining (Data Mining Model) được xem như là một dạng đặc biệt của bảng quan hệ Các tính toán dự báo được xem như là một dạng đặc biệt của phép kết Microsoft SQL Server 2000 Analysis Services cung cấp Microsoft data mining provider dựa trên OLE DB cho chuẩn Data Mining Provider này gồm hai thuật toán data mining: Microsoft Decision Trees và Microsoft Clustering

2 Các thuật toán Data Mining của Microsoft

Hai thuật toán data mining trong SQL Server 2000, Microsoft Decision Trees (MDT) và Microsoft Clustering, là kết quả của nhiều năm nghiên cứu tại Microsoft Research Sau đây là trình bày tóm tắt hai thuật toán này

Thuật toán Microsoft Decision Trees (cây quyết định)

Cây quyết định có lẽ là kỹ thuật phổ biến nhất cho việc lập mô hình dự báo Bảng sau đây là một tập dữ liệu huấn luyện (training data) được dùng để dự báo credit risk

Customer

ID

Debt level Income level Employment type Credit risk

Trang 3

7 Low High Salaried Good Sau đây là một cây quyết định được tạo ra từ tập dữ liệu này:

Trong ví dụ này, thuật toán Decision Tree xác định thuộc tính quan trọng nhất là Debt level, do đó rẽ nhánh đầu tiên được thực hiện dựa trên debt level Node với Debt = High là node lá (cả ba trường hợp đều là bad credit risk) Node với Debt = Low còn lẫn lộn (3 trường hợp good credit risk, 1 trường hợp bad credit risk) Tiếp theo, Employment là thuộc tính quan trọng kế tiếp Tương tự node với Employment = Salaried là node lá

Trên đây chỉ là một ví dụ nhỏ dựa vào dữ liệu tổng hợp, nhưng nó cho thấy cây quyết định có thể dùng các thuộc tính có liên quan để dự báo credit risk Khi phạm vi của vấn đề được mở rộng thì sẽ gây khó khăn cho việc rút ra các luật một cách thủ công Thuật toán có thể chạy trên hàng trăm thuộc tính và hàng triệu record để đưa ra cây quyết định mô tả các luật dự báo credit risk

Có nhiều thuật toán khác nhau với các phương pháp rẽ nhánh khác nhau được dùng để xây dựng cây quyết định Microsoft Decision Tree là cây phân lớp theo xác suất (Probabilistic Classification Tree) Nó rất giống với C4.5, nhưng mặc định dùng Bayesian score làm tiêu chuẫn rẽ nhánh thay vì Entropy

Thuật toán Microsoft Clustering

Clustering nghĩa là tìm các nhóm (hay cluster) trong tập dữ liệu gồm các tập con có các record tương tự nhau Nó khác với mô hình dự báo ở chỗ nó không có thuộc tính đích trong tập dữ liệu Thuật toán clustering quyết định thuộc tính “ẩn” mới này bằng cách khảo sát tập dữ liệu Có nhiều phương pháp phân nhóm dữ liệu Các thuật toán phổ biến như K-Means, các phương pháp khối liên kết nhiều tầng, và lập mô hình pha trộn bằng cách dùng thuật toán Expectation-Maximization (EM) để liên

Trang 4

kết các mô hình pha trộn theo xác suất tới tập dữ liệu Các record của tập dữ liệu có thể thuộc về các cluster khác nhau tuỳ thuộc vào cách thiết lập giới hạn

Xét một CSDL nhân viên, trong đó mỗi nhân viên gồm ba thuộc tính: age, salary, và vested amount Người sử dụng muốn có một bảng về độ tuổi trung bình của các nhân viên có vested amount trong khoảng 100K-200K, 200K-400K, và 400K-1000K và có lương trong khoảng 50K-100K, 100K-200K, 200K-300K Đây là loại dữ liệu ba chiều Các record của dữ liệu n-chiều có thể được xem như là các điểm trong không gian n-chiều Chẳng hạn, các record dạng (age, salary) có thể được xem như các điểm trong không gian 2-chiều, với chiều age và chiều salary Hình 3a và 3b minh hoạ hai cách biểu diễn cho ví dụ này

Việc tìm các cluster trong không gian nhiều chiều (4 chiều hay lớn hơn) thì rất phức tạp đối với con người Nếu chỉ đơn giản biểu diễn dữ liệu bằng các điểm thì sẽ không giúp ích gì nhiều Tuy nhiên, các thuật toán clustering tự động tìm các cluster như thế trong tập dữ liệu Mỗi cluster được thể hiện bởi phân bố của chính nó

Thuật toán Microsoft Clustering có cơ sở là thuật toán Expectation and Maximization (EM) Thuật toán này lặp đi lặp lại giữa hai bước Trong bước đầu tiên, gọi là bước E hay “Expectation”, thành phần cluster của mỗi trường hợp được tính ra Trong bước thứ hai, gọi là bước M hay “Maximization”, các thông số (parameter) của các mô hình được ước lượng lại dựa vào các thành phần cluster này EM tương tự với K-Means, với các bước chính sau đây:

1 Thiết lập các phương tiện khởi tạo

2 Gán các trường hợp cho mỗi phương tiện bằng cách sử dụng một vài độ đo khoảng cách

3 Tính ra các phương tiện mới dựa vào các thành viên của mỗi cluster

4 Thiết lập các biên cho vùng chứa mới dựa vào các phương tiện mới

5 Lặp lại chu kỳ cho đến khi hội tụ

EM khác với K-Means ở nhiều khía cạnh Điểm khác biệt chủ yếu là EM không xác định biên rõ ràng giữa các cluster Một trường hợp được gán cho mỗi cluster với một

Trang 5

xác suất nào đó Sau đây là minh hoạ một vài lần lặp của thuật toán EM cho tập dữ liệu một chiều Giả sử dữ liệu trong mỗi cluster có phân bố Gauss Các phương tiện của mỗi cluster được hoán đổi nhau sau mỗi lần lặp

Hầu hết các thuật toán Clustering đều phải đọc tất cả các con trỏ dữ liệu vào bộ nhớ, điều này có thể gây ra các vấn đề nghiêm trọng về khả năng tải của bộ nhớ khi xử lý một tập dữ liệu lớn Để giải quyết vấn đề này, thuật toán Microsoft Clustering dùng một phạm vi cơ sở, ở đó chọn lựa lưu trữ các phần CSDL quan trọng và tóm tắt các phần khác Tư tưởng chủ đạo là đọc dữ liệu vào các vùng nhớ theo từng khối và dựa vào mô hình data mining đã được cập nhật để gom các trường hợp gần nhau dựa vào phân bố Gauss, vì thế các trường hợp đó được nén lại Thuật toán Microsoft Clustering chỉ cần một lần duyệt qua dữ liệu thô

3 Xây dựng các mô hình Data Mining bằng Analysis Services 2000 3.1 Nguồn dữ liệu cho mô hình data mining

Xét câu hỏi: hãy chỉ ra các khách hàng có nhiều nguy cơ rời bỏ ngân hàng nhất dựa trên thông tin của khách hàng, thông tin giao dịch của họ với ngân hàng

Để trả lời câu hỏi này, các bảng CSDL quan hệ sau đây được dùng đến:

- Bảng Customer: chứa các thông tin về khách hàng của ngân hàng bao gồm: age (tuổi của khách hàng), income (thu nhập), educational level (trình độ học vấn), house value (giá trị nhà), loan (nợ),…

- Bảng Purchases: chứa các thông tin giao dịch của khách hàng bao gồm: checking accounts (tài khoản vãng lai), money market savings (tiền gởi tiết kiệm), …

Trang 6

Mô hình quan hệ cho hai bảng này như sau:

3.2 Tạo mô hình data mining

Khi tạo một mô hình data mining (DMM), bạn phải định nghĩa cấu trúc và các thuộc tính cho mô hình Để định nghiã một DMM mới trong Microsolf OLE DB for Data Mining API, dùng lệnh CREATE DATA MINING MODEL Tương tự như lệnh CREATE TABLE, lệnh tạo mô hình này chỉ định nghĩa cấu trúc và các thuộc tính của nó, chứ hoàn toàn không có dữ liệu Cũng tương tự như thế, lệnh này định nghĩa khoá, cột, thuật toán được dùng và các tham số dùng cho việc huấn luyện DMM sau này Cú pháp định nghĩa mô hình data mining:

CREATE MINING MODEL <tên mô hình> (<định nghĩa các cột>) USING <Dịch vụ>[(<các tham số dịch vụ>)]

Tuy nhiên, do các cột của DMM yêu cầu các thông tin đặc thù, nên có một số mở rộng được đưa vào cú pháp SQL chuẩn Sau đây là một ví dụ áp dụng cho cấu trúc bảng được mô tả ở trên:

CREATE MINING MODEL [Model_MDT_Churn_Prediction]

([Customer Id] LONG KEY, [Income] DOUBLE CONTINUOUS , [Other Income] DOUBLE CONTINUOUS , [Loan] DOUBLE CONTINUOUS ,

[Age] DOUBLE CONTINUOUS , [Region Name] TEXT DISCRETE , [Home Years] DOUBLE CONTINUOUS , [House Value] DOUBLE CONTINUOUS , [Education Level] TEXT DISCRETE , [Home Type] TEXT DISCRETE , [Churn Yes No] TEXT DISCRETE PREDICT) USING Microsoft_Decision_Trees

Trang 7

Các từ khoá LONG, DOUBLE và TEXT định nghĩa kiểu dữ liệu của cột Tuy nhiên có một vài mở rộng so với SQL chuẩn Từ khoá KEY chỉ định cột (các cột) làm khoá Hai từ khoá 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ừ khoá PREDICT chỉ định cột kết quả dự báo

Chú ý: bạn cũng có thể tạo mô hình data mining từ Analysis Manager, khi đó lệnh

CREATE MINING MODEL được phát sinh tự động

3.3 Huấn luyện mô hình data mining

Sau khi tạo mô hình data mining, bước tiếp theo là huấn luyện mô hình Huấn luyện mô hình nghĩa là chạy mô hình trên dữ liệu dùng để huấn luyện (training data) bằng cách dùng một thuật toán đặc thù nào đó Đây là bước tốn nhiều thời gian nhất Thuật toán có thể lặp lại một vài lần trên tập dữ liệu huấn luyện để tìm ra các mẫu ẩn bên trong tập dữ liệu này OLE DB for Data Mining API che giấu các phức tạp của việc huấn luyện mô hình bằng cách cung cấp lệnh INSERT như là lệnh dùng để huấn luyện Mặc dù có một lượng dữ liệu khổng lồ được đưa vào mô hình data mining trong giai đoạn này, nhưng nó không lưu trữ bất kỳ dữ liệu nào, thay vào đó nó lưu trữ các mẫu của chúng Khi mô hình đã được huấn luyện, ứng dụng khách có thể duyệt qua nội dung của mô hình và thực hiện các truy vấn trên tập dữ liệu mới này

Cú pháp của lệnh INSERT:

INSERT [INTO] <tên mô hình>

[ <các cột được ánh xạ của mô hình > ]

<truy vấn dữ liệu nguồn>

Trang 8

Ví dụ: Huấn luyện cho mô hình Model_MDT_Churn_ Prediction được tạo ra ở

trên

INSERT INTO [Model_MDT_Churn_ Prediction]

(SKIP, [Income], [Other Income], [Loan], [Age], [Region Name], [Home Years], [House Value], [Education Level], [Home Type], [Churn Yes No])

OPENROWSET(‘SQLOLEDB’, ’…’, SELECT DISTINCT [CustomerID], [Income], [OtherIncome], [Loan], [Age], [RegionName], [HomeYears], [HouseValue], [EducationLevel], [HomeType], [Churn_Yes_No] FROM Customers)

3.4 Duyệt qua nội dung của mô hình data mining

Khi mô hình đã được huấn luyện, từ Analysis Manager bạn có thể duyệt qua nội dung mô hình dùng tree browser Trong browser này, nội dung hiển thị dạng đồ hoạ, và cho phép lướt qua các phần nội dung khác nhau Nội dung của một DMM là tập các luật, các công thức, các phân lớp, các phân bố, các node, hay bất kỳ thông tin nào khác có nguồn gốc từ một tập dữ liệu đặc biệt bằng cách dùng kỹ thuật data mining

Tuỳ theo kỹ thuật data mining được dùng khi tạo DMM mà loại nội dung có thể khác nhau giữa các mô hình Nội dung DMM của một cây quyết định sẽ khác với nội dung DMM của clustering

Duyệt qua nội dung của mô hình có thể cung cấp các kiến thức quan trọng bên trong dữ liệu Trong nhiều trường hợp, nó cho phép các nhà phân tích dữ liệu hiểu được các mẫu và các qui luật và dự đoán các đặc điểm của dữ liệu mới

Trang 9

Sau đây là mẫu được tìm thấy bởi thuật toán Decision Trees chạy trên tập dữ liệu huấn luyện:

Ta cũng có thể duyệt qua tất cả các trường hợp có thể có của mô hình Xét một mô hình DMM với các cột như sau: Gender (giới tính), Age (tuổi) và HairColor (màu tóc) Sau khi mô hình này được huấn luyện, cột Gender sẽ có các trạng thái (giá trị)

“Male” (nam), “Female” (nữ), “Missing” (không biết) Đối với cột HairColor, DMM nhìn thấy và ghi nhớ các giá trị “Black”, “Gray”, và “Missing” Đối với cột Age, mặc dù DMM thấy tất cả các giá trị liên tục của nó, nhưng không ghi nhớ từng giá trị phân biệt mà chỉ ghi nhớ các giá trị minimum (nhỏ nhất), mean (trung bình), maximum (lớn nhất)

Giả sử mô hình được xây dựng để dự báo cột HairColor từ một tập dữ liệu 100 người, nội dung của DMM có thể như sau:

Trang 10

Câu truy vấn:

SELECT *, PredictProbability(HairColor) FROM HairColorPredictDMM

Có kết quả như sau:

Gender Age HairColor P(HairColor)

Trang 11

Gender Age HairColor P(HairColor)

Câu truy vấn:

SELECT Age, PredictProbability(HairColor) FROM HairColorPredictDMM WHERE Gender = 'Male' and HairColor = 'Black'

Có kết quả như sau:

Gender Age HairColor P(HairColor)

Male 2 Black 667

Male 91 Black 300

Male 45 Black 667

3.5 Dùng mô hình data mining thực hiện dự báo

Sau khi được huấn luyện, mô hình có thể được dùng để thực hiện các dự báo

trên các tập dữ liệu mới

Trong OLE DB for Data Mining API, lệnh dùng để thực hiện dự báo là lệnh

SELECT Lệnh này thực hiện kết một mô hình data mining với một bảng input mới

Phép kết đặc biệt này được gọi là PREDICTION JOIN

Cú pháp tổng quát của lệnh SELECT:

SELECT [FLATTENED] <SELECT-expressions>

FROM <tên mô hình> PREDICTION JOIN <truy vấn dữ liệu nguồn> ON <điều kiện kết>

Trang 12

[WHERE <WHERE-expression>]

Mệnh đề <truy vấn dữ liệu nguồn>: chỉ định tập dữ liệu mới có các thuộc tính được

dự báo bằng cách kết hợp tập này với tri thức trong mô hình DMM

PREDICTION JOIN: các trường hợp thực tế từ <truy vấn dữ liệu nguồn> được kết

hợp với tập các trường hợp có thể có từ mô hình <tên mô hình> thông qua phép toán PREDICTION JOIN Sự kết hợp của các trường hợp trong dữ liệu nguồn với tất cả các trường hợp có thể có thông qua PREDICTION JOIN về mặt ngữ nghĩa khác với phép kết trong CSDL quan hệ chuẩn, vì lý do đơn giản sau đây:

- Các trường hợp trong DMM không thể hiện tất cả các giá trị có thể có của một thuộc tính (cột) có kiểu dạng CONTINUOUS, tuy nhiên một PREDICTION JOIN phải kết hợp một giá trị continuous chính xác của một trường hợp trong dữ liệu nguồn với các giá trị phân bố trong DMM Với ví dụ tập của tất các trường hợp có thể có nêu trên, lệnh sau đây trả về không có record nào bởi vì các trường hợp có thể có trong DMM có cột Age chỉ chứa các giá trị “Minimum”, “Mean”, “Maximum”, và “Missing” ứng với (2, 45, 91, “Missing”):

SELECT * FROM GenderPredictDMM WHERE Gender = 'Male' AND Age = 30

Tuy nhiên, một PREDICTION JOIN sử dụng cây quyết định được mô tả cho mô hình này tìm thấy một phân bố trên HairColor cho phái nam 30 tuổi như sau: Black = 667, Grey = 267, Missing = 067

- Các trường hợp của DMM thể hiện đầy đủ các giá trị có thể có cho một cột được dùng để dự báo, trong khi người thực hiện dự báo thường mong đợi một giá trị đơn “tốt nhất” Xét câu truy vấn sau:

SELECT * FROM GenderPredictDMM WHERE Gender = 'Male' AND Age = 45

Kết quả như sau:

Trang 13

Tổng quát, PREDICTION JOIN sẽ chọn một trường hợp từ tập dữ liệu input, và dựa

vào điều kiện mô tả trong mệnh đề ON để tìm tập các trường hợp tương ứng trong

DMM

Mệnh đề <SELECT-expressions> : là một tập các phát biểu phân cách bởi dấu

phẩy, một phát biểu có thể là một cột đơn giản dùng để tham chiếu, hay chứa các

chức năng dự báo Các cột có thể được tham chiếu từ DMM hay từ truy vấn dữ liệu

nguồn

ON và Điều kiện kết: mỗi dòng trong tập các trường hợp có thể có của DMM là duy

nhất, nên nó có thể được kết với các dòng trong truy vấn nguồn của các trường hợp

thực sự thông qua mệnh đề <điều kiện kết> của từ khoá ON Điều kiện kết sẽ kết hợp

các cột trong DMM với các cột trong truy vấn nguồn Điều kiện kết có một phát biểu

“=” cho các cột được kết, và các phát biểu được nối với nhau qua từ khoá AND trong

trường có nhiều cột kết

Mệnh đề WHERE : giới hạn các trường hợp trả về từ truy vấn dự báo

Ví dụ: Hãy dự báo các khách hàng có nhiều nguy cơ rời bỏ ngân hàng nhất (=80%)

dựa trên thông tin của khách hàng:

SELECT FLATTENED

[T1].[CustomerID], [T1].[Income], T1.[OtherIncome], [T1].[Loan], [T1].[Age], [T1].[RegionName], [T1].[HomeYears], [T1].[HouseValue], [T1].[EducationLevel], [T1].[HomeType], [T1].[Churn_Yes_No])

FROM

[Model_MDT_Churn_Prediction] AS [M1]

PREDICTION JOIN

OPENROWSET('SQLOLEDB', ’…;data source=D:\customer.mdb',

SELECT DISTINCT [CustomerID], [Income], [OtherIncome], [Loan],

[Age], [RegionName], [HomeYears], [HouseValue], [EducationLevel],

[HomeType], [Churn_Yes_No] FROM Customers)

AS [T1]

ON

[M1] [Customer Id]= [T1] [CustomerID]

WHERE PredictProbability([M1] [Churn_Yes_No]) > 0.8

Ngày đăng: 03/01/2016, 19:29

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w