Tải bản đầy đủ (.doc) (60 trang)

Đồ án tốt nghiệp đại học các giải thuật khai phá dữ liệu trên SQL server 2005 và ứng dụng

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 (1.06 MB, 60 trang )

MC LC
LI NểI U
Sự phát triển nhanh chóng của các ứng dụng công nghệ thông tin
(CNTT) và Internet vào nhiều lĩnh vực đời sống xã hội: quản lý kinh tế,
khoa học kỹ thuật đã tạo ra nhiều cơ sở dữ liệu (CSDL) khổng lồ. Ví dụ,
CSDL của siêu thị Walmart (Mỹ) chứa hơn 20 triệu giao tác; CSDL nhân
khẩu của TPHCM với hơn 5 triệu nhân khẩu.
Sự phong phú của dữ liệu, cùng với việc thiếu vắng một công cụ phân
tích dữ liệu mạnh đã đợc miêu tả nh là một hoàn cảnh giàu dữ liệu nhng
nghèo thông tin. Hậu quả là, các quyết định quan trọng thờng đợc đa ra
không dựa trên dữ liệu giàu thông tin đợc lu trữ trong cơ sở dữ liệu mà dựa
trên cảm tính cả nhà đa ra quyết định, đơn giản là vì ngời đa ra quyết định
không có công cụ để triết ra tri thức có giá trị đợc nhúng trong lợng lớn dữ
liệu. Theo đánh giá của IBM, các phơng pháp khai phá thông tin truyền
thống chỉ thu đợc khoảng 80% thông tin từ CSDL, phần còn lại bao gồm
các thông tin mang tính khái quát, thông tin có tính qui luật vẫn còn tiềm ẩn
trong CSDL. Lợng thông tin này tuy nhỏ nhng là những thông tin cốt lõi và
cần thiết cho quá trình ra quyết định.
Từ đó, SQL Server 2005 đã ra đời với dịch vụ phân tích dữ liệu
Analysis Service tích hợp sẵn các kỹ thuật khai phá dữ liệu (KPDL) đợc cập
nhật và năng cấp từ phiên bản SQL Server 2000. Giúp cho việc KPDL trở
- 1 -
nên dễ dàng và hiệu quả hơn, đó là nền tảng để xây dựng các ứng dụng th-
ơng mại thông minh.
Để chúng ta hiểu rõ hơn về vấn đề này, tôi sẽ trình bày chi tiết trong
nội dung đề tài của mình:
Tìm hiểu các giải thuật khai phá dữ liệu trên SQL Server 2005 và
ứng dụng.
Do đây là lĩnh vực mới nên còn nhiều hạn chế về tài liệu, kiến thức nên
không tránh khỏi những thiếu sót. Rất mong đợc sự đóng góp ý kiến của các
thầy cô giáo và các bạn.


Và tôi xin chân thành cảm ơn thầy giáo TS. đã giúp đỡ tôi hoàn thành
nội dung này.
- 2 -
Chơng I
Giới thiệu
1. Khai phá dữ liệu
Khai phá dữ liệu (Data Mining) là tiến trình khám phá các tri thức
tiềm ẩn trong các cơ sở dữ liệu. Cụ thể hơn đó là tiến trình trích lọc, sản
sinh những tri thức hoặc những mẫu tiềm ẩn, cha biết nhng hữu ích từ các
cơ sở dữ liệu lớn.
Data mining là quá trình tìm kiếm các mẫu mới, những thông tin
tiềm ẩn mang tính dự đoán trong các khối dữ liệu lớn. Những công cụ data
mining có thể phát hiện những xu hớng trong tơng lai, các tri thức mà data
mining mang lại cho các doanh nghiệp có thể ra các quyết định kịp thời và
trả lời những câu hỏi trong lĩnh vực kinh doanh mà trớc đây tốn nhiều thời
gian để xử lý. Với u điểm trên, Data mining đã chứng tỏ đợc tính hữu dụng
của nó trong môi trờng kinh doanh đầy tính cạnh tranh ngày nay và đợc ứng
dụng rộng rãi trong các lĩnh vực thơng mại, tài chính, điều trị y học, giáo
dục, viễn thông v.v.
KPDL là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành
các tri thức mang tính khái quát, tính qui luật hỗ trự tích cực cho các tiến
trình ra quyết định.
Nguồn dữ liệu phục vụ cho KPDL có thể là các CSDL lớn hay các kho
dữ liệu có hay không có cấu trúc. Nói nh vậy không có nghĩa là KPDL không
thể thực hiện ở các CSDL nhỏ, KPDL chỉ thực sự phát huy tác dụng trên các
CSDL lớn, nơi mà khả năng diễn dịch cũng nh các kỹ thuật truyền thống
không thể thực hiện nổi hoặc nếu thực hiện đợc thì hiệu quả không cao.
Nhìn chung, các tác vụ KPDL có thể đợc phân thành hai loại: miêu tả
và dự báo. Các tác vụ khai phá miêu tả thì mô tả các đặc tính chung của dữ
liệu trong CSDL, các tác vụ khai phá dự báo thực hiện việc suy luận trên dữ

