Tải bản đầy đủ (.docx) (75 trang)

Báo cáo data mining trong 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 (2.87 MB, 75 trang )

Đại Học Khoa Học Tự Nhiên
Khoa Toán – Tin Học
oOo
Bộ môn: Trí Tuệ Nhân Tạo
DATA MINING TRONG
SQL SERVER 2008
Giáo viên hướng dẫn: Th.S Phạm Thi Vương
Sinh viên thực hiện: Bùi Ngô Dạ Thảo 0611203
Trần Quang Ánh 0611304
Trần Thượng Khanh 0611082
Thành phố Hồ Chí Minh, tháng 1 – 2010
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Mục lục
2
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Lời mở đầu
Hiện nay trên thế giới, dữ liệu số ngày càng tăng trưởng với tốc độ chóng mặt. Các giao
dịch tài chính, phân tích quảng cáo trực tuyến, thông tin về sở thích của người tiêu dùng,
và các kết quả nghiên cứu khoa học có ý nghĩa to lớn đều hướng đến khối lượng dữ liệu
khổng lồ đó. Song song với sự phát triển của công nghệ, nhu cầu tích hợp công nghệ vào
tất cả các lĩnh vực của đời sống con người cũng ngày càng phát triển mạnh mẽ.
Cùng với sự thay đổi xu hướng với tốc độ như hiện nay, chúng ta không thể có đủ thời gian
cho việc xem xét dữ liệu lịch sử chỉ để xác định điều gì đã xảy ra để đưa ra chiến thuật điều
khiển hiệu quả các yếu tố tác động. Vì vậy, một vấn đề bức thiết đặt ra là phải có một công
cụ để khai khoáng dữ liệu một cách hiệu quả và nhanh chóng. Việc phân tích tự động hay
các thuật toán phức tạp để xác định xu hướng và dự báo các vấn đề trong tương lai đang là
một bài toán mở. SQL Server 2008 đã phát triển bộ công cụ Data Mining hiệu quả và phần
nào giải quyết được một số vấn đề nan giải nói trên.
Nhóm tác giả


3
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

I. Giới thiệu Data Mining
I.1. Lịch sử Khai khoáng dữ liệu
• Khai khoáng dữ liệu ( Data Mining ) là một khái niệm bao hàm các kỹ thuật trong
việc tìm ra các giá trị thông tin tiềm ẩn trong các dữ liệu lớn , nhiều bộ dữ liệu .
Theo đó bản chất của khai khoáng dữ liệu là sử dụng toán học để tìm ra các bản chất
, phân tích đánh giá các bộ dữ liệu , và sử dụng một số kỹ thuật để tìm ra các mẫu có
tính chính quy .
• Trong “Phát hiện tri thức trong cơ sở dữ liệu” của hai tác giả Fayyad, Piatestsky-
Shapiro và Smyth ( 1988 ) đã chỉ ra quá trình tìm kiếm các tri thức có ích từ nhiều
bộ dữ liệu hoặc các bộ dữ liệu lớn . Và khai khoáng dữ liệu nằm trong quá trình này.
Hình : mô tả quá trình Tìm kiếm tri thức trong dữ liệu .
• Và cho đến này khai khoáng dữ liệu vẫn là một vấn đề được nghiên cứu và sử dụng
rất nhiều trong các lĩnh vực : tài chính , kinh tế , dự báo thị trường , khoa học .
I.2. Tổng quan một số phương pháp trong khai khoáng dữ liệu
I.2.1. Cây quyết định (Decision Tree)
Cây quyết định là một mô hình , kỹ thuật máy học dung trong dự báo các thông tin
dựa trên việc tính toán các xác suất có điều kiện . Việc kết hợp giữa các chứng minh toán
học và tính toán nhằm hỗ trợ việc mô tả , tổng quát các dữ liệu cho trước .
Trong lĩnh vực máy học , cây quyết định là một kiểu mô hình dự báo (predictive
model), nghĩa là một ánh xạ từ các quan sát về một sự vật , hiện tượng tới các kết luận về
giá trị mục tiêu của sự vật , hiện tượng. Mỗi một nút trong (internal node) tương ứng với
một biến; đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó.
Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến
được biểu diễn bởi đường đi từ nút gốc tới nút lá đó. Kỹ thuật học máy dùng trong cây
4
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh


quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây
quyết định.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá dữ
liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho các phân
loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại đó. Một cây
quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập con dựa theo một
kiểm tra giá trị thuộc tính . Quá trình này được lặp lại một cách đệ qui cho mỗi tập con dẫn
xuất. Quá trình đệ qui hoàn thành khi không thể tiếp tục thực hiện việc chia tách được nữa,
hay khi một phân loại đơn có thể áp dụng cho từng phần tử của tập con dẫn xuất. Một bộ
phân loại rừng ngẫu nhiên (random forest) sử dụng một số cây quyết định để có thể cải
thiện tỉ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán các
xác suất có điều kiện.
Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và
tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước.
Dữ liệu được cho dưới dạng các bản ghi có dạng:
(x, y) = (x
1
, x
2
, x
3
, x
k
, y)
Biến phụ thuộc (dependant variable) y là biến mà chúng ta cần tìm hiểu, phân loại
hay tổng quát hóa. x
1
, x
2

, x
3
là các biến sẽ giúp ta thực hiện công việc đó
Các loại cây quyết định :
• Cây phân loại : nếu y là một biến phân loại như : nắng mưa , nam hoặc nữ .
• Cây quyết định : dùng để ước lượng các hàm giá trị thực thay vì sử dụng phương
pháp phân loại .
Ví dụ cụ thể : Khanh là quản lý của một câu lạc bộ đánh golf nổi tiếng. Anh ta đang
có rắc rối chuyện các thành viên đến hay không đến. Có ngày ai cũng muốn chơi golf
nhưng số nhân viên câu lạc bộ lại không đủ phục vụ. Có hôm, không hiểu vì lý do gì mà
chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên.
Mục tiêu của Khanh là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa
theo thông tin dự báo thời tiết để đoán xem khi nào người ta sẽ đến chơi golf. Để thực hiện
điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách
giải thích nào cho việc đó hay không.
5
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Vậy là trong hai tuần, anh ta thu thập thông tin về:
Trời (outlook) (nắng (sunny), nhiều mây (clouded) hoặc mưa (raining)). Nhiệt độ
(temperature) bằng độ F. Độ ẩm (humidity). Có gió mạnh (windy) hay không.
Và tất nhiên là số người đến chơi golf vào hôm đó. Khanh thu được một bộ dữ liệu
gồm 14 dòng và 5 cột.
Dữ liệu chơi Golf
Sau đó để giải quyết bài toán , Khanh đã tạo mô hình cây quyết định như sau:
6
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Cây quyết định là một mô hình dữ liệu mã hóa phân bố của nhãn lớp (cũng là y)
theo các thuộc tính dùng để dự đoán. Đây là một đồ thị có hướng phi chu trình dưới dạng