liệu hiện thời để đa ra các dự báo.
2. Các bài toán thông dụng trong khai phá dữ liệu
Trong KPDL, các bài toán có thể phân thành bốn loại chính.
Bài toán thông dụng nhất trong KPDL là Phân lớp (Classification).
Với một tập các dữ liệu huấn luyện cho trớc và sự huấn luyện của con ng-
- 3 -
ời, các giải thuật phân loại sẽ học ra bộ phân loại (classifier) dùng để phân
các dữ liệu mới vào một trong những lớp (còn gọi là loại) đã đợc xác
định trớc. Nhận dạng cũng là một bài toán thuộc kiểu Phân loại.
Với mô hình học tơng tự nh bài toán Phân loại, lớp bài toán Dự
đoán (Prediction) sẽ học ra các bộ dự đoán. Khi có dữ liệu mới đến, bộ dự
đoán sẽ dựa trên thông tin đang có để đa ra một giá trị số học cho hàm cần
dự đoán. Bài toán tiêu biểu trong nhóm này là dự đoán giá sản phẩm để
lập kế hoạch trong kinh doanh.
Các giải thuật Tìm luật liên kết (Association Rule) tìm kiếm các
mối liên kết giữa các phần tử dữ liệu, ví dụ nh nhóm các món hàng th-
ờng đợc mua kèm với nhau trong siêu thị.
Các kỹ thuật Phân cụm (Clustering) sẽ nhóm các đối tợng dữ
liệu có tính chất giống nhau vào cùng một nhóm. Có nhiều cách tiếp cận
với những mục tiêu khác nhau trong phân loại.
3. ứ ng dụng của khai phá dữ liệu
KPDL đợc ứng dụng rộng rãi trong nhiều lĩnh vực nh:
A. Ngân hàng
- Xây dựng ứng dụng dự báo rủi ro tín dụng.
- Tìm kiếm tri thức, qui luật của thị trờng chứng khoán và đầu t bất
động sản.
- Phát hiện dùng thẻ tín dụng giả trên mạng và là công cụ hữu ích cho
dịch vụ quản lý rủi ro cho thơng mại điện tử.
B. Thơng mại điện tử:
- Xây dựng công cụ tìm hiểu, định hớng thúc đẩy, giao tiếp với khách

hàng.
- Phân tích việc mua sắm trên mạng và cho biết thông tin tiếp thị phù
hợp với loại khách hàng trong một phân khu thị trờng nhất định.
C. Nhân sự
- Giúp nhà tuyển dụng chọn ứng viên thích hợp nhất cho nhu cầu của
công ty.
4. Những thách thức trong khai phá dữ liệu
KPDL phải làm việc với khối dữ liệu lớn và nhiều nguồn dữ liệu khác
nhau (CSDL, Internet, các loại thiết bị thu thập tín hiệu, các loại thiết bị
nhận dạng, các loại thiết bị lu trữ ) nên vấn đề tốc độ xử lý là vấn đề cần
quan tâm trớc nhất. Có hai hớng để giải quyết vấn đề này là nâng cao năng
- 4 -
lực của phần cứng và cải tiến phần mềm, trong đó việc nghiên cứu đề xuất
các thuật toán hiệu quả có khả năng làm việc trên khối dữ liệu lớn và có độ
phức tạp tính toán thấp là một hớng nghiên cứu đầy tiềm năng. Từ nhu cầu
thực tế trên, gần đây đã xuất hiện nhiều ngành khoa học công nghệ hỗ trợ
KPDL, nh máy tính toán song song, máy tính lợng tử, công nghệ nano, phát
triển thuật toán Và đặc biệt là các kỹ thuật phân tích với các thuật toán
tiên tiến tích hợp sẵn trên dịch vụ phân tích dữ liệu (Analysis Services)
trong SQL Server 2005.
5. Các b ớc khai phá dữ liệu
Một tập dữ liệu, bằng cách nào đó mà ta có , nhằm khai thác dữ liệu
một cách hiệu quả phục vụ cho công việc. Ta tiến hành theo 6 bớc sau:
1. Định nghĩa vấn đề
2. Chuẩn bị dữ liệu
3. Khám phá dữ liệu
4. Xây dựng mô hình
5. Khai thác và đánh giá mô hình
6. Triển khai mô hình và nâng cấp mô hình
Hình 1.1: Các

bớc thực hiện một tác vụ KPDL

- 5 -
Chơng II
Các giải thuật khai phá dữ liệu trên SQL Server 2005
Microsoft SQL Server 2005 Analysis Service (MSSAS) hỗ trợ thêm cho
chức năng khai thác thông tin (Business Intelligent), khả năng mở rộng gia
tăng, tính sẵn có và bảo mật cho các giải pháp Business Intelligent trong khi
làm cho chúng dễ tạo, dễ triển khai và dễ quản lý.
Microsoft khi phát triển SQL Server 2005 AS, họ đã hoàn thiện các thuật
toán thờng sử dụng trong KPDL một cách hoàn chỉnh nhất so với SQL Server
2000 AS , bao gồm : MS(Microsoft) Naive Bayes, MS Decision Tree , MS
Clustering, MS time series, MS Sequence Clustering, MS Neural Network.
Trong phạm vi của đề tài tôi xin trình bày 3 thuật toán: MS Naive
Bayes, MS Decsion Tree và thuật toán mới MS Time Series.
1. Thuật toán Microsoft Naive Bayes
a. Giới thiệu
Thuật toán MS Naive Bayes là một thuật toán phân loại đợc
Microsoft SQL Server 2005 cung cấp để sử dụng trong mô hình KPDL.
Khi mô hình KPDL sử dụng thuật toán này, chúng ta có thể xác định
một số thuộc tính đầu vào giúp việc phân loại các trạng thái của thuộc tính
dự đoán tốt nhất, và giả sử rằng các thuộc tính độc lập với nhau. Do giả
thiết này nên thuật toán có tên là Naive Bayes.
Thuật toán MS Naive Bayes xây dựng mô hình khai phá nhanh hơn
các thuật toán khác. Thuật toán này chỉ hỗ trợ các thuộc tính rời rạc
(discrete, ví dụ: Gới tính), nếu tạo một mô hình Naive Bayes với thuộc tính
liên tục (continuous) sẽ sinh ra lỗi.
b. Nguyên tắc cơ bản của giải thuật
Thuật toán tính xác suất có điều kiện các trạng thái của mỗi cột đầu
vào với mỗi trạng thái của cột dự báo.

Định nghĩa về xác suất có điều kiện nh sau:
Xác suất của biến cố A với điều kiện biến cố B xảy ra đợc ký hiệu
P(A/B) và
P(A/B)=
)(
)(
BP
ABP
- 6 -
Ví dụ : Trong chiến lợc quảng cáo về mẫu xe đạp mới của phòng
Marketing thuộc công ty Adventure Works Cycle, họ quyết định dùng cách
phát tờ rơi. Để giảm chi phí, họ muốn chỉ gửi đến những khách hàng quan
tâm đến mặt hàng này.
Công ty đã lu thông tin về những đặc điểm của khách hàng mua sản
phẩm của công ty trong một vài năm trớc đây (cơ sở dữ liệu đính kèm bộ
cài SQL Server 2005). Họ muốn sử dụng dữ liệu này để thấy các đặc điểm
nh tuổi hay vùng có thể giúp họ dự đoán sự hởng ứng của khách hàng với
chiến dịch quảng cáo, bằng cách xem xét những ngời đã từng mua hay
không mua xe đạp tại công ty chủ yếu là thuộc độ tuổi nào, khoảng cách từ
nhà đến nơi làm việc bao nhiêu xa Đặc biệt, họ muốn thấy đợc sự khác
nhau giữa đặc điểm của các khách hàng đã mua và không mua xe đạp của
công ty nh thế nào?
Bằng cách sử dụng thuật toán MS Naive Bayes để xây dựng mô hình
khai phá, phòng Marketing có thể nhanh chóng đa ra kế hoạch quảng cáo
của mình.
Xây dựng mô hình TM Naive Bayes với cấu trúc nh sau:
Structure TM Naive Bayes
CommuteDistance Input
BikeBuyer Predict
Age Input

CustomerKey
Key
Education Input
Gender Input
House Owner Flag Input
Marital Status Input
Number Car Owner Input
Number Children At Home Input
Occupation (Nghề nghiệp) Input
Region Input
Total Children Input
Bảng 2.1: Cấu trúc của mô hình TM Naive Bayes
Thuộc tính dự đoán BikeBuyer với hai trạng thái 0 và 1 tơng ứng với
sự không mua và mua xe của khách hàng.
Nh đã nói ở trên: Thuật toán tính xác suất có điều kiện các trạng thái
của mỗi cột đầu vào với mỗi trạng thái của cột dự báo. Trong ví dụ này với cột
đầu vào CommuteDistance, từ cở sở dữ liệu về 18484 khách hàng của công ty
ta có bảng thống kế sau:
- 7 -
CommuteDistance Số ngời mua Số ngời không mua
0-1 Miles (6310) 3538 2772
1-2 Miles (3232) 1529 1703
2-5 Miles (3234) 1839 1395
5-10 Miles (3214) 1318 1896
10+ Miles (2494) 908 1586
Tổng =18484 9132 9352
Bảng 2.2: Số khách hàng với thuộc tính CommuteDistance
Gọi A là biến cố ngời đó thuộc nhóm khách hàng có khoảng cách từ
nhà đế chỗ làm việc từ 0-1 Miles. B
1

là biến cố ngời đó mua xe đạp, thuật
toán MS Naive Bayes sẽ tính xác suất
P
1
(A/B
1
) =
)(
)(
1
1
BP
ABP
=
18484:9132
18484:3538
= 0,387
Nếu vẫn gọi A là biến cố nh trên, B
2
là biến cố ngời đó không mua xe
đạp, ta có:
P
2
(A/B
2
) =
)(
)(
2
2

BP
ABP
=
18484:9352
18484:2772
=0,296
Nh vậy, trong số những ngời mua xe đạp của công ty, chọn ra một ng-
ời thì xác suất ngời đó đi từ nhà tới chỗ làm việc từ 0-1 Miles là 0,387. Và
với những khách hàng không mua xe đạp của công ty, chọn ra một khách
hàng thì xác suất ngời đó đi từ nhà đến chỗ làm việc từ 0-1 Miles là 0,296.
Tơng tự với các trạng thái khác của thuộc tính đầu vào
CommuteDistance ta có bảng sau:
CommuteDistance P
1
(A/B
1
) P
2
(A/B
2
)
0-1 Miles 0,387 0,296
1-2 Miles 0,167 0,182
2-5 Miles 0,201 0,149
5-10 Miles 0,144 0,203
10+ Miles 0,099 0,170
Bảng 2.3: Xác suất có điều kiện các trạng thái của CommuteDistance
Hoàn toàn tơng tự với thuộc tính CommuteDistance, xét với các
thuộc tính còn lại trong mô hình ta đợc kết quả nh các kết quả hiển thị ở
Microsoft Naive Bayes Viewer trong Business Intelligence Development

Studio.
- 8 -
Hình 2.1: Xác suất có điều kiện trên MS Naive Bayes Viewer.
Dựa vào các xác suất này chúng ta có thể thấy đợc trạng thái của của
thuộc tính đầu vào nào giúp cho phân biệt đợc các trạng thái của thộc tính dự
báo. Xét với 1000 khách hàng mua xe và 1000 khách hàng không mua xe,
chúng ta có 387 khách hàng mua xe đi làm từ 0-1 Miles, cũng với khoảng
cách này có 296 khách hàng không mua xe tại công ty. Theo đó, với trạng
thái 0-1 Miles của thuộc tính CommuteDistance chúng ta có số chênh lệch
giữa số khách hàng mua và số khách hàng không mua xe tại công ty là 387-
296 = 91 khách hàng, tơng tự với các trạng thái khác ta có bảng:
CommuteDistance Số ngời mua
Số ngời không
mua
Chênh lệch
0-1 Miles 387 296 91
1-2 Miles 201 149 52
2-5 Miles 167 182 -15
5-10 Miles 144 203 -59
10+ Miles 99 170 -71
Bảng 2.4: Xét với 1000 khách hàng
Vậy với trạng thái 0-1 Miles phân biệt giữa các khách hàng mua và
không mua xe rõ nhất, và trạng thái 10+ Miles phân biệt giữa khách hàng
không mua và khách hàng mua xe tại công ty rõ ràng nhất, điều này đợc thể
hiện ở Tab Attribute Discrimination trong Microsoft Naive Bayes Viewer . T-
ơng tự với các trạng thái của các thuộc tính đầu vào ta có hình sau:
- 9 -
Hình 2.2:Hai trạng thái của thuộc tính CommuteDistance
Nh vậy, trong chiến lợc quảng cáo của phòng Marketing của công ty
Adventure Works Cycle, họ sẽ chủ yếu phát tờ rơi cho những ngời đi từ 0-1

Miles để làm việc và hạn chế phát tờ rơi cho những ngời phải đi trên 10
Miles để làm việc.
c. Các tham số của thuật toán
Thuật toán MS Navie Bayes khá đơn giản, vì vậy không có nhiều
tham số. Các tham số đảm bảo thuật toán hoàn thành trong một lợng thời
gian hợp lí.
MAXIMUM_INPUT_ATTRIBUTES : xác số thuộc tính đầu vào
lớn nhất. Nếu nh số thuộc tính đầu vào lớn hơn giá trị của tham số, thuật
toán sẽ chọn số đầu vào bằng giá trị này. Thiết lập tham số này bằng 0 để
thuật toán tính đên tất cả các thuộc tính đầu vào. Giá trị mặc định là 255.
MAXIMUM_OUTPUT_ATTRIBUTES : xác định số thuộc tính
đầu ra lớn nhất. Nếu mô hình có số đầu ra lớn hơn giá trị của tham số, thuật
toán sẽ chọn số đầu ra bằng giá trị này. Thiết lập tham số này bằng 0 để thuật
toán tính đến tất cả đầu ra. Giá trị mặc định là 255.
MAXIMUM_STATES : chỉ ra số trạng thái lớn nhất của một
thuộc tính đợc tính đến. Nếu một thuộc tính có số trạng thái lớn hơn giá trị
của tham số, thuật toán sẽ chọn số trạng thái bằng giá trị của tham số này.
- 10 -
Tham số này đợc sử dụng khi một thuộc tính có nhiều trạng thái , chẳng
hạn nh mã bu điện. Cũng nh các tham số khác, thiết lập bằng 0 xét đến tất
cả các trạng thái. Giá trị mặc định là 100.
MINIUMUM_DEPENDENCY_PROBABILITY: là một số từ 0
đến 1, giá trị của tham số này đợc thiết lập để giới hạn kích thớc của nội
dung mô hình đợc tạo ra bởi thuật toán. Giá trị này lớn thì sẽ giảm số thuộc
tính trong nội dung của mô hình. Giá trị mặc định là 0.5
2. Thuật toán Microsoft Decision Tree
a. Gới thiệu
MS Decision Tree đợc cung cấp bởi MSSAS, là thuật toán phổ biến
nhất trong KPDL. Thuật toán này hỗ trợ xử lý cả thuộc tính rời rạc và thuộc
tính liên tục. Thuật toán đợc sử dụng để thực hiện cả tác vụ phân loại và hồi

quy, trong đó tác vụ phân loại phổ biến hơn.
Cây quyết định có thể xử lý tốt một lợng dữ liệu lớn trong thời gian
ngắn để cho phép các nhà chiến lợc đa ra quyết định dựa trên phân tích của
cây quyết định. Và việc chuẩn bị dữ liệu cho một cây quyết định là không
cần thiết, trong khi các kỹ thuật khác thờng đòi hỏi chuẩn hóa dữ liệu (phân
tách một bảng có cấu trúc phức tạp thành những bảng có cấu trúc đơn giản
đảm bảo không bị mất thông tin và giảm không gian lu trữ) và loại bỏ các
giá trị rỗng.
Cây quyết định là một flow-chart có cấu trúc cây. Trong đó mỗi node
biểu diễn giá trị của mỗi thuộc tính đầu vào và node lá đại diện cho các
phân loại còn các nhánh đại diện cho luật kết hợp các thuộc tính dẫn tới
phân loại đó.
Cây quyết định cũng là một phơng tiện có tính mô tả cho việc tính
các xác suất có điều kiện.
b. Nguyên tắc cơ bản của giải thuật
Nguyên tắc cơ bản của giải thuật cây quyết định là chia dữ liệu một
cách đệ quy từ trên xuống và theo cách thức chia để trị thành các tập hợp con.
- Ban đầu toàn bộ dữ liệu ở gốc,
- Chọn thuộc tính phân loại tốt nhất( mục đích làm tối thiểu
hóa, chẳng hạn tối thiểu chiều cao của cây).
- Dữ liệu đợc phân chia theo các trạng thái của thuộc tính đợc
chọn.
- 11 -
Lặp lại quá trình trên với tập dữ liệu ở mỗi nút vừa tạo ra. Điều kiện để
dừng phân chia là:
- ở một nút tất cả phần tử của dữ liệu tại nút đó thuộc về cùng
một lớp.
- Không còn thuộc tính nào để thực hiện phân chia tiếp.
- Số lợng phần tử của dữ liệu tại một nút bằng không, trong
thực tế tập dữ liệu đầu vào rất lớn, với điều kiện dừng này cây quyết định

thu đợc rất phức tạp, với những đờng đi dài. Để tránh hiện tợng này trong
thuật toán MS Decision tree, đã tích hợp tham số MINIMUM_SUPPORT
để thiết lập giá trị ngỡng, không chia một nút nếu tạo ra nút có số phần tử
nhỏ hơn ngỡng này.
Để chọn thuộc tính hữu ích nhất, chúng ta cần một đại lợng mà có thể
đánh giá trờng hợp nào cho ra một sự phân chia cân bằng nhất (với chiều sâu
và chiều rộng của cây). Thuật toán MS Decision tree cung cấp 3 phơng pháp
tính điểm để đo độ lợi thông tin: Entropy, Bayesian with K2 Prior và
Bayesian Dirichlet Equivalent with Uniform prior.
Phơng pháp tính điểm Entropy:
Phơng pháp tính điểm này dựa trên công thức tính Entropy trong lý
thuyết thông tin của nhà vật lý, toán học Shannon. Lý thuyết thông tin của
Shannon vào năm 1948 cung cấp khái niệm entropy để đo tính hỗn loạn của
một tập hợp. Một tập hợp là thuần nhất nếu tất cả các phần tử của tập hợp
đều thuộc cùng một loại, và khi đó độ hỗn loạn của tập hợp này thấp nhất.
Khi tập hợp thuần nhất thì ta biết chắc chắn về giá trị của một phân tử cần
phần loại có thuộc về tập này hay không? hay ta có lợng thông tin về tập đó
là cao nhất, và ngợc lại, khi tập hợp có độ hỗn loạn cao nhất, thì ta không
thể cho biết chính xác phần tử kiểm tra thuộc loại nào? hay lợng thông tin
ta có đợc về tập này là thấp ít nhất.
Giả sử một tập dữ liệu S có hai lớp: lớp N và lớpP, với n phần tử thuộc
lớp N và p phần tử thuộc lớp P. Entropy đo độ hỗn loạn của tập S nh sau:
Entropy(S) = -
)(log
2
pn
n
pn
n
++

-
)(log
2
pn
p
pn
p
++
= -p
1
log
2
p
1
- p
2
log
2
p
2
.
với p
1
=
pn
n
+
là xác suất phần tử bất kỳ thuộc lớp N,
p
2

=
pn
p
+
là xác suất phần tử bất kỳ thuộc lớp P.
- 12 -
Một cách tổng quát hơn, nếu S có c lớp, và p
i
là xác suất của một
phần tử trong tập dữ liệu thuộc lớp thứ i, thì ta có công thức tính entropy
tổng quát:
Entropy(S)=
i
c
i
i
pp
2
1
log

=

.
Theo Shannon thì lợng thông tin nhận đợc chính là lợng giảm độ hỗn
loạn của tập dữ liệu sau khi phân chia, và ta gọi độ giảm tính hỗn loạn này
là độ lợi thông tin. Vậy, điều ta mong muốn ở đây là làm sao chọn đợc
thuộc tính mà sau khi phân chia chúng ta đợc các tập con thuần nhất, càng
nhanh càng tốt. Tức là chọn thuộc tính mang lại độ lợi thông tin lớn nhất.
Giả sử khi ta sử dụng thuộc tính A có v trạng thái{ S

1
, S
2
, , S
v
},
entropy của tập dữ liệu sau khi phân chia trên thuộc tính này là:
Entropy(A) =

=
v
k
k
S
S
1
||
||
Entropy(S
k
).
với |S
k
| là số phần tử thuộc trạng thái S
k
của thuộc tính A và |S| là số
phần tử của tập dữ liệu S.
Và độ lợi thông tin có đợc bởi việc phân nhánh trên thuộc tính A là:
Gain(A) = Entropy(S) - Entropy(A)
Chúng ta có thể minh họa nguyên tắc của thuật toán qua việc xét ví dụ:

Phòng Marketing của công ty Adventure Works Cycle muốn dự đoán
một khách hàng với những đặc điểm đợc xác định có mua xe tại công ty
hay không?, dựa vào những đặc điểm của các khách hàng đã mua sản phẩm
của công ty đợc lu trong cơ sở dữ liệu. Bằng cách sử dụng thuật toán MS
Decision tree để phân tích những thông tin này, phòng Marketing có thể xây
dựng một mô hình khai phá có cấu trúc:
Structure TM Decsion Tree
CommuteDistance (KC từ nhà đến nơi làm
việc)
Input
BikeBuyer Predict
Age Input
CustomerKey
Key
Number Car Owner Input
Total Children Input
Bảng 2.5: Cấu trúc mô hình TM Decision Tree
Từ dữ liệu của công ty ta có các bảng sau;
BikeBuyer CommuteDistance
0-1 Miles 1-2 Miles 2-5 Miles 5-10 10+ Miles
- 13 -
Miles
1 3538 1529 1839 1318 908
0 2772 1703 1395 1896 1586
B¶ng 2.6: Sù ph©n lo¹i theo thuéc tÝnh CommuteDistance
.
H×nh 2.3: BiÓu ®å thÓ hiÖn sù ph©n lo¹i theo thuéc tÝnh CommuteDistance
Bike
Buyer
Age

<35
>=35
<42
>=42
<46
>=46
<54
>=54
<59
>=59
<65
>=65
<70
>=70
<74
>=74
<86
>=86
1 1567 2700 1269 2142 912 599 351 82 53 1
0 1023 1538 1309 2018 927 1020 475 298 173 27
B¶ng 2.7: Sù ph©n lo¹i theo thuéc tÝnh Age
H×nh 2.4: BiÓu ®å thÓ hiÖn sù ph©n lo¹i theo thuéc tÝnh Age
- 14 -
Bike
Buyer
Number Car Owner
0 1 2 3 4
1 2687 2696 2589 694 466
0 1551 2187 3868 951 795
B¶ng 2.8: Sù ph©n lo¹i theo thuéc tÝnh Number Car Owner

H×nh 2.5: BiÓu ®å thÓ hiÖn sù ph©n lo¹i theo thuéc tÝnh Number Car
Owner
Bike
Buyer
TotalChildren
0 1 2 3 4 5
1 2648 2172 1929 1061 875 447
0 2517 1447 1850 1133 1428 977
B¶ng 2.9: Sù ph©n lo¹i theo thuéc tÝnh Total Children
- 15 -
Hình 2.6: Biểu đồ thể hiện sự phân loại theo thuộc tính Total Children
Trong các bảng trên mỗi cột là một trạng thái của thuộc tính đầu vào,
mỗi dòng là một trạng thái của thuộc tính dự đoán, mỗi ô là số khách hàng
thỏa mãn mối tơng quan giữa một trạng thái của thuộc tính đầu vào với một
trạng thái của thuộc tính dự đoán. Các biểu đồ biểu diễn tơng quan đó. Cột
màu đỏ biểu diễn số khách hàng mua xe và cột màu xanh biểu diễn số
khách hàng không mua.
Dữ liệu của công ty gồm có 18484 khách hàng trong đó có 9132 ngời
mua xe, 9352 ngời không mua, nên entropy của tập dữ liệu này là:
Entropy(S) = -
18484
9132
log
2
(
18484
9132
) -
18484
9352

.log
2
(
18484
9352
)= 0,9999.
Nếu rẽ nhánh trên thuộc tính đầu vào CommuteDistance
Entropy(0-1 Miles)=
-
27723538
3538
+
log
2
(
27723538
3538
+
) -
27723538
2772
+
.log
2
(
27723538
2772
+
)=
0,9893 .

Entropy(1-2 Miles)=
-
70311529
1529
+
log
2
(
70311529
1529
+
) -
70311529
1703
+
log
2
(
70311529
1703
+
) = 0,9979
Tơng tự ta có:
Entropy(2-5 Miles) = 0,9863 ; Entropy(5-10 Miles) = 0,9765 ;
Entropy(10+ Miles)= 0,946
Do đó ta có:
Entropy(CommuteDistance) = (
18484
27723538 +
)Entropy(0-1 Miles) + (

18484
17031529 +
)Entropy(1-2 Miles) + (
18484
13951839 +
)Entropy(2-5 Miles) + (
- 16 -
18484
18961318 +
)Entropy(5-10 Miles) + (
18484
1586908 +
)Entropy(10+ Miles)=
0,3377 + 0,1745 + 0,1726 + 0,1698 + 0,1276 = 0,9822.
Và độ lợi thông tin có đợc:
Gain(CummuteDistance) = Entropy(S) - Entropy(CummuteDistance)
= 0,9999 - 0,9822 = 0,0177.
Hoàn toàn tơng tự với các thuộc tính còn lại ta có:
Gain(Age) = 0,0311 ; Gain(NumberCarOwner) = 0,0289
Gain(TotalChildren) = 0,0190.
Từ các kết quả trên ta thấy thuộc tính Age có độ lợi thông tin lớn
nhất, nên thuộc tính này sẽ đợc chọn để rẽ nhánh. Dữ liệu đợc chia thành 10
tập con tơng ứng với 10 nút, thuật toán sẽ lặp lại quá trình trên cho mỗi nút
vừa đợc tạo ra để tiếp tục phát triển cây.
Xây dựng mô hình trên trong môi trờng BI và chọn phơng pháp tính
điểm là Entropy, thực hiện khai phá mô hình chúng ta có thể sử dụng tab
Mining Model Viewer để quan sát kết quả.
Hình 2.7: Cây quyết định với phơng pháp tính điểm Entropy
- 17 -
Tuy nhiên với phơng pháp tính điểm này còn có một số hạn chế, nó

có xu hớng thiên về chọn những thuộc tính có nhiều trạng thái khác nhau.
Ví dụ sự phân chia trên tập thuộc tính Customer_ID sẽ cho một lợng lớn
các tập con thuần nhất, mỗi tập con chỉ chứa duy nhất một bộ. Entropy của
thuộc tính này bằng 0 và độ lợi thông tin có đợc bởi việc phân nhánh trên
thuộc tính Customer_ID là lớn nhất. Rõ ràng, phép phân chia trên là không
hữu dụng. MS Decision tree mặc định sử dụng phơng pháp tính điểm
Bayesian Dirichlet Equivalent with Uniform prior. Và kết quả của mô hình
với phơng pháp tính điểm mặc định nh sau.
Hình 2.8: Cây quyết định với phơng pháp tính điểm mặc định
Hình trên biểu diễn mô hình cây quyết định cho một khách hàng mua
xe tại công ty Adventure Works Cycle, cây đợc đặt nằm ngang với nút gốc
nằm phía bên trái nhất và hộp thoại Mining Legned biểu diễn thông tin của
một nút. Ta thấy cây này có độ rộng nhỏ hơn nhng có chiều sâu lớn hơn so
với cây đợc tạo ra bằng phơng pháp tính điểm Entropy. Mỗi đờng đi từ nút
gốc đến một nút định dạng một luật, nh luật tại nút Number Cars
- 18 -
Owned=4 sẽ là Number Cars Owned = 4 (đợc chỉ ra ở góc dới bên trái của
hộp thoại Mining Legned). Mỗi nút chứa một biểu đồ hình cột đại diện cho
tỉ lệ các trạng thái của thuộc tính dự đoán thỏa mãn luật tại nút đó (nh hình
trên màu xanh biểu diễn số ngời không mua, màu đỏ nhạt biểu diễn số ngời
mua xe). Khi một nút đợc chọn trên hộp thoại Mining Legned sẽ hiển thị
tổng số phần tử, số phần tử của mỗi trạng thái của thuộc tính dự đoán thỏa
mãn luật tại nút đó và xác suất tơng ứng (nh đã nói ở phần trên, cây quyết
định cũng là một phơng tiện có tính mô tả cho việc tính các xác suất có điều
kiện). Trong hình trên, nút đợc chọn là Number Car Owned=4, ở hộp thoại
Mining Legend cho thấy tổng số khách hàng có Number Car Owned=4 là
1261 trong đó có 466 ngời mua xe, 795 ngời không mua với xác suất tơng ứng
là 62,98 % và 36,95 %. Các xác suất này đợc tính nh sau:
Gọi A là biến cố ngời đó mua xe, B là biến cố ngời đó có Number Car
Owned = 4. Vậy xác suất ngời đó sẽ mua xe nếu ngời đó có Number Car

Owned = 4 là:
P(A/B) =
)(
)(
BP
ABP
=
18484:1261
18484:466

36,95 %.
Tơng tự gọi C là biến cố ngời đó không mua xe, ta có:
P(C/B) =
)(
)(
BP
CBP
=
18484:1261
18484:795

63,05 %.
Dựa vào cây quyết định trên Mining Model Viewer phòng Marketing
có thể xác định một khách hàng có xác suất sẽ mua xe và không mua xe là
bao nhiêu, chẳng hạn với khách hàng có Number Car Owned =4 thì xác
suất ngời này không mua lớn hơn xác suất mua xe (kết quả trên), từ đó
phòng Marketing có kế hoạch không nên chú trọng đến những khách hàng
này.
Nh vậy, cây quyết định giúp ta nhanh chóng 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.

c. Các tham số của thuật toán
Có một số tham số của giải thuật đó là các tham số giúp kiểm soát sự
phát triển của cây, hình dạng cây, các thiết lập cho các thuộc tính đầu vào,
đầu ra.
Complexity_Penalty đợc dùng để kiềm chế sự phát triển
của cây quyết định. Là một số thực thuộc khoảng (0,1), giảm giá trị của tham
số này để tăng khả năng phân chia của một nút trong cây, trong khi tăng giá
- 19 -
trị của tham số này để giảm khả năng phân chia. Giá trị mặc định của tham
số này phụ thuộc vào số lợng các thuộc tính đầu vào của một mô hình:
- Từ 1 đến 9 thuộc tính, giá trị mặc định là 0,5.
- Từ 10 đến 99 thuộc tính, giá trị mặc định là 0,9.
- Từ 100 thuộc tính trở lên, giá trị mặc định là 0,99.
Minimum_Support dùng để chỉ ra số phần tử nhỏ nhất của
một nút lá trên cây. Nh trong ví dụ trên nếu giá trị của tham số này đợc đặt
là 100, khi cây sinh ra các nút, nút nào có tổng số khách hàng thỏa mãn luật
ở nút đó nhỏ hơn 100 thì sự phân chia này không đợc chấp nhận. Thông th-
ờng tập dữ liệu huấn luyện có nhiều bản ghi thì nên tăng giá trị này lên để
tránh trờng hợp Overtraning. Giá trị mặc định bằng 10.
Score_Method có giá trị dạng số nguyên. Đợc dùng để xác
định phơng pháp tính độ lợi thông tin cho các thuôc tính tại mỗi nút trong
khi phát triển cây, đã đợc nhắc đến trong phần trớc.
- Thiết lập bằng 1 để chọn phơng pháp Entropy
- Thiết lập bằng 3 để chọn phơng pháp Bayesian with K2 Prio.
- Mặc định thiết lập bằng 4 để chọn phơng pháp Bayesian
Dirichlet Equivalent with Uniform prior.
Split_Method có giá trị dạng số nguyên. Đợc dùng để chỉ ra
hình dạng của cây cần xây dựng, ví dụ là cây nhị phân hay cây có hình
dạng phức tạp. Chẳng hạn xét sự phân chia bởi thuộc tính Tuổi có ba trạng
thái: trẻ, trung tuổi và già.

- Thiết lập bằng 1 để chỉ ra cây có dạng nhị phân. Tức thuật
toán phải tách ra thành hai nút với lựa trọng trạng thái là: trẻ và không trẻ.
- Thiết lập bằng 2 để không hạn chế số phân chia. Tức là thuật
toán phân tách thành 3 nút với các trạng thái: trẻ, trung tuổi và già.
- Mặc định thiết lập bằng 3, để thuật toán chọn số phân chia
tối u nhất.
Maximum_Input_Attribute xác định số đầu vào lớn
nhất. Giả sử thiết lập giá trị của tham số này bằng g và số thuộc tính đầu
vào lớn hơn g, thì thuật toán chỉ chọn g đầu vào có độ phụ thuộc với thuộc
tính đầu ra lớn nhất dựa trên sự đánh giá của số entropy. Giá trị mặc định
bằng 255.
Maximum_Output_Attribute xác định số đầu ra lớn
- 20 -
nhất. Nếu thiết lập giá trị của tham số này bằng g và số thuộc tính đầu ra
lớn hơn g, thì thuật toán chỉ chọn g đầu ra mà độ phụ thuộc của các thuộc
tính đầu vào với nó lớn nhất dựa trên sự đánh giá của số entropy. Giá trị
mặc định bằng 255. .
Force_Regressor là tham số chỉ sử dụng cho cây hồi quy.
Đợc sử dụng để chỉ ra các thuộc tính là nhân tố hồi quy.
3. Thuật toán Microsoft Time Series
a. Giới thiệu
MS Time series là một thuật toán hồi quy đợc dùng để tạo mô hình
dự đoán các cột có giá trị liên tục, chẳng hạn giá cổ phiếu của một công ty.
Thuật toán Time Series của Microsoft đợc xây dựng để giải quyết
những vấn đề này. Đây là thuật toán mới so với các thuật toán trong phiên
bản SQL Sever 2000.
Một time series là một chuỗi dữ liệu đợc thống kê theo thời gian.
Nh Hình 2.10 biểu diễn time series giá cổ phiếu lúc đóng cửa của tập
đoàn Microsoft đợc thống kê sau một năm.
Hình 2.9: Time series giá cổ phiếu của Microsoft

b. Nguyên lý cơ bản của thuật toán
Thuật toán Time Series là một sự kết hợp giữa kỹ thuật cây quyết
định và sự tự hồi quy. Vì vậy nó còn có tên là ART (AutoRegression Tree-
Cây tự hồi quy). Mô hình sử dụng thuật toán Time series phải chứa một cột
khóa thời gian (key time), cột này sẽ đợc mô hình dùng để xác định các
khoảng thời gian (time slices).
- 21 -
Ví dụ trong time series giá cổ phiếu (lúc mở cửa, lúc cao nhất, lúc
thấp nhất, lúc đóng cửa) của tập đoàn Microsoft đợc thống kê từ 19/02/2008
đến ngày 13/02/2009 :
Hình 2.10: Bảng giá cổ phiếu của Microsoft
Thì các time slices đợc xác định nh sau:

Hình 2.10: Các Time Slices đợc thuật toán xác định.
Tự hồi quy (Autoregression)
Tự hồi quy là một kỹ thuật phổ biến để xử lý time series. Một mô
hình tự hồi quy là một hàm thể hiện mối liên hệ giữa giá trị của biến phụ
thuộc với giá trị quá khứ của nó:
X
t
= f(X
t-1
, X
t-2
, X
t-3
,, X
t-n
) +


t
- 22 -
Trong đó X
t
: là giá trị của time series tại thời điểm t cần biết,
n : là bậc của mô hình hồi quy.


t
: là sai số hay độ nhiễu.
Một trong những bớc quan trọng của ART là quá trình chuyển đổi dữ
liệu. Quá trình này đợc mình họa nh hình dới đây, bảng bên trái chứa 4 time
series: giá cổ phiếu lúc mở cửa, lúc cao nhất, lúc thấp nhất, lúc đóng cửa
hàng ngày của tập đoàn Microsoft, bảng bên phải là dữ liệu đã đợc chuyển
đổi gồm có 9 cột: cột đầu tiên là Case id, cột thứ hai là giá cổ phiếu lúc mở
cửa vào ngày t-1 (t-1 là một time slot), cột thứ hai là giá cổ phiếu lúc mở cửa
ở time slot t0, tơng tự với các cột còn lại. Open(t-1), High(t-1), Low(t-1),
Close(t-1) đợc xem là các biến hồi quy. Mỗi dòng trong bảng bên phải biểu
diễn một case. Thuật toán MS Time series mặc định sử dụng 8 time slot cho
quá trình chuyển đổi dữ liệu.

Hình 2.11: Quá trình chuyển đổi dữ liệu
Mục đích của thuật toán time series là tìm ra hàm f.
Nếu f là hàm tuyến tính thì ta có:
X
t
= a
1
X
t-1

+ a
2
X
t-2
+ a
3
X
t-3
++ a
n
X
t-n
+

t
Trong đó a
i
là các hệ số.
* Cây tự hồi quy: tơng tự nh cây quyết định là một flow-chart, trong
đó các nút biểu diễn nhãn của các phần tử thuộc nút đó, đờng đi từ gốc tới
một nút hình thành một luật và mỗi nút lá tơng ứng với một công thức hồi
- 23 -
quy.Hình dới đây hiển thị một cây hồi quy đợc xây dựng trên dữ liệu của ví dụ
trên:
Hình 2.11: Cây hồi quy trên dữ liệu time series
Sự phân chia của cây dựa trên Close(t-1), nếu tại thời điểm khảo sát t,
giá cổ phiếu ở thời điểm t-1 mà lớn hơn hoặc bằng 19.271 thì giá cổ phiếu
lúc đóng cửa đợc tính theo công thức hồi quy: Close = -1.665 + 1.405 *
High(- 1) -0.357 * Close(-1).
Khi thực hiện xây dựng mô hình nếu time slot nào không có ý nghĩa

thì sẽ bị loại bỏ (mô hình trên chỉ sử dụng time slot t-1), và khi kiểm định
công thức hồi quy ở mỗi nút lá biến giải thích nào không có ý nghĩa cũng đ-
ợc bỏ qua (ở đây chỉ có High(-1) và Close(-1)). Công thức hồi quy trên có
dạng Close = c + a*High(-1) + b*Close(-1).
Các hệ số a, b, c có thể đợc xác định nh sau:
1 High(t-1) Close(t-1) Close(t0)
Gọi HS=










b
a
c
, X=






















20.76211
20.5220.671
20.3320.41
19.4419.681
19.3419.491
, Y=






















19.51
20.76
20.52
20.33
19.44

Công thức tính hệ số của công thức hồi quy: HS =
[ ]
YXXX '**'*
1
- 24 -
Close = -1.665 + 1.405 * High(- 1)
-0.357 * Close(-1)
c. Các tham số của thuật toán
Ngoài hai tham số Minimum_Support và COMPLEXITY
_PENALTY nh thuật toán cây quyết định, thuật toán MS Time series còn hỗ
trợ các tham số:
Historical_Model_Count: đợc sử dụng với kiểu Integer.
Nó xác định số mô hình quá khứ( historic models) sẽ đợc xây dựng. Mặc
định là 1.
Historical_Model_Gap: có kiểu Integer. Tham số này có

quan hệ với Historical_Model_Count. Nó xác định khoảng thời gian giữa
hai historical model liên tiếp nhau. Ví dụ : cho tham số này bằng g, theo đó
khoảng cách các historical model cách nhau lần lợt là: g, 2*g,3*g. Mặc
định là 10.
Hình c.1: Hiển thị thiết lập Historical_Model_Count = 4,
Historical_Model_Gap= 30.
Hình 2.12: Các mô hình quá khứ
Khi mô hình xử lý nó chứa 5 mô hình quá khứ, mô hình đầu tiên kết
thúc tại Time-120, và mô hình cuối cùng kết thúc tại Now (thời điểm hiện
tại). Khi dự đoán giá trị tại thời gian -100 nó sử dụng hoàn toàn mô hình
- 25 -

×