một cây. Nút gốc (nút nằm trên đỉnh) đại diện cho toàn bộ dữ liệu. Thuật toán cây phân loại
phát hiện ra rằng cách tốt nhất để giải thích biến phụ thuộc, play (chơi), là sử dụng biến
Outlook. Phân loại theo các giá trị của biến Outlook, ta có ba nhóm khác nhau: Nhóm
người chơi golf khi trời nắng, nhóm chơi khi trời nhiều mây, và nhóm chơi khi trời mưa.
Kết luận thứ nhất: nếu trời nhiều mây, người ta luôn luôn chơi golf. Và có một số
người ham mê đến mức chơi golf cả khi trời mưa.
Tiếp theo, ta lại chia nhóm trời nắng thành hai nhóm con. Ta thấy rằng khách hàng
không muốn chơi golf nếu độ ẩm lên quá 70%.
Cuối cùng, ta chia nhóm trời mưa thành hai và thấy rằng khách hàng sẽ không chơi
golf nếu trời nhiều gió.
Và đây là lời giải ngắn gọn cho bài toán mô tả bởi cây phân loại. Khanh cho phần
lớn nhân viên nghỉ vào những ngày trời nắng và ẩm, hoặc những ngày mưa gió. Vì hầu như
sẽ chẳng có ai chơi golf trong những ngày đó. Vào những hôm khác, khi nhiều người sẽ
đến chơi golf, anh ta có thể thuê thêm nhân viên thời vụ để phụ giúp công việc.
Kết luận là cây quyết định giúp ta biến một biểu diễn dữ liệu phức tạp thành một
cấu trúc đơn giản hơn rất nhiều.
I.2.2. Các phương pháp phân lớp và hồi quy
Mục đích của phương pháp phân lớp là nhằm dự đoán những nhãn lớp cho các bộ
dữ liệu. Phân lớp (classification) là quá trình nhóm một tập các đối tượng vật lý hoặc trừu
tượng thành các nhóm hay các đối tượng tương tự nhau. Một lớp (class) là một tập các đối
tượng dữ liệu trong đó các đối tượng trong cùng một lớp có sự tương tự hoặc khác nhau so
với các đối tượng thuộc lớp khác.
Việc phân lớp không bao giờ sử dụng độc lập mà nó thường được sử dụng kèm với
các phương pháp khác. Khi một cách phân lớp được đưa ra cũng phải có một phương pháp
áp dụng để đưa ra ý nghĩa của lớp đó.
Ngày nay, có nhiều vấn đề nghiên cứu về phân lớp trong các lĩnh vực khác nhau như
khai phá dữ liệu, thống kê, học máy, công nghệ dữ liệu không gian, sinh học. Do kích
thước của các CSDL tăng lên rất nhanh, phân lớp đang là vấn đề được quan tâm trong
nghiên cứu về khai phá dữ liệu.
7

Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Trong khai phá dữ liệu, các vấn đề nghiên cứu trong phân lớp chủ yếu tập trung vào
tìm kiếm các phương pháp phân lớp hiệu quả và tin cậy trong CSDL lớn. Các yêu cầu đặt
ra đối với các phương pháp phân lớp đó là độ hiệu quả (effectiveness) và độ tuyến tính
(scalability) của thuật toán, khả năng làm việc với các kiểu dữ liệu và các lớp có hình dạng
phức tạp, các kĩ thuật phân lớp nhiều chiều và các phương pháp phân lớp gồm dữ liệu số
và dữ liệu xác thực trong CSDL lớn
Có rất nhiều thuật toán phân lớp khác nhau, việc lựa chọn một thuật toán thích hợp
phụ thuộc vào kiểu dữ liệu cần thực hiện cũng như là mục đích của ứng dụng. Nếu phân
lớp được xem như là công cụ mô tả hoặc thăm dò, khi đó phải thực hiện nhiều thuật toán
phân lớp khác nhau trên cùng một phương pháp phù hợp nhất. Nói chung các thuật toán
phân lớp được chia thành các nhóm sau: phương pháp phân hoạch, phương pháp phân cấp,
phương pháp dựa vào mật độ, phương pháp chia lưới, phương pháp dựa vào mô hình,
(thường áp dụng cho CSDL không gian)
I.3. Bài toán thực tế của khai khoáng dữ liệu
Khi khoa học công nghệ phát triển thì việc xử lý dữ liệu ngày càng được con người
chú ý . Và việc tìm kiếm tri thức từ trong dữ liệu đã được sử dụng rất rộng rãi . Khai
khoáng dữ liệu là một quá trình trong tìm kiếm tri thức trong dữ liệu , vì thế nó cũng được
ứng dụng rất nhiều trong nhiều bài toán , lĩnh vực cụ thể :
• Thông tin thương mại : phân tích thị trường , phân tích đầu tư , bảo hiểm , chứng
khoán ,…
• Thông Tin sản xuất : điều khiển và lên kế hoạch sản xuất , quản trị mạng , hệ thống
sản xuất , phân tích các kết quả thực nghiệm …
• Thông tin khoa học : cơ sở dữ liệu sinh học , thiên văn học , cơ sở dữ liệu đất …
• Và một số ngành khác : trong xử lý ảnh , phim …
Một số bài toán thực tế:
I.3.1. Công ty Etoys
Etoys là một ví dụ về khai khoáng mỏ dữ liệu trực tuyến. www.etoys.com bán các
đồ chơi trực tuyến. Trên web site này, khách tham quan có thể chọn ''toy search'' (tìm đồ

chơi). Bằng cách sử dụng một pull down menu, khách tham quan có thể chọn các tiêu chí
cơ bản như tuổi của đứa bé, mức giá, và loại đồ chơi. Site khảo hàng trực tuyến Etoys.com
sau đó cung cấp cho khách hàng một danh sách các đồ chơi đáp ứng các tiêu chí này, tiết
kiệm cho họ thời gian, và sự hối hả khi phải đến cửa hàng đồ chơi để mua quà cho con.
8
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Hình : site mô tả web bán hàng của Etoys
I.3.2. Tập đoàn Unilever
Tập đoàn Unilever chuyên cung cấp các mặt hang về thực phẩm tiêu dùng và nhiều
sản phẩm dùng cho chăm sóc cá nhân và gia đình . Sản phẩm của công ty đã được nhiều
khách hàng trên thế giới ưa chuộng và công nhận . Để làm được điều ấy , công ty đã thu
nhập thông tin khách hàng , từ địa chỉ cá nhân , giới tính , độ tuổi , thói quen tiêu dùng ,
các sản phẩm hay dùng . Sau đó Unilever sẽ chuyển về cho 1 công ty thứ 3 để làm việc
phân tích , khám phá dữ liệu Từ đó đưa ra các định hướng phân tích kinh doanh .
I.3.3. Bài toán của công ty Wireless
Công ty Verizon Wireless là một công ty chuyên về cung cấp các thiết bị dịch vụ
không dây lớn ở Mỹ . Dựa vào số liệu từ website công ty :
thì năm 2007 công ty đạt số lượng 65 triệu khách hang . Thu nhập hàng năm là 43.5 tỷ
USD .
Công ty khi so sánh dữ liệu thu nhập thì phát hiện ra tỷ lệ khách hang từ bỏ sản
phẩm của công ty là 2% / tháng tức là hơn 1 300 000 khách hang / tháng . Vì vậy khi tính
toán chi phí thay thế là hàng trăm triệu USD / năm .
Để khắc phục tình trạng này , công ty có 1 hướng giải quyết bình thường nhất đó là :
ưu đãi , chào mời khuyến mãi cho tất cã các loại khách hang . Nhưng chi phí cho việc này
lại rất tốn kém và khả năng thành công chưa cao .
Bằng việc điều tra , tìm hiểu các số liệu bán hang cũ . Công ty đã đưa ra một giải
pháp khác : xây dựng mô hình dự đoán các khách hàng sắp rời bỏ công ty . Từ đó công ty
9
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh


sẽ tung ra các sản phẩm , mặt hang khuyến mãi để giữ khách hang lại . Tìm hiểu thong tin
của khách hang loại này để tiếp tục tung ra các kế hoạch phát triển mới .
Kết quả : công ty đã giảm được tỷ lệ khách hàng rời bỏ < 1.5% / tháng
I.3.4. Phân tích dữ liệu mua hàng tiêu dùng của khách hàng
Trong thời buổi kinh tế thị trường như hiện nay, mọi thứ đều trở nên rất đắt đỏ, mọi
người đều phải tự điều chỉnh chi tiêu sao cho phù hợp với nhu cấu của mình. Có lẽ như thế
mà người ta có xu hướng đi siêu thị nhiều hơn là đi chợ. Vào đó, người ta có thể mua nhiều
thứ cùng lúc, không phải trả giá mà lại tiết kiệm được thời gian, chi phí vận chuyển, hay
những chi phí tương tự thế…
Vì nó tiện lợi, nó hữu ích nên người ta thích nó.Họ có thể mua mặt hàng này, mặt
hàng khác hay nhiều mặt hàng khác nữa. Nhu cầu của mỗi người là khác nhau, vậy làm sao
mà một nhà quản lý có thể nắm bắt được nhu cầu đó của mỗi khách hàng, để có thể biết
được là mình cần nhập về loại hàng gì và nhập với số lượng bao nhiêu? Đó là vấn đề đặt ra
buộc doanh nghiệp phải giải quyết???
Dựa vào các luật trong Data Mining chúng ta có thể phân tích được nhu cầu đó của
khách hàng .Có thể nói là nếu như một khách hàng mua một hay nhiều mặt hàng thì kéo
theo là họ sẽ mua những mặt hàng nào khác đi kèm .Từ đó ta có thể thống kê được nhu cầu
mua hàng của khách và cũng chính là nhu cầu hàng mà ta nhập về.
Điều này thật cần thiết cho mỗi doanh nghiệp, nếu muốn phát triển nhanh và thu hút
được khách hàng .Họ phải nắm bắt được nhu cầu và thị hiếu của khách hàng và Data
Mining là công cụ hỗ trợ trong vấn đề đó ,nó giúp tìm ra các luật và hỗ trợ xem là quyết
định nhập hàng về của họ là có đúng không?
Qua việc sử dụng các thuật giải trong Khai pha dữ liệu và bộ dữ liệu Walmart 1997 .
Nhóm tác giải đã đưa ra nhận định sau :
• Nếu một khách hàng mua trái cây tươi nhiều thì họ sẽ mua phô mai nhiều
• Nếu một khách hàng mua Soup nhiều thì họ sẽ mua phô mai rất nhiều .
II. Khai khoáng dữ liệu với SQL SERVER 2008
2.1. Sơ lược về SQL SERVER
II.1.1. Lịch sử SQL SERVER

SQL SERVER phiên bản đầu tiên được ra đời vào năm 1989 , với phiên bản SQL
SERVER 1.0 do sự hợp tác giữa Microsoft , Sybase, Ashon-Tate . Sau đó được nâng cấp
lên SQL SERVER 3.0 trên nền Unix . Sau đó MS SQL SERVER 4.2 được công bố từ năm
10
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

1992 . Tiếp theo đó , phiên bản 4.21 trên nền WINDOW NT 4.21 được phát hành cùng thời
điểm với phiên bản NT 3.1 . Phiên bản 6.0 là phiên bản được thiết kế cho NT và không phụ
thuộc vào Sybase .
Vào thời gian NT đươc phát hành , MS và Sybase tách biệt theo hai con đường
quảng cáo và tiếp thị cho từng sản phẩm của mình . Microsoft dàn xếp độc quyền cho tất cả
sản SQL SERVER phẩm của mình bằng việc viết trên hệ điều hành WINDOWS . Sybase
thì thay đổi tên sản phẩm của mình để tránh nhầm lẫn với MS .
Trong suốt quá trình tách biệt , cũng có lúc vài phiên bản của MS không viết độc lập
với Sybase . Điển hình là phiên bản 7.0 được viết lại trên nền kế thừa của Sybase . Phiên
bản tiếp theo SQL SERVER 2000 là một sự thành công lớn khi được viết trên nền kiến trúc
IA-64 , đây cũng là phiên bản đầu tiên có hỗ trợ phân tích dữ liệu .
Trong tám năm kể từ khi phiên bản trước 2000 được phát hành , sự tiến bộ đã được
hình thành . Với phiên bản SQL SERVER 2005 , cac bộ công cụ IDE dành cho khách
hàng , các hỗ trợ thêm vào đã được đóng gói trong phiên bản này .Nó bao gồm các bộ :
công cụ ETL (SQL Server Integration Services hoặc SSIS), Reporting Server, OLAP và
Analysis Services), Service Broker và Notification Services.
SQL Server 2008 là phiên bản thứ ba của SQL Server có hỗ trợ các công cụ kỹ thuật
khai khoáng dũ liệu . Từ khi xuất hiện lần đầu trong phiên bản 2000 ., MS đã xây dựng
công cụ Analysis Service để hỗ trợ người dùng trong việc phân tích dữ liệu .
Phiên bản Năm phát hành Tên phát hành Tên mã
1.0
(OS/2)
1989 SQL Server 1.0 -
4.21

(WinNT)
1993 SQL Server 4.21 -
6.0 1995 SQL Server 6.0 SQL95
6.5 1996 SQL Server 6.5 Hydra
7.0 1998 SQL Server 7.0 Sphinx
11
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

- 1999
SQL Server 7.0
OLAP Tools
Plato
8.0 2000 SQL Server 2000 Shiloh
8.0 2003
SQL Server 2000
64-bit Edition
Liberty
9.0 2005 SQL Server 2005 Yukon
10.0 2008 SQL Server 2008 Katmai
Công dụng của SQL SERVER :
SQL SERVER là một hệ quản trị cơ sở dữ liệu được phát triển bởi Microsoft . Nó sử dụng
ngôn ngữ truy vấn duy nhất là T-SQL và ANSI .
SQL SERVER còn hỗ trợ nhiều công nghệ trong việc phân tích và quản lý dữ liệu :
• SQL SERVER ENGINE : bộ công cụ hõ trợ cơ chế quản lý dữ liệu của SQL
SERVER .
• SQL SERVER ANALYSIS SERVICE : bộ công cụ hỗ trợ việc phân tích các dữ
liệu , số liệu
• SQL SERVER REPORTING SERVICES : bộ công cụ hỗ trợ việc thiết lập các báo
cáo cơ sở dữ liệu
• SQL SERVER INTEGRATION : công cụ hỗ trợ việc tích hợp cơ sở dữ liệu với các

thành phần khác .
II.1.2. Điểm phát triển của SQL SERVER 2008
SQL SERVER 2008 là phiên bản hiện tại của dòng sản phẩm SQL SERVER . SQL
Server 2008 cũng bao gồm hỗ trợ cho các kiểu cấu trúc và bán cấu trúc dữ liệu, bao gồm
các phương tiện truyền thông kỹ thuật số định dạng cho hình ảnh, âm thanh, video đa
phương tiện và các dữ liệu. Trong các phiên bản hiện tại, dữ liệu đa phương tiện như vậy
12
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

có thể được lưu trữ như BLOBs (đối tượng nhị phân lớn) . SQL Server 2008 cũng hỗ trợ
lưu trữ các kiểu dữ liệu XML, email, thời gian / lịch, tập tin, tài liệu, không gian, v. v cũng
như thực hiện tìm kiếm, truy vấn, phân tích, chia sẻ, và đồng bộ trên tất cả các kiểu dữ liệu
Chức năng Tìm kiếm Văn Bản Đầy Đủ ( Full-Text Search ) cũng được tích hợp với
hệ thống cơ sở dữ liệu , điều này giúp đơn giản hóa và cải thiện các hiệu suất . Dữ liệu
không gian cũng sẽ được lưu trữ ở 2 dạng : Kiểu dữ liệu GEOMETRY đại diện cho dữ liệu
không gian địa lý được sử dụng từ các kiểu hình cầu, phối hợp hệ thống với một máy
bay , và kiểu dữ liệu GEOGRAPHY dùng một hình elip để định nghĩa .
Ngoài ra SQL SERVER 2008 còn nâng cấp bộ Business Intelligent Dev Studio ,
nhằm giúp người dùng trong việc ứng dụng các công cụ Khai khoáng dũ liệu . BI là một
IDE của Microsoft được phát triển cho việc phân tích , xử lý dữ liệu và giải pháp trí tuệ
kinh doanh , được dùng trên nền SQL SERVER : Analysis Services, Reporting
Services và Integration Services. Nó dựa trên môi trường phát triển MS Visual Studio ,
nhưng làm theo yêu cầu với SQL Server mở rộng và các loại dự án, các công cụ, điều
khiển và các dự án cho các báo cáo, ETL , OLAP và các cấu trúc khai khoáng dữ liệu.
SQL SERVER 2008 với công cụ Khai khoáng dữ liệu có thể tích hợp với bộ
OFFICE 2007 trong môi trường Excel và Visio . .
Quy trình làm việc của Khai khoáng dữ liệu trong SQL SERVER 2008:
II.2. Các quy trình làm việc của Data Mining
Quá trình minh họa trong biểu đồ là hình tròn , các bước thực hiện không nhất thiết
phải dẫn trực tiếp đến bước tiếp theo . Do quá trình khai phá mô hình là một quá trình năng

13
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

động và lặp lại nên chúng ta cần tìm nhiều dữ liệu hơn . Ngoài ra trong quá trình làm việc ,
bạn sẽ gặp trường hợp dữ liệu hoặc mô hình này không xác định được vấn đề mà bạn đã
đưa ra , do đó trong quá trình làm việc bạn phải xác định lại vấn đề nhiều lần hoặc cần thiết
thì cập nhật lại mô hình . Mỗi bước trong tiến trình có thể cần phải được lặp đi lặp lại nhiều
lần để tạo ra một mô hình dữ liệu tốt.
SQL Server 2008 cung cấp một môi trường tích hợp để tạo và làm việc với các dữ
liệu khai các mô hình, được gọi là Business Intelligence Development Studio. Điều này
bảo đảm môi trường bao gồm thuật toán khai khoáng dữ liệu và các công cụ mà làm cho nó
dễ dàng để xây dựng một giải pháp toàn diện cho một loạt các dự án. Để biết thêm thông
tin về cách sử dụng BI Studio Development, xem thêm Business Intelligence Development
Studio
• B ư ớc 1: Xác định vấn đề :
Đây là bước đầu tiên trong khai phá dữ liệu , là bước tiền đề để bắt đầu việc khai
phá . Ví dụ : nêu bật sơ đồ , xác định các vấn đề trong kinh doanh , tìm hiểu các cách thức
để cung câp câu trả lời cho vấn đề này .
Ở bước này chúng ta cần xác định , phân tích các vấn đề kinh doanh , phạm vi của
vấn đề , xác định số liệu của các mô hình được đánh giá và xác định các mục tiêu cụ thể ,
rõ ràng cho các dự án khai khoáng dữ liệu . Những nhiệm vụ này phụ thuộc vào các câu
hỏi sau đây :
o Bạn đang làm gì ? Các mối quan hệ nào cần tìm thấy ?
o Có những vấn đề mà bạn đang cố gắng giải quyết có phản ánh và quy trình
quản lý của doanh nghiệp.
o Có thuộc tính dataset nào sẽ liên quan đến dự án .
o Làm thế nào để phân phối được dữ liệu? Hiển thị một cách chính xác dữ liệu.
Để trả lời các câu hỏi này , bạn cần phân tích và nghiên cứu dữ liệu có sẵn , điều tra
doanh nghiệp. Nếu dữ liệu không hỗ trợ đầy đủ cho dự án, có thể bạn phải định nghĩa lại
dự án . Bạn cũng cần phải xem xét các cách thức mà các kết quả của các mô hình có thể

được kết hợp trong chỉ số hiệu suất chủ chốt (KPI) được sử dụng để đo lường sự tiến bộ
kinh doanh.
• B ư ớc 2 : Chuẩn bị dữ liệu
14
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Bước thứ hai trong quá trình khai dữ liệu, như được nêu bật trong các sơ đồ, là để
cung cố và làm sạch các dữ liệu đã được xác định trong quy trình.
Dữ liệu khi chúng ta mới đưa về , có thể chưa được xử lý, rải rác, chính xác , hoặc
thiếu mục. Ví dụ dữ liệu có thể cho thấy rằng một khách hàng mua một sản phẩm trước khi
sản phẩm đã được cung cấp trên thị trường, hoặc các cửa hàng mà khách hàng thường
xuyên tại một cửa hàng nằm cách rất xa nhà của mình.
Chuẩn bị dữ liệu bao gồm các bước :
o Làm sạch dữ liệu : Vì dữ liệu đưa vào chưa chắc đã hoàn thiện , mà có thể
tồn tại các dữ liệu rác làm ảnh hưởng xấu đến quá trình khai phá và phân tích
dữ liệu . Quy trình này sẽ loại bỏ các nhiễu hoặc khử các dữ liệu không thích
hợp.
o Tích hợp dữ liệu : Trong dữ liệu đưa về , có thể còn tồn tại những lỗi khi tích
hợp với hệ thống , vì vậy ta cần tích hợp dữ liệu với hệ thống . Qúa trình này
sẽ gom các kiểu dữ liệu lại thành một cấu trúc duy nhất để lưu trữ và xử lý
o Chọn dữ liệu : ở bước này, những dữ liệu liên quan trực tiếp đến nhiệm vụ sẽ
được thu thập từ các nguồn dữ liệu ban đầu
o Chuyển đổi dữ liệu : trong bước này, dữ liệu sẽ được chuyển đổi về dạng phù
hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp
Như vậy sau 4 quá trình trên , ta đã hoàn thiện quá trình chuẩn bị dữ liệu và sang
bước 3 .
• Bước 3 : Khảo sát dữ liệu
Nếu dữ liệu chấp nhận được thì chuyển qua bước 4 . Nếu dữ liệu thì quay lại bước 1
xem xét lại bài toán .
• Bước 4 : Xây dựng mô hình

Bước thứ tư là quy trình bắt đầu xây dựng một mô hình khai khoáng dữ liệu, như
nêu bật trong các sơ đồ, là để xây dựng các mô hình hay khai khoáng các mô hình dữ liệu
đã xử lý. Chúng ta sẽ dùng thuật toán , kiến thức mà bạn đã đạt được trong việc khai
khoáng dữ liệu bước để giúp xác định và tạo ra các mô hình.
Bạn xác định các dữ liệu mà bạn muốn khai phha1 bằng cách tạo ra một cơ cấu khai
khoáng dữ liệu. Cấu trúc Mining sẽ định nghĩa nguồn dữ liệu, nhưng không chứa bất kỳ dữ
liệu nào cho đến khi bạn xử lý nó. Khi bạn tiến hành quá trình khai khoáng các cấu trúc,
15
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Analysis Services sẽ được tạo ra và dữ liệu này có thể được sử dụng cho việc phân tích.
Những dữ liệu này có thể được sử dụng bởi bất kỳ mô hình nào. Để hiểu rõ hơn thông tin
về cách thức khai khoáng cấu trúc có liên quan đến việc khai khoáng các mô hình, bạn có
thể tìm hiểu Logical Architecture (Analysis Services - Data Mining).
Trước khi mô hình được phân tích xử lý, mô hình dữ liệu khai khoáng chỉ là một kho hàng
đã xác định các cột được sử dụng cho đầu vào, các thuộc tính mà bạn đang có dự đoán, và
các tham số cho biết rằng các thuật toán như thế nào để xử lý dữ liệu. Chế biến một mô
hình còn được gọi là huấn luyện (training) . Training đề cập đến quá trình áp dụng một
thuật toán , giải thuật cụ thể cho dữ liệu trong cơ cấu để có thể trích xuất các mẫu. Các mẫu
mà bạn tìm thấy trong quá trình huấn luyện phụ thuộc vào sự lựa chọn các dữ liệu training,
các thuật toán mà bạn đã chọn, và làm thế nào để bạn có cấu hình các thuật toán. SQL
Server 2008 chứa rất nhiều các thuật toán khác nhau, mỗi thuật toán phù hợp với một loại
công việc, và mỗi tạo ra một loại mô hình. Để có một danh sách các thuật toán cung cấp
trong SQL Server 2008, xem thêm về Data Mining Algorithms (Data Analysic
Services - DataMining).
Bạn cũng có thể sử dụng các tham số để điều chỉnh mỗi thuật toán, và bạn có thể áp
dụng cho việc huấn luyện các bộ lọc dữ liệu để sử dụng chỉ cần một nhóm các dữ liệu, tạo
ra các kết quả khác nhau. Sau khi bạn chuyển dữ liệu thông qua các mô hình, các đối tượng
khai khoáng mô hình chứa tóm tắt và các mẫu có thể được truy vấn hoặc sử dụng cho các
dự đoán.

Để xác định một mô hình mới , ta sử dụng Data Mining Wizard in BI Development
Studio . Ta có thể tìm hiểu thông qua hai công cụ Data Mining Wizard , và Data Mining
Extensions .
Quan trọng khi thay đổi dữ liệu là phải cập nhật tất cả các cấu trúc Mining và mẫu
Mining . Khi bạn cập nhật các cấu trúc mining và làm lại việc xử lý chúng , Analysis
Services sẽ truy xuất dữ liệu từ nguồn , bao gồm cả hai loại dữ liệu cũ và mới . Nếu dữ liệu
nguồn được cập nhật thì dữ liệu trong cấu trúc cũng sẽ được cập nhật . Nếu bạn có được
các mô hình dựa trên cấu trúc, bạn có thể chọn để cập nhật những mô hình được dựa trên
các cơ cấu, điều này có nghĩa là chúng được retrained trên các dữ liệu mới, hoặc bạn có thể
để lại các mô hình như vậy . Bạn có thể tìm hiểu thêm Processing Data Mining Object .
• Bước 5 : Xác định tính hợp lý của mô hình
16
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Đây là bước thứ 5 trong quy trình, nó được biễu diễn trên sơ đồ . Trước khi triển
khai một mô hình thành một môi trường sản xuất, bạn sẽ muốn thử nghiệm các mô hình
như thế nào thực hiện. Ngoài ra, khi bạn xây dựng một mô hình, bạn thường tạo ra nhiều
mô hình với các cấu hình khác nhau và tất cả các mô hình thử nghiệm để xem có mang lại
kết quả tốt nhất cho vấn đề của bạn và dữ liệu của bạn.
Analysis Services cung cấp các công cụ giúp cho chung ta có thể tiếp cận và kiểm tra dữ
liệu để bạn có thể đánh giá chính xác hiệu suất của tất cả các mô hình trên cùng một dữ
liệu. Bạn sử dụng công cụ Training dataset để xây dựng các mô hình, và kiểm tra dataset
để kiểm tra tính chính xác của các mô hình dự đoán bằng cách tạo ra các truy vấn. Trong
SQL Server 2008 và Analysis Services, phân vùng này có thể được thực hiện tự động,
trong khi xây dựng các mô hình khai khoáng. Để biết thêm thông tin, xem thêm Validating
Data Mining Models (Analysis Services - Data Mining).
Bạn có thể khám phá những xu hướng và các mẫu khám phá rằng các thuật toán
bằng cách sử dụng xem dữ liệu trong Khai khoáng trong thiết kế phát triển BI Studio. Để
biết thêm thông tin, xem xem một mô hình dữ liệu Khai khoáng. Bạn cũng có thể thử
nghiệm như thế nào tạo ra các mô hình dự báo của các công cụ bằng cách sử dụng trong

các thiết kế như thang máy và các biểu đồ phân loại ma trận. Để xác minh xem là mô hình
cụ thể cho dữ liệu của bạn, hoặc có thể được sử dụng để làm cho inferences trên dân số nói
chung, bạn có thể sử dụng các kỹ thuật thống kê gọi là cross-xác nhận để tự động tạo ra
subsets các dữ liệu và thử nghiệm các mô hình đối với mỗi nhóm. Để biết thêm thông tin,
xem Validating Data Mining Models (Analysis Services - Data Mining).
• Bước 6 :Triển khai và cập nhật mô hình
Bước cuối cùng trong quá trình khai các dữ liệu, như được nêu bật trong các
sơ đồ, là để triển khai các mô hình có hiệu suất tốt nhất cho một môi trường sản xuất.
Sau khi khai các mô hình sản xuất tồn tại trong một môi trường, bạn có thể thực
hiện nhiều nhiệm vụ, tùy thuộc vào nhu cầu của bạn. Sau đây là một số trong những công
việc bạn có thể thực hiện:
o Xây dựng các mô hình dự báo . Bạn có thể sử dụng các ngôn ngữ truy vấn để
thực hiện vấn đề này. Bạn có thể dùng Query Builder để tạo các câu truy vấn.
Tạo các truy vấn nội dung, để lấy các số liệu thống kê, quy tắc, hoặc các
công thức từ các mô hình.
17
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

o Nhúng dữ liệu khai khoáng trực tiếp vào một ứng dụng . Có thể sử dụng
AMO , XML để thực thi các việc này .
o Sử dụng Integration Services để tạo một phần mềm trong đó mô hình khai
khoáng dữ liệu được sử dụng để tích hợp vào nhiều bảng.
III. Các khái niệm về data mining trong Sql Server 2008
III.1. Thuộc tính:
Phần cơ bản nhất của vấn đề Data mining là thuộc tính (attribute), một mẫu thông
tin đơn về một ví dụ. Các ví dụ này bao gồm tuổi, giới tính và tình trạng hôn nhân của
khách hàng; thể loại, khối lượng hoặc màu sắc của sản phẩm; hoặc mã bưu điện, thu nhập
hàng năm. Các thuộc tính có thể làm người dùng mua một sản phẩm cụ thể hay thậm chí là
số lượng sản phẩm mà khách hàng muốn mua.
Khi chọn các thuộc tính cho data mining, bạn nên lựa chọn một cách cẩn thận các

thuộc tính liên quan đến vấn đề cần giải quyết và cung cấp thông tin có thể được sử dụng
trong thuật toán Data mining. Có rất nhiều thuộc tính không phù hợp để khai khoáng dữ
liệu, hay ít nhất là về mặt hình thức chúng không tồn tại trong dữ liệu. Ví dụ, địa chỉ của
một khách hàng là một thuộc tính, nhưng nó không tương ứng với các thuộc tính khác nếu
chưa được biến đổi. Có thể biến đổi bằng cách sử dụng các công cụ “không gian địa lý”
(geospatial) để xác định khoảng cách tới một mốc nào đó.
Ta có thể thu được các thuộc tính không đếm được từ các thuộc tính đang có trong
dữ liệu. Các thuộc tính như giá giao dịch cực đại mà người mua đã từng mua, thời gian một
sản phẩm tồn tại trên thị trường, hoặc tỷ lệ giữa kích thước lưu trữ với số lượng khách hàng
trong một ngày,…có thể hữu ích cho mô hình khai khoáng dữ liệu của bạn. Việc suy nghĩ
một cách sáng tạo về các khía cạnh của vấn đề và dữ liệu đang có thể cung cấp cho bạn
một lượng thông tin phong phú để khai khoáng.
Có hai loại thuộc tính. Thuộc tính thể loại (hoặc rời rạc) có một tập hợp số của giá
trị (chẳng hạn giới tính nam, nữ; Mã bưu chính). Thuộc tính liên tục được định nghĩa là trị
số. Chúng có thể được điều khiển bởi các toán tử toán học chuẩn và sử dụng một số loại
phân phối (chẳng hạn phân phối Gauss). Các loại thuộc tính thêm là dựa trên thuộc tính rời
rạc hoặc liên tục chính. Ví dụ, loại thuộc tính có thứ tự hoặc tuần hoàn là rời rạc nhưng có
thứ tự (ví dụ như kích cỡ của áo sơ mi). Các thuộc tính được rời rạc hóa là các trường hợp
18
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

đặc biệt của loại rời rạc. Trong trường hợp này, một thuộc tính liên tục được chia ra thành
các miền rời rạc để phân tích.
Khi chọn các thuộc tính để sử dụng trong kết quả Data mining, hãy nhớ rằng nếu
bạn có càng nhiều thuộc tính thì càng có nhiều mẫu cần được suy ra từ các thuộc tính đó.
Nếu bạn chỉ có các thuộc tính giới tính, tình trạng hôn nhân và sở hữu nhà, bạn có thể biểu
diễn tất cả các biến đổi có thể trong một tập dữ liệu rất nhỏ. Tuy nhiên, khi bạn thêm các
thuộc tính, số kết nối sẽ tăng lên, cần có nhiều dữ liệu để tìm ra các mẫu dữ liệu tốt. Khai
khoáng dữ liệu sẽ thực hiện những việc đó.
III.2. Trạng thái

Tương ứng với từng thuộc tính rời rạc là các giá trị và trạng thái của nó. Thuộc tính
tình trạng hôn nhân có thể có các trạng thái là đã kết hôn hoặc độc thân. Cũng có thể có các
thuộc tính thêm vào, chẳng hạn tình trạng “đã li dị”, “đã chia tay”, “góa” hoặc các liên hệ
khác. Chẳng hạn đối với các thuộc tính, điều quan trọng là phải giới hạn được tình trạng
của thuộc tính có liên quan.
Thuật toán Data mining sẽ xem xét từng trạng thái theo nhiều hướng như nhau và sẽ
không hiểu bất kỳ quan hệ kéo theo nào giữa chúng. Ví dụ, một thuật toán sẽ không hiểu
khách hàng nào “đã li dị”, khách hàng nào “góa” nếu thực tế là “độc thân”. Tương tự, nó
cũng sẽ không hiểu tình trạng “đã chia tay” thì vẫn có tình trạng “đã kết hôn”.
Ta giữ lại các khái niệm quan trọng, và đơn giản hóa các khái niệm không quan
trọng trên phạm vi lớn nhất có thể. Ví dụ, nếu bạn đang tiến hành khai khoáng dữ liệu cho
một vấn đề kinh tế với các khách hàng trên toàn nước Mỹ, nhưng tập trung vào một số
vùng, bạn có thể muốn giới hạn giá trị của thuộc tính “Mã bưu điện”. Sau đó, bạn có thể sử
dụng một giá trị khác thay thế cho “Mã bưu điện”. Hầu hết các thuật toán có nhiều tham số
để giới hạn các trạng thái cho mọi thuộc tính cụ thể.
Trong SQL Server Data Mining, tất cả các thuộc tính đều được hiểu ngầm là ở trạng
thái “Missing”. Trạng thái này cho biết thuộc tính không thể xuất hiện trong bất kỳ dòng
dữ liệu nào. Tương tự như vậy, có thể có thuộc tính với trạng thái là “Existing”, điều đó có
nghĩa rằng sự hiện diện của thuộc tính chỉ là thông tin có sẵn, chẳng hạn như sự tồn tại của
một sản phẩm trong một giỏ hàng mua sắm. Trạng thái “Missing” cũng thường xuyên được
sử dụng khi giai đoạn dự đoán gặp phải một giá trị chưa được nhận ra. Ví dụ, nếu các thuật
toán nhận được yêu cầu
19
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

dự báo thông tin về một ai đó với tình trạng hôn nhân là “Chưa bao giờ kết hôn” và
chỉ có nhìn thấy các trạng thái được mô tả trước đó, SQL Server sẽ tự động
thay thế giá trị đó với trạng thái “Missing”.
Ngoài ra, mặc dù các thuộc tính liên tục không có trạng thái, mà chỉ có các giá trị
liên tục, chúng vẫn đang được coi một cách tiềm ẩn trạng thái “Missing”. Điều này cho

phép các thuật toán hoạt động được trên dữ liệu có chứa một số giá trị NULL.
III.3. Case
“Case” là khái niệm quan trọng nhất để hiểu được DMX (Data Mining Extensions
to SQL). Nếu bạn hiểu rõ Case, bạn sẽ hiểu được vấn đề mà bạn đang yêu cầu. Nếu bạn
không hiểu được Case của bạn, bạn sẽ không bao giờ có được kết quả mong đợi hoặc dự
đoán trước.
Một Case DMX là một ví dụ đơn lẻ mà bạn cung cấp cho thuật toán khai khoáng dữ
liệu. Nó bao gồm một bộ các thuộc tính với các giá trị tương ứng. Mặc dù điều này nghe có
vẻ đơn giản, nhưng việc hiểu nhầm Case lại là nguyên nhân phổ biến nhất dẫn đến sự thất
bại trong việc thực hiện khai khoáng dữ liệu.
Một Case đại diện cho thực thể mà bạn đang khai khoáng – là điều bạn đang cần
hỏi. Trong tình huống đơn giản nhất (và trong thực tế, hầu hết các tình huống), một
Case được đại diện bởi một hàng trong bảng, các cột trong bảng đại diện cho các
thuộc tính. Trong thực tế, đại đa số các vấn đề khai khoáng dữ liệu đều có dạng thức này
nếu không có lý do nào khác ngoài khả năng của các công cụ khai khoáng dữ liệu trước đó
hạn chế người dùng đặt ra câu hỏi theo dạng thức đó. Ví dụ, nếu câu hỏi của bạn đề cập
đến các yếu tố của một khách hàng có tác động rủi ro tín dụng, các Case sẽ chính là các
khách hàng và sẽ chứa tất cả các thông tin mà bạn biết hoặc nhập vào về khách hàng đó.
Ngay cả trong các tình huống đơn giản, ta cũng rất dễ hiểu sai vấn đề các Case nên
được đại diện như thế nào để đặt một câu hỏi. Ví dụ, bạn muốn hiểu những yếu tố ảnh
hưởng đến tỷ lệ tội phạm trong thành phố. Đối với trường hợp này, Case có thể là thành
phố bởi vì bạn đang quan tâm đến các thuộc tính về thành phố có tác động đến tội phạm.
Tuy nhiên, hãy xem xét một tình huống khi mà bạn muốn kiểm tra xem chính thành phố đó
chiếm tỷ lệ tội phạm ra sao so với tổng thể. Trong trường hợp này, thành phố sẽ
là một thuộc tính bởi vì nó sẽ trở thành một trong những biến độc lập sẽ được sử dụng
20
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

trong phân tích. Một Case trong bài này sẽ là một phép đo trong đó có chứa tên thành phố,
tỷ lệ tội phạm, và các thuộc tính khác.

Chú ý: Một cách để xác định một Case là suy nghĩ về những gì là nặc danh về phân
tích của bạn. Nếu bạn đang phân tích các yếu tố về khách hàng, thì khách hàng có khả năng
là Case vì các khách hàng cá nhân không quan trọng trong kết quả, chỉ có vấn đề là làm thế
nào để so sánh các thuộc tính của khách hàng đó với các thuộc tính của khách hàng khác.
Một kịch bản phức tạp liên quan đến một tình huống mà bạn muốn phân tích về mối
quan hệ giữa các thuộc tính có thể có hoặc không có thể tồn tại trong một Case, và số
lượng các thuộc tính trong một Case không được biết trước thời hạn. Một ví dụ cho vấn đề
này là phân tích giỏ thị trường, trong đó bạn sẽ khám phá các sản phẩm được buôn bán và
dự đoán việc bán được các sản phẩm nào. Tại đây bạn có một bảng giao dịch với một cột
cho ID giao dịch, một cột đại diện cho chỉ mục sản phẩm, và có khả năng các cột khác là
số lượng, số lượng bán ( như thể hiện trong Bảng 3-1). Trong trường hợp này, các hàng của
bảng không đại diện cho các trường hợp và các cột không đại diện cho các thuộc tính.
Trong một bảng giao dịch, tất cả các hàng thuộc cùng một giao dịch (xác định bởi
ID giao dịch) bao gồm các Case. Các thuộc tính được xác định bởi các mục lãi suất trong
một hàng giao dịch. Trong ví dụ hiển thị trong bảng 3-1, các giá trị của cột sản phẩm
“Product” tạo ra các thuộc tính có thể có trong Case. Các thuộc tính có thể được mô tả từ
bảng này bao gồm số lượng của sữa, sữa đã được bán, số lượng của bánh mì, bánh mì đã
được vào bán, Một loại thuộc tính đặc biệt cũng có thể được dùng chỉ đơn giản là để mô
tả sự tồn tại của các thuộc tính, chẳng hạn như “sữa xuất hiện trong Case này” (“Milk
appeared in this case”) hoặc “bánh mì xuất hiện trong Case này” (“Bread appeared in this
case”). Khi một giao dịch hoặc bảng giống như giao dịch xuất hiện trong một Case, nó
được gọi là một bảng lồng nhau (gọi là Nested Table). Tương tự như vậy, bất kỳ trường
21
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

hợp nào có chứa một bảng lồng nhau (Nested Table) thường được gọi như là một Case lồng
nhau (Nested case).
DMX cho phép các Case phức tạp tùy ý. Một Case có thể chứa các thuộc tính đại
diện bởi các cột trong một hàng (gọi là thuộc tính Case-level) và nhiều bảng giao dịch
(hoặc bảng lồng “nested table”) có chứa các thuộc tính lồng nhau. Hình 3-2 cho thấy một

tập hợp các case với cả thuộc tính Case-level và thuộc tính lồng nhau (Nested). Sự linh
hoạt này trong mô hình cung cấp khả năng không cần điều kiện ràng buộc giữa tất cả các
thuộc tính liên quan trong phân tích của bạn, trong khi hầu hết các cơ chế thương mại và
phi thương mại được giới hạn độ phức tạp bởi các ràng buộc bên ngoài (chẳng hạn như số
lượng các cột cho phép trong một bảng cơ sở dữ liệu).
III.4. Khoá (Key)
DMX xem hai loại cột khác nhau là khóa (Key). Các cột này có rất nhiều nội dung
và ý nghĩa khác nhau. Đầu tiên là khóa chính (Case Key) giúp xác định các thực thể đại
diện bởi Case. Trong nhiều triển khai, các khóa chính của một bảng dữ liệu nguồn có thể
được sử dụng như một khóa Case. Thông thường, nếu không có các bảng lồng nhau, một
khoá Case có thể đơn giản chỉ là chỉ số hàng hoặc bất kỳ nhãn tùy ý khác.
Một loại khóa khác là khóa Nested. Trong khi khóa Case đại diện cho phần nặc
danh của Case, thì khóa Nested cho biết thực thể được đặt tên của hàng Nested. Ví dụ,
trong hình 3-3, khóa của bảng Nested (bảng có tên là Purchases) là tên sản phẩm, cho biết
cột “Số lượng” (“Quantity”) và cột “OnSale” chỉ đến mục có tên trong cột đó. Vì thế, bạn
có thể lấy được các thuộc tính Quantity of milk và Milk was OnSale. Số lượng các thuộc
tính của sữa Sữa là OnSale. Nếu bạn sử dụng nhầm lẫn cột Quantity làm khóa Nested, các
thuộc tính của bạn sẽ là vô nghĩa, chẳng hạn như sữa của 2 (Milk of 2) và OnSale of 2.
22
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh


Hình 3-3
Chú ý:
Một sai lầm phổ biến là sử dụng một khóa ngoại làm khóa Nested. Điều này xảy ra
chủ yếu là do các quy ước đặt tên – nhiều người tin rằng bởi vì nó được gọi là một khoá
nên có ý nghĩa quan trọng trong quan hệ. Tuy nhiên, khóa Nested chỉ là một khóa trong
trường hợp bảng Nested là cho một thực thể đơn. Khóa ngoại liên quan thường là giá trị
tương tự như khóa Case. Do vậy, đối với trường hợp trước đây được hiển thị trong hình 3-
2, việc sử dụng khóa ngoại như khóa Nested. Trong trường hợp này, cột CustID của bảng

Purchases, sẽ cho kết quả là các thuộc tính như “Sữa của 1'' (‘‘Milk of 1’’),''Số lượng của 1”
(“Quantity of 1”), và “Số lượng đã bán của 1” (“OnSale of 1”). Ngoài ra, bởi vì khóa ngoại
là như nhau cho tất cả các hàng trong giao dịch, kết quả là khóa trùng lặp trong bảng
Nested. Mặc dù điều này sẽ không gây ra lỗi với SQL Server Data Mining, nhưng các hành
vi là chưa được xác định. Hình 3-3 cho thấy lược đồ quan hệ cho các Case được mô tả
trong hình 3-2.
III.5. Input Và Output
Một thuộc tính trong DMX có thể là một đầu vào, đầu ra một hoặc cả hai. Trên giao
diện, khái niệm này xuất hiện đơn giản, nhưng trên thực tế, nó rất dễ nhầm lẫn. Nói chung,
các thuật toán khai khoáng dữ liệu sử dụng dữ liệu đầu vào để tìm kết quả đầu ra. Tuy
nhiên, mỗi thuật toán đều có cách giải thích riêng, mỗi thuật toán sẽ được giải thích trong
các chương sau trong cuốn sách này. DMX là có liên quan, đầu vào và đầu ra đều được
cung cấp cho thuật toán trong suốt quá trình đào tạo. Tại thời điểm dự đoán, các yếu tố đầu
vào được cung cấp cho thuật toán, và trả về kết quả đầu ra.
Trong trường hợp có thuộc tính vừa là đầu vào lẫn đầu ra, theo quy ước chấp nhận
bởi các thuật toán của Microsoft, thuộc tính đầu ra không bao giờ được sử dụng để dự đoán
23
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

chính nó. Vì vậy, các thuật toán thực hiện các bước để đảm bảo tách đúng thông tin. Điều
này phụ thuộc vào thuật toán, nhưng nó có thể liên quan đến số lượng Network được tạo ra
trong một mạng Nơron, các cụm được tính toán như thế nào, Khả năng có nhiều kết quả
đầu ra trong một mô hình đơn là một đổi mới trong DMX cho phép việc tạo ra nhiều tình
huống phức tạp và thú vị hơn nữa.
Việc lựa chọn và định nghĩa của các đầu vào và đầu ra phù hợp rất quan trọng để có
một giải pháp khai khoáng dữ liệu thành công.
III.6. Các đối tượng trong DMX
III.6.1.Mining Structure
Cấu trúc khai khoáng mô tả các vấn đề. Nó biểu diễn các cột của dữ liệu sẵn có cho
vấn đề khai khoáng dữ liệu của bạn cũng như thông tin về các cột đó, và nó có thể chứa

một bộ nhớ cache của các dữ liệu nguồn được sử dụng cho việc huấn luyện và thử nghiệm
các mô hình của bạn. Tùy thuộc vào cách mà cấu trúc được tạo ra, nó cũng có thể “mù” đối
nguồn dữ liệu của bạn để cấu trúc có thể được xử lý lại mà bạn không cần phải cung cấp
các thông tin dữ liệu nguồn lại lần nữa. Ngoài ra, một cấu trúc khai khoáng có chứa tất cả
các mô hình được sử dụng để phân tích các dữ liệu nguồn của cấu trúc.
Một cấu trúc khai khoáng được định nghĩa là một danh sách các cột, với các loại dữ
liệu của chúng và thông tin mô tả cách thức chúng được xử lý, cho biết chúng là rời rạc
hay liên tục. Các cột trong một cấu trúc khai khoáng không đại diện cho các thuộc tính;
chúng chỉ đơn giản là các cột của dữ liệu sẽ có sẵn khi bạn tạo ra các mô hình.
Thông thường, cấu trúc khai khoáng dữ liệu có chứa nhiều cột hơn sẽ được sử dụng
trong bất kỳ mô hình nào. Ví dụ, bạn có thể tạo ra nhiều mô hình khác nhau với các thuật
toán khác nhau để giải quyết một vấn đề khai khoáng dữ liệu cụ thể. Bởi vì các thuật toán
có các những khả năng khác nhau và dữ liệu yêu cầu khác nhau. Ví dụ, thuật toán hồi quy
tuyến tính (Microsoft Linear Regression) chỉ chấp nhận dữ liệu liên tục, trong khi các thuật
toán Bayes (Microsoft Naive Bayes) lại chỉ chấp nhận dữ liệu rời rạc. Trong trường hợp
bạn cần cả hai thuật toán để khai khoáng cùng một nguồn dữ liệu và dữ liệu không tương
thích với một trong các thuật toán đó thì bạn phải thêm vào các cột cả trường hợp liên tục
và rời rạc trong cấu trúc. Trường hợp cột rời rạc sẽ được chia thành các bucket rời rạc. Mỗi
cột này sẽ bị ràng buộc vào cùng một cột trong suốt quá trình xử lý.
24
Data Mining trong SQL SERVER 2008 BND Thảo, TQ Ánh, TT Khanh

Tương tự như vậy, bởi vì một cấu trúc khai khoáng chứa siêu tập hợp các cột mà các
mô hình có thể sử dụng để tạo ra các thuộc tính, nó cũng chứa siêu tập hợp các dòng mà
mô hình có thể sử dụng để tạo ra các Case. Một cấu trúc khai khoáng dữ liệu có thể được
xây dựng để tự động phân chia dữ liệu của bạn thành tập huấn luyện và tập thử nghiệm, và
chỉ có tập huấn luyện mới được thiết lập sẵn cho các thuật toán khai khoáng dữ liệu máy
học.
Khi một cấu trúc khai khoáng được xử lý, nó chứa một bộ nhớ cache được nén,
hoặc

sao chép của các dữ liệu nguồn. Bộ nhớ cache này được sử dụng để huấn luyện bất kỳ mô
hình nào được được bổ sung sau đó vào cơ cấu. Bộ nhớ cache có thể được tìm kiếm để trả
về dữ liệu hoặc các trạng thái khác biệt tồn tại trong các cột của cấu trúc. Bộ nhớ cache chỉ
được duy trì như là một tiện ích, và có thể được giảm xuống bất kỳ lúc nào. Tuy nhiên, nếu
các mô hình được bổ sung hoặc thay đổi, bạn sẽ phải tiền xử lý cấu trúc để ổn định các mô
hình.
III.6.2.Mô hình khai khoáng (mining model)
Trong khi một cấu trúc khai khoáng dữ liệu là một “container” và mô tả, thì mô hình
khai khoáng lại là đối tượng biến đổi các dòng dữ liệu thành các Case và thực hiện máy
học cách sử dụng một thuật toán khai khoáng dữ liệu cụ thể. Một mô hình khai khoáng
được mô tả như là một tập hợp con của các cột từ cấu trúc, cách các cột được sử dụng như
là thuộc tính (có nghĩa là cho dù chúng là đầu vào, đầu ra hay cả hai), thuật toán và các
thông số thuật toán sẽ được sử dụng để thực hiện học máy trên cấu trúc dữ liệu. Hơn nữa,
một mô hình khai khoáng dữ liệu được mô tả chỉ để khai khoáng một tập hợp các dữ liệu
trong cấu trúc. Cấu trúc dữ liệu có thể được lọc (dựa trên các cột cấu trúc) để khai khoáng
dữ liệu thích hợp cho một vấn đề cụ thể.
Ví dụ, nếu bạn nhận thấy rằng các khách hàng ở bang Washington và các khách
hàng ở nhiều nơi khác nhau một cách đáng kể, bạn có thể tạo ra một mô hình với một bộ
lọc để loại trừ các khách hàng khác mà không cần phải tạo ra cấu trúc khác. Cũng có thể để
lọc các nội dung của một bảng Nested từ cấu trúc để tinh chỉnh các câu hỏi của bạn. Ví dụ,
bạn chỉ có thể biết các sản phẩm của một thể loại cụ thể, hoặc chỉ là giao dịch trong một
gian đoạn cụ thể.
25

×