ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Lớp Cao Học khóa 5 ngành Khoa Học Máy Tính
11.2012
BÀI THU HOẠCH MÔN HỌC
Khai phá dữ liệu và kho dữ liệu
Đề tài
Khai phá dữ liệu dùng MS SQL Server
2012
Giảng viên hướng dẫn: PGS-TS Đỗ Phúc
Người thực hiện: Trần Kim Hoàng Quốc (CH1001062)
42
Mục lục
1.Giới thiệu 4
1.1Các giải thuật KPDL trong SQL Server Analysis Service 4
1.2Lựa chọn đúng giải thuật 5
1.2.1Chọn theo loại giải thuật 5
1.2.2Chọn theo tác vụ 6
2.Tìm hiểu các giải thuật KPDL trong SSAS 7
2.1Giải thuật Luật kết hợp 7
2.1.1Sơ lược về giải thuật 7
2.1.2Hiện thực giải thuật 8
2.1.3Cấu hình cho mô hình luật kết hợp 9
2.2Giải thuật Gom cụm 11
2.2.1Sơ lược về giải thuật 11
2.2.2Hiện thực giải thuật 11
2.2.3Cấu hình cho mô hình Gom cụm 13
2.3Giải thuật Cây quyết định 14
2.3.1Sơ lược về giải thuật 14
2.3.2Hiện thực giải thuật 15
2.3.3Cấu hình cho mô hình 15
2.4Giải thuật Naive Bayes 16
2.4.1Sơ lược về giải thuật 16
2.5Giải thuật Hồi quy tuyến tính 17
2.5.1Sơ lược về giải thuật 17
2.6Giải thuật Hồi quy logic 17
2.6.1Sơ lược về giải thuật 17
2.7Giải thuật Neural Network 17
2.7.1Sơ lược về giải thuật 17
2.8Giải thuật Gom cụm dãy 17
2.8.1Sơ lược về giải thuật 17
2.9Giải thuật Chuỗi thời gian 17
2.9.1Sơ lược về giải thuật 17
42
3.Cách sử dụng SSAS 2012 và các giải thuật để khai phá dữ liệu 18
3.1Chuẩn bị Analysis Services database 18
3.1.1Tạo Analysis Services project 18
3.1.2Định nghĩa Data Source 19
3.1.3Định nghĩa Data Source View 19
3.2Tạo cấu trúc KPDL 20
3.2.1Tạo cấu trúc cho mô hình KPDL 20
3.2.2Data Type và Content Type 22
3.2.3Dữ liệu thử nghiệm 23
3.3Thêm và xử lý các mô hình 23
3.4Khám phá các mô hình 26
3.4.1Khảo sát kết quả của Cây quyết định 28
3.4.2Khảo sát kết quả của Gom cụm 30
3.4.3Khảo sát kết quả của Naive Bayes 34
3.5Thử nghiệm các mô hình 37
3.5.1Kiểm tra độ chính xác với Lift chart 37
3.5.2Kiểm thử với mô hình sàng lọc 38
3.6Thực hiện dự đoán 39
3.6.1Chuẩn bị dữ liệu 40
3.6.2Thiết kế câu truy vấn và xem kết quả 41
4.Kết luận 42
5.Tài liệu tham khảo 43
42
Khám phá tri thức trong lượng dữ liệu khổng lồ là một trong những xu hướng công nghệ
nổi bật hiện nay. Các giải thuật khai phá dữ liệu đã ra đời từ 20 năm về trước đã và đang
được ứng dụng nhiều trong nghiên cứu khoa học và công nghệ. Có một số ứng dụng có
thể thấy trong đời sống như khai thác dữ liệu phục vụ cho bán hàng, tiếp thị. Tuy nhiên
dường như có rất ít doanh nghiệp sử dụng hiệu quả công cụ này. Bài thu hoạch này đặt
mục tiêu tìm hiểu các giải thuật khai thác dữ liệu, đồng thời thực hiện triển khai các giải
thuật ấy trên một công cụ thực tế, để có thể nhận ra được khả năng ứng dụng kiến thức về
giải thuật kết hợp với sức mạnh công cụ để thực hiện tác vụ khai thác dữ liệu. Công cụ
được sử dụng ở đây là Microsoft SQL Server 2012 SP1. Do giới hạn về thời gian nên bài
viết chỉ đi vào chi tiết một số giải thuật thông dụng. Phần sau của bài viết tập trung vào
các kỹ năng sử dụng công cụ SSDT của SQL Server để thực hiện khai thác dữ liệu trên
cơ sở dữ liệu mẫu AdventureWorksDW2012 của Microsoft.
Tất cả nội dung và chương trình của bài thu hoạch này được lưu trữ tại
/>1. Giới thiệu
1.1 Các giải thuật KPDL trong SQL Server Analysis Service
Giải thuật khai phá dữ liệu là tập các phép tính toán và heuristic để tạo ra mô hình khai
phá dữ liệu từ dữ liệu. Để tạo ra mô hình, trước hết giải thuật sẽ phân tích dữ liệu được
cung cấp, tìm kiếm các loại khuôn mẫu hay khuynh hướng. Giải thuật sẽ dùng kết quả
phân tích này để định ra các thông số tối ưu cho việc tạo mô hình khai phá dữ liệu. Các
thông số này sau đó được áp dụng trên toàn bộ tập dữ liệu để rút ra những quy luật,
khuynh hướng và các chỉ số thống kê chi tiết.
Các giải thuật có thể tạo ra các dạng mô hình khai phá dữ liệu khác nhau như:
• Một tập các cụm (cluster) mô tả sự liên hệ giữa các trường hợp dữ liệu
• Một cây quyết định để dự đoán và mô tả các điều kiện ảnh hưởng đến kết quả
• Một mô hình toán học có thể dự đoán việc bán hàng
• Một tập các luật mô tả các mặt hàng được gom nhóm trong các giao dịch như thế
nào, và xác suất mà các sản phẩm sẽ được mua cùng lúc.
42
Microsoft SQL Server Analysis Services (SSAS) cung cấp các giải thuật sau đây để sử
dụng cho các dự án khai phá dữ liệu. Các giải thuật này được hiện thực dựa trên các
phương pháp khai phá dữ liệu thông dụng nhất. Các giải thuật này có thể được điều chỉnh
hoặc lập trình dùng các API hoặc dùng các thành phần khai phá dữ liệu trong SQL Server
Integration Services.
Giải thuật Luật kết hợp
Giải thuật Gom cụm
Giải thuật Cây quyết định
Giải thuật Hồi quy tuyến tính
Giải thuật Hồi quy logic
Giải thuật Naive Bayes
Giải thuật Neural Network
Giải thuật Gom cụm dãy
Giải thuật Chuỗi thời gian
1.2 Lựa chọn đúng giải thuật
Việc lựa chọn đúng giải thuật cũng khá khó khăn bởi vì cùng một tác vụ ta có thể sử dụng
các giải thuật khác nhau. Các giải thuật lại cho ra các kết quả khác nhau. Có giải thuật có
thể cho ra các loại kết quả khác nhau, chẳng hạn như cây quyết định có thể dùng để dự
đoán, và cũng có thể dùng để xác định các cột không ảnh hưởng đến kết quả dự đoán.
1.2.1 Chọn theo loại giải thuật
Analysis Services có các nhóm giải thuật sau
Phân loại
(classification)
Dự đoán một hay vài biến rời rạc dựa theo các thuộc tính khác
trong tập dữ liệu.
Hồi quy
(regression)
Dự đoán một hay vài biến liên tục (như lợi nhuận hay tổn thất)
dựa theo các thuộc tính khác trong tập dữ liệu.
Gom cụm / Phân đoạn
(segmentation)
Chia dữ liệu thành các nhóm hay cụm của các phần tử có các
thuộc tính tương tự.
Kết hợp
(association)
Tìm các mối liên hệ giữa các thuộc tính khác nhau trong bộ dữ
liệu. Ứng dụng phổ biến nhất của nhóm giải thuật này là tạo ra
các luật kết hợp, có thể dùng trong phân tích giỏ hàng.
Phân tích chuỗi
(sequence analysis)
Tổng kết các chuỗi hay tập phổ biến trong dữ liệu, ví dụ như
thứ tự vào các trang web.
42
Không nhất thiết phải sử dụng một giải thuật. Các nhà phân tích kinh nghiệm có thể dùng
một giải thuật để xác định các biến đầu vào tốt, sau đó dùng giải thuật khác để dự đoán
kết quả dựa trên dữ liệu đó. SSAS cho phép xây dựng nhiều mô hình trên một cấu trúc
khai phá, do đó trong một dự án khai phá dữ liệu, ta có thể dùng một giải thuật gom cụm,
một mô hình cây quyết định, và một mô hình naïve Bayes để có các góc nhìn khác nhau
về dữ liệu. Ta cũng có thể dùng các giải thuật khác nhau trong một dự án để thực hiện các
tác vụ khác nhau, chẳng hạn như có thể dùng hồi quy để có được dự báo tài chính, mạng
neural để phân tích các yếu tố ảnh hưởng đến doanh số bán hàng.
1.2.2 Chọn theo tác vụ
Bảng sau là một số các đề nghị giúp cho việc lựa chọn giải thuật trong các tác vụ thường
gặp
Tác vụ Giải thuật
Dự đoán một thuộc tính rời rạc
• Xác định các khách hàng trong một dánh sách người mua
là có triển vọng tốt hay không.
• Tính toán xác suất một máy chủ có thể hỏng trong vòng 6
tháng tới.
• Phân loại kết quả điều trị bệnh và khám phá các yếu tố liên
quan.
Cây quyết định
Naive Bayes
Gom cụm
Neural Network
Dự đoán một thuộc tính liên tục
• Dự báo doanh số bán hàng sang năm.
• Dự đoán lượng du khách dựa theo dữ liệu cũ và xu hướng
mùa.
• Định mức rủi ro theo thống kê cho trước.
Cây quyết định
Chuỗi thời gian
Hồi quy tuyến tính
Dự đoán một chuỗi
• Phân tích chuỗi click trong web site của công ty.
• Phân tích các yếu tố dẫn đến hư hỏng máy chủ.
• Phân tích chuỗi hoạt động trong quy trình khám chữa bệnh
ngoại trú và rút ra kinh nghiệm để thực hiện tốt nhất các
khâu chung.
Gom cụm dãy
Tìm nhóm các mặt hàng được mua chung
• Dùng phân tích giỏ hàng để xác định vị trí đặt sản phẩm.
• Gợi ý các sản phẩm để khách hàng mua thêm.
Luật kết hợp
Cây quyết định
42
• Phân tích các dữ liệu khảo sát từ các khách hàng đến tham
dự một sự kiện để biết các hoạt động hay gian hàng có liên
quan và lên kế hoạch cho lần sau.
Tìm nhóm các phần tử tương tự nhau
• Tạo các nhóm bệnh nhân rủi ro dựa theo thống kê hay hành
vi.
• Phân tích người dùng bằng thói quen duyệt web hay mua
sắm.
• Xác định các máy chủ có tính chất sử dụng tương tự.
Gom cụm
Gom cụm dãy
2. Tìm hiểu các giải thuật KPDL trong SSAS
2.1 Giải thuật Luật kết hợp
2.1.1 Sơ lược về giải thuật
Một trong những phương pháp KTDL thông dụng nhất là tìm tập mặt hàng phổ biến
(frequent itemsets) từ một CSDL các giao dịch, và từ đó rút ra các luật kết hợp.
Tập phổ biến là tập các mặt hàng có tần suất xuất hiện lớn hơn hay bằng một mức hỗ trợ
thấp nhất [minimum support] do người dùng chỉ định. Việc tìm tập phổ biến là không
đơn giản khi số lượng item lên đến vài chục hay vài trăm ngàn. Khi tập phổ biến đã được
xác định thì có thể dễ dàng tìm ra luật kết hợp có độ chắc chắn lớn hơn hay bằng mức
chắc chắn thấp nhất [minimum confidence] do người dùng chỉ định.
Apriori là giải thuật nền tảng để tìm tập phổ biến. “Mẹo” Apriori chỉ ra rằng “nếu một tập
là không phổ biến thì tất cả các tập chứa nó cũng không phải là tập phổ biến”.
Gọi F
k
là tập phổ biến kích thước k, C
k
là tập ứng cử viên kích thước k. Giải thuật Apriori
thực hiện như sau:
• Tạo tập phổ biến kích thước 1, chỉ cần đếm trong CSDL và chọn những item thỏa
mãn yêu cầu minimum support.
• Lặp việc tìm tập phổ biến với kích thước từ 2 đến k.
o Tạo tập ứng cử viên C
k
từ tập phổ biến F
k-1
tìm được trong lần lặp thứ k-1
1. Bước kết hợp: Ghép tập F
k-1
với chính nó để tăng kích thước
itemset thêm 1 như sau:
42
• p, q ϵ F
k-1
; p và q có chung (k-2) item
• thêm vào Ck một itemset cấu thành bởi (k-2) item giống
nhau và 2 item khác nhau
2. Bước rút gọn: Xóa tất cả itemset c ϵ C
k
nếu trong c có (k-1) item
không nằm trong F
k-1
(áp dụng mẹo Apriori)
o Quét CSDL để tính độ hỗ trợ của từng itemset trong C
k
.
o Chọn những tập nào thỏa yêu cầu min-support đưa vào tập phổ biến F
k
.
Giải thuật luật kết hợp của SSAS là một hiện thực của giải thuật Apriori. Cả hai giải
thuật, cây quyết định và luật kết hợp, đều có thể dùng để phân tích các mối liên kết, tuy
nhiên các luật tìm được của 2 giải thuật có thể khác nhau. Cây quyết định dựa vào độ lợi
thông tin, còn luật kết hợp thì dựa vào độ chắc chắn (confidence). Do đó một luật có độ
chắc chắn cao trong mô hình luật kết hợp có thể không cần thiết vì nó không cung cấp
thông tin mới.
2.1.2 Hiện thực giải thuật
Trong mô hình luật kết hợp, các biến kiểu Boolean như Có/Không thường được dùng
nhất để gán cho các thuộc tính. Ví dụ phân tích giỏ hàng dùng biến boolean gán cho sản
phẩm để thể hiện mặt hàng có hay không trong giỏ hàng.
Support: số lượng trường hợp có chứa itemset đang xét, có thể gọi là tần suất xuất hiện.
Chỉ những itemset có support đạt ngưỡng thì mới có mặt trong mô hình.
Itemset phổ biến: là một phần tử trong tập phổ biến, có support cao hơn mức ngưỡng
được cấu hình trong tham số MINIMUM_SUPPORT.
Ví dụ: itemset {A,B,C} và giá trị của MINIMUM_SUPPORT là 10. Để itemset
này có thể có mặt trong mô hình, mỗi item A, B, và C phải được tìm thấy trong ít
nhất 10 trường hợp và kết hợp {A,B,C} cũng phải được tìm thấy trong ít nhất 10
trường hợp.
42
MINIMUM_SUPPORT: thông thường đây là số lượng trường hợp đếm được có chứa
itemset, nhưng ta có thể diễn tả bằng phần trăm số lần xuất hiện trong tổng số các trường
hợp. Ví dụ nếu cho MINIMUM_SUPPORT = 0.03 nghĩa là itemset phải xuất hiện ít nhất
3% trong tổng số các trường hợp.
Confidence: ngưỡng để xác định một luật kết hợp thì lại không dựa trên số lần xuất hiện
hay tỷ lệ phẩn trăm, mà nó là một con số xác suất và được gọi là confidence.
Ví dụ: {A,B,C} có 50 trường hợp; {A,B,D} có 50 trường hợp; ngoài ra còn có
thêm có 50 trường hợp có {A,B} mà không có {C} hay {D}. Như vậy {A,B}
chưa phải là yếu tố đủ chắc chắn để dự đoán {C}. Để xác định khả năng đúng của
một luật (chẳng hạn luật “nếu {A,B} thì {C}), ta tính confidence cho luật bằng
support({A,B,C})/support({A,B}).
MINIMUM_PROBABILITY: Có thể cài đặt giá trị này để giới hạn số lượng luật kết
hợp mà giải thuật sẽ sinh ra.
Lift (hay Importance): thể hiện độ quan trọng của itemset hay luật kết hợp được tìm
thấy.
2.1.3 Cấu hình cho mô hình luật kết hợp
Ta có thể cài đặt các thông số sau cho mô hình luật kết hợp. Thay đổi các thông số này có
thể làm ảnh hưởng đến tốc độ và độ chính xác của mô hình.
MAXIMUM_ITEMSET_COUNT
Xác định số lượng itemset tối đa được phép phát sinh. Nếu để trống thì chương trình sẽ
dùng giá trị mặc định là 200,000.
Lưu ý: Itemset được xếp hạng dựa trên chỉ số support. Các itemset có cùng support thì sẽ
có thứ tự ngẫu nhiên.
MAXIMUM_ITEMSET_SIZE
Xác định số lượng item tối đa có trong một itemset. Nếu giá trị này bằng 0 thì sẽ không
giới hạn cho kích thước của itemset. Giá trị mặc định là 3.
Lưu ý: Nếu giảm giá trị này thì có thể rút ngắn thời gian tạo mô hình, do việc xử lý mô
hình sẽ ngưng khi kích thước itemset đạt đến giới hạn.
42
MAXIMUM_SUPPORT
Xác định số lần xuất hiện tối đa của một itemset. Thông số này được dùng để loại bỏ bớt
những item xuất hiện quá thường xuyên và có thể là sẽ không cần thiết.
Nếu giá trị này nhỏ hơn 1, đó là tỷ lệ phần trăm, nếu lớn hơn 1 thì là số đếm các trường
hợp có itemset xuất hiện. Giá trị mặc định là 1.
MINIMUM_ITEMSET_SIZE
Xác định số lượng tối thiểu các item trong một itemset. Nếu tăng giá trị thông số này thì
mô hình sẽ có thể có ít itemset hơn. Thông số này có thể dùng để bỏ qua những itemset
nhỏ, chẳng hạn itemset đơn (chỉ có một item). Giá trị mặc định là 1.
Lưu ý: Không thể giảm thời gian xử lý bằng cách tăng thông số này, bởi vì giải thuật bắt
buộc phải tính xác suất của tất cả các itemset từ nhỏ đến lớn. Có thể tăng giá trị này để
loại bỏ các itemset nhỏ ra khỏi tập kết quả.
MINIMUM_PROBABILITY
Xác định xác suất tối thiểu để chấp nhận một luật là đúng. Ví dụ nếu giá trị này là 0.5, chỉ
những luật nào có xác suất trên 50% mới được tạo. Giá trị mặc định là 0.4.
MINIMUM_SUPPORT
Xác định số lần tối thiểu itemset phải có mặt trước khi giải thuật tạo luật.
Nếu giá trị này nhỏ hơn 1, đó là tỷ lệ phần trăm, nếu lớn hơn 1 thì là số đếm các trường
hợp có itemset xuất hiện. Giá trị mặc định là 0.03, nghĩa là để có mặt trong mô hình,
itemset phải được tìm thấy trong ít nhất 3% trường hợp.
Giải thuật có thể tự động tăng giá trị này nếu thiếu bộ nhớ.
OPTIMIZED_PREDICTION_COUNT
Chỉ định số item được cached để tối ưu hóa dự đoán. Giá trị mặc định là 0.
Nếu dùng giá trị mặc định, giải thuật sẽ trả về tất cả các dự đoán theo như yêu cầu truy
vấn.
42
Nếu dùng một giá trị khác 0, số lượng dự đoán trả về sẽ là giá trị này. Thông số này có
thể giúp tăng tốc độ dự đoán.
2.2 Giải thuật Gom cụm
2.2.1 Sơ lược về giải thuật
Giải thuật gom cụm sử dụng kỹ thuật lặp để nhóm các trường hợp trong tập dữ liệu thành
từng cụm có đặc tính tương tự nhau. Phân nhóm dữ liệu này giúp ích cho việc khám phá
và tìm ra những bất thường trong dữ liệu, hoặc cũng có thể dùng cho việc dự đoán.
Mô hình gom cụm có thể nhận ra các quan hệ trong tập dữ liệu mà con người không thể
thấy được bằng quan sát thông thường. Chẳng hạn như bạn có thể nhận thấy một cách
logic rằng những ai đi làm bằng xe đạp thì thường sẽ không ở xa nơi làm việc. Tuy vậy,
thuật toán gom cụm có thể tìm ra những đặc trưng khác nữa về những người sử dụng xe
đạp để đi làm. Mô hình gom cụm khác với các mô hình khác (như Cây quyết định) ở chỗ
ta không cần gán một thuộc tính dự đoán cho nó. Nó chỉ học từ những mối liên hệ tồn tại
trong dữ liệu và từ các cụm mà nó tìm thấy.
2.2.2 Hiện thực giải thuật
Có hai phương pháp được áp dụng trong giải thuật này và người dùng có thể chọn lựa: K-
means hoặc EM (Expectation Maximization)
K-means là một giải thuật gom cụm “cứng”, nghĩa là mỗi điểm dữ liệu chỉ có thể thuộc
một cụm, và điểm dữ liệu đó có một xác suất duy nhất trong cụm.
EM là giải thuật gom cụm “mềm”. Một điểm luôn luôn thuộc nhiều cụm và giá trị xác
suất được tính cho từng cặp (điểm, cụm).
Gom cụm EM:
Giải thuật EM lặp lại việc tinh giản một mô hình cụm ban đầu để phù hợp với dữ liệu, và
xác định xác suất mà một điểm sẽ tồn tại trong một cụm. Giải thuật dừng khi mô hình xác
42
suất phù hợp với dữ liệu. Hàm logarit tương tự (log-likelihood) của dữ liệu cho trong mô
hình được dùng để đánh giá mức độ phù hợp này.
Nếu quá trình này sinh ra cụm rỗng, hoặc cụm có quá ít thành viên (dưới một ngưỡng cho
trước) thì các cluster có mật độ thấp này sẽ được gieo lại ở những điểm mới và giải thuật
EM sẽ được chạy lại.
Kết quả của gom cụm EM mang tính xác suất, nghĩa là mọi điểm dữ liệu đều thuộc về tất
cả các cụm với một xác suất nào đó. Vì phương pháp này cho phép các cụm có thể giao
nhau nên tổng số điểm trong tất cả các cụm sẽ vượt quá trong tập dữ liệu huấn luyện. Do
vậy trong kết quả của mô hình gom cụm EM, các điểm số hỗ trợ phải được điều chỉnh.
EM là giải thuật mặc định trong mô hình gom cụm của SSAS. Nó có một số ưu điểm hơn
so với k-means:
- Chỉ cần nhiều nhất là một lần quét database
- Có thể làm việc với bộ nhớ hạn chế (RAM)
- Có thể dùng một con trỏ tiến
- Nhanh hơn so với các tiếp cận lấy mẫu
Có hai tùy chọn để chạy EM:
- Scalable EM: chỉ dùng 50,000 record để gieo cho lần chạy đầu tiên. Nếu không
thành công thì sẽ lấy thêm 50,000.
- Non-scalable EM: toàn bộ tập dữ liệu được dùng mà không quan tâm đến kích cỡ
của nó. Cách này cho kết quả chính xác hơn nhưng có thể chiếm nhiều bộ nhớ.
Gom cụm K-means:
Đây là giải thuật nổi tiếng sử dụng phương pháp gán thành viên vào cụm sao cho khoảng
cách giữa các điểm trong cụm là nhỏ nhất, và khoảng cách giữa các cụm là lớn nhất.
“means” trong k-means là nói về trọng tâm của các cụm, và “k” là số điểm dùng để gieo
cho tiến trình gom cụm.
42
Giải thuật k-means tính khoảng cách Euclide giữa các điểm trong cụm và vector trọng
tâm của từng cụm. Giải thuật sẽ hội tụ về k cụm khi không còn thay đổi hoặc sự thay đổi
là rất nhỏ trong cấu trúc các cụm (biểu diễn bằng ma trận phân hoạch).
Thường thì k-means được dùng để gom cụm cho các biến liên tục do có thể dễ dàng tính
được khoảng cách từ điểm đến trọng tâm. Tuy nhiên, SSAS dùng k-means để gom cụm
biến rời rạc bằng cách sử dụng xác suất. Khoảng cách điểm đến cụm được tính bằng công
thức: 1 - P(data point, cluster)
K-means cũng được thực hiện dưới 2 phương pháp scalable và non-scalable như giải
thuật EM.
2.2.3 Cấu hình cho mô hình Gom cụm
Mô hình gom cụm hỗ trợ điều chỉnh một số thông số ảnh hưởng đến tốc độ và độ chính
xác của mô hình.
CLUSTERING_METHOD
1: Scalable EM
2: Non-scalable EM
3: Scalable K-Means
4: Non-scalable K-Means.
CLUSTER_COUNT
Số cụm xấp xỉ sẽ được tạo ra từ giải thuật. Nếu không thể đạt được con số này từ tập dữ
liệu thì giải thuật sẽ sinh ra thêm các cụm có thể có. Nếu đặt CLUSTER_COUNT = 0 thì
giải thuật sẽ dùng heuristics để xác định số cụm tối ưu. Mặc định là 10.
CLUSTER_SEED
Số điểm hạt giống dùng để phát sinh ngẫu nhiên các cụm khi bắt đầu quá trình xây dựng
mô hình. Thay đổi thông số này có thể làm thay đổi các cụm khởi đầu. Do đó, nếu ta thay
đổi số hạt giống mà các cụm được tìm thấy không có thay đổi nhiều thì mô hình được
xem là ổn định. Mặc định là= 0.
MINIMUM_SUPPORT
42
Số điểm tối thiểu để tạo thành một cụm. Cụm nào có ít hơn số này thì được xem như là
rỗng và bị loại. Nếu đặt số này quá cao ta có thể mất một số cụm phù hợp. Mặc định là 1.
MODELLING_CARDINALITY
Số mô hình mẫu được tạo trong quá trình gom cụm. Giảm thông số này có thể cải thiện
tốc độ nhưng có thể mất một số mô hình ứng cử viên tốt. Mặc định là 10.
STOPPING_TOLERANCE
Giá trị này xác định khi nào là đã đạt được sự hội tụ và thuật toán có thể ngừng. Giải
thuật được xem là đã hội tụ khi tổng thay đổi trong xác suất của các cụm nhỏ hơn tỉ số
của STOPPING_TOLERANCE và kích thước của mô hìnhparameter divided by the size
of the model. Mặc định là 10.
SAMPLE_SIZE
Số trường hợp mà giải thuật dùng trong mỗi lần lặp nếu CLUSTERING_METHOD được
cài là scalable. Nếu bằng 0 thì mỗi lần lặp sẽ dùng toàn bộ tập dữ liệu. Mặc định là
50000.
MAXIMUM_INPUT_ATTRIBUTES
Số lượng thuộc tính đầu vào mà giải thuật có thể xử lý trước khi nó phải dùng feature
selection. Nếu bằng 0 thì không có giới hạn tối đa cho số lượng thuộc tính. Nếu tăng số
này thì sẽ ảnh hưởng lớn đến tốc độ. Mặc định là 255.
MAXIMUM_STATES
Số trạng thái tối đa của thuộc tính mà giải thuật hỗ trợ. Nếu một thuộc tính có nhiều trạng
thái hơn số này, giải thuật sẽ dùng các trạng thái phổ biến và bỏ qua các trạng thái còn
lại. Nếu tăng số này thì sẽ ảnh hưởng lớn đến tốc độ. Mặc định là 100.
2.3 Giải thuật Cây quyết định
2.3.1 Sơ lược về giải thuật
Giải thuật Cây quyết định trong SSAS là một giải thuật phân lớp và hồi quy dùng trong
mô hình dự đoán các biến rời rạc cũng như liên tục.
42
Với thuộc tính rời rạc, giải thuật dựa trên quan hệ giữa các thuộc tính đầu vào để dự
đoán. Với thuộc tính liên tục, GT dùng hồi quy tuyến tính để xác định khi nào sẽ rẽ nhánh
cây quyết định.
Nếu có nhiều thuộc tính dự đoán thì mỗi thuộc tính sẽ có một cây trong kết quả.
2.3.2 Hiện thực giải thuật
Giải thuật Cây quyết định trong SSAS áp dụng tiếp cận Bayesian để học các mô hình
tương tác nhân quả bằng cách tính các phân bố xấp xỉ hậu nghiệm (posterior) cho mô
hình (tham khảo [5]). GT dùng các phương pháp khác nhau để tính cây tốt nhất. Các
phương pháp sẽ tùy thuộc vào loại tác vụ, và có thể là hồi quy tuyến tính, phân loại hay
phân tích kết hợp. Một mô hình có thể chứa vài cây quyết định cho các thuộc tính dự
đoán khác nhau. Hơn nữa, mỗi cây còn có thể chứa nhiều nhánh tùy thuộc vào số thuộc
tính và trạng thái có trong dữ liệu. Dạng và độ sâu của cây phụ thuộc vào phương pháp
cho điểm và các thông số cài đặt. Các thay đổi thông số có thể làm thay đổi node rẽ
nhánh.
Cây được tạo nên từ xác định liên quan giữa các thuộc tính input và thuộc tính quyết
định. Sau khi đã xác định các mối tương quan, GT sẽ tìm ra 1 thuộc tính có khả năng
phân loại kết quả cao nhất. Thuộc tính này được xác định bằng phương trình độ lợi thông
tin. Thuộc tính có độ lợi thông tin cao nhất sẽ được chọn để tách các trường hợp thành
các tập con. Sau đó sẽ lặp đệ quy đến khi nào không thể chia cây nhỏ hơn.
2.3.3 Cấu hình cho mô hình
COMPLEXITY_PENALTY
Kiểm soát mức độ tăng trưởng của cây quyết định. Nếu giá trị này thấp thì sẽ tăng số
lượng rẽ nhánh, nếu cao thì sẽ giảm rẽ nhánh. Giá trị mặc định phụ thuộc vào số lượng
thuộc tính như sau:
- Từ 1 đến 9 thuộc tính, mặc định là 0.5
- Từ 10 đến 99 thuộc tính, mặc định là 0.9
- Từ 100 trở lện, mặc định là 0.99
FORCE_REGRESSOR
Buộc GT dùng các cột chỉ định làm hồi quy bất kể độ quan trọng của cột tính bởi GT. Chỉ
dùng cho cây dự đoán thuộc tính liên tục.
42
MAXIMUM_INPUT_ATTRIBUTES
Số lượng thuộc tính đầu vào mà giải thuật có thể xử lý trước khi nó phải dùng feature
selection. Mặc định là 255. Đặt bằng 0 để tắt feature selection.
MAXIMUM_OUTPUT_ATTRIBUTES
Số lượng thuộc tính đầu ra mà giải thuật có thể xử lý trước khi nó phải dùng feature
selection. Mặc định là 255. Đặt bằng 0 để tắt feature selection.
MINIMUM_SUPPORT
Số node lá nhỏ nhất cần để phát sinh 1 rẽ nhánh trong cây. Mặc định là 10. Có thể phải
tăng số này nếu tập dữ liệu rất lớn để tránh huấn luyện thừa.
SCORE_METHOD
Phương pháp dùng để tính điểm rẽ nhánh.
1: Entropy
3: Bayesian with K2 Prior
4[mặc định]: Bayesian Dirichlet Equivalent (BDE) with uniform prior
SPLIT_METHOD
Phương pháp dùng để rẽ nhánh
1: Binary – rẽ cây thành 2 nhánh bất kể số giá trị của thuộc tính.
2: Complete – có thể rẽ bao nhiêu nhánh cũng được tùy vào số giá trị của thuộc tính.
3[mặc định]: Both – SSAS có thể chọn một trong hai để cho ra kết quả tốt nhất.
2.4 Giải thuật Naive Bayes
2.4.1 Sơ lược về giải thuật
Giải thuật Naive Bayes tính xác suất cho mỗi trạng thái có thể có của thuộc tính đầu vào.
Sau đó dùng các xác suất này để dự đoán thuộc tính mục tiêu. Do giải thuật này đơn giản
nên nó xây dựng mô hình rất nhanh. Có thể dùng giải thuật này làm điểm khởi đầu cho
công việc dự đoán. Giải thuật Naive Bayes không hỗ trợ các thuộc tính liên tục.
42
2.5 Giải thuật Hồi quy tuyến tính
2.5.1 Sơ lược về giải thuật
Giải thuật hồi quy tuyến tính chỉ dự đoán các biến liên tục dùng một công thức hồi quy
tuyến tính duy nhất. Các biến đầu vào cũng phải là liên tục. Hồi quy tuyến tính là một
trường hợp đơn giản của cây hồi quy nhưng nó là một cây không phân tách.
2.6 Giải thuật Hồi quy logic
2.6.1 Sơ lược về giải thuật
Cũng như giải thuật hồi quy tuyến tính là một cây hồi quy đơn giản, giải thuật hồi quy
logic là một mạng nơron không có lớp ẩn.
2.7 Giải thuật Neural Network
2.7.1 Sơ lược về giải thuật
Giải thuật mạng nơron (Neural Network) xuất phát từ nghiên cứu trí tuệ nhân tạo. Ta
cũng có thể dùng giải thuật này để dự đoán. Các giải thuật mạng nơron tìm các phụ thuộc
hàm không tuyến tính. Chúng thực hiện chuyển đổi không tuyến tính cho dữ liệu trong
các lớp, từ lớp input qua các lớp ẩn cho đến lớp output. Bởi vì khó biên dịch hơn so với
các giải thuật tuyến tính khác như cây quyết định, các giải thuật mạng nơron không được
dùng nhiều trong thực tế như những giải thuật tìm phụ thuộc tuyến tính, chẳng hạn các
cây hồi quy diễn tả các biến phụ thuộc như là một hàm tuyến tính của các biến không phụ
thuộc.
2.8 Giải thuật Gom cụm dãy
2.8.1 Sơ lược về giải thuật
Giải thuật gom cụm dãy (Sequence Clustering) tìm các cụm dựa trên một mô hình chứ
không phải dựa trên sự tương tự của các trường hợp. Nó xây dựng mô hình từ các chuỗi
sự kiện bằng cách dùng Markov Chains (sơ đồ chuyển trạng thái Markov). Ví dụ thông
thường nhất cho ứng dụng của giải thuật này là phân tích tình hình sử dụng của một web
site.
2.9 Giải thuật Chuỗi thời gian
2.9.1 Sơ lược về giải thuật
Giải thuật Time Series dùng để dự đoán các biến liên tục. Bên trong giải thuật này có sử
dụng hai giải thuật khác nhau. Đối với dự đoán ngắn hạn, giải thuật dùng các cây
42
regression trên dữ liệu tự động biến đổi gọi là Auto-Regression Tree (ART). Đối với dự
đoán dài hạn, Time Series dùng giải thuật Auto-Regressive Integrated Moving Average
(ARIMA). Có thể chọn tỷ lệ sử dụng các giải thuật bằng cấu hình tham số cho mô hình.
3. Cách sử dụng SSAS 2012 và các giải thuật để khai phá dữ liệu
Để học cách sử dụng SSAS thực hiện khai phá dữ liệu, ta sử dụng giáo trình của
Microsoft sẵn có trên MSDN. Trong bài thu hoạch này, người viết thử dùng phiên bản
mới nhất hiện nay là SQL Server 2012 SP1. Để thực hiện chương trình này, cần phải cài
đặt:
- SQL Server 2012 SP1 (lưu ý cần phải cài đặt Visual Studio 2010 SP1 trước)
- AdventureWorksDW2012 database, download từ
Lưu ý khi attach
DB cần cấp quyền Full Control cho SQL service account trên file
AdventureWorksDW2012_Data.mdf
Tình huống đặt ra như sau: công ty sản xuất xe đạp Adventure Works Cycles muốn áp
dụng công cụ KPDL để khám phá những thông tin hữu ích về những người mua xe. Và
họ muốn bạn dự đoán những khách hàng sẽ mua sản phẩm của họ trong tương lai.
Để thiết kế ứng dụng này trong SSAS 2012, ta thực hiện các bước sau:
3.1 Chuẩn bị Analysis Services database
3.1.1 Tạo Analysis Services project
Tạo SQL Server Analysis Services project trong SQL Server Data Tools (SSDT) dựa
theo mẫu Analysis Services project cho mô hình dữ liệu đa chiều và KPDL.
Mỗi Analysis Services project định nghĩa đối tượng trong một Analysis Services database
duy nhất. Analysis Services database chứa các cấu trúc KPDL và mô hình KPDL, các mô
hình đa chiều (cube) và các đối tượng bổ trợ như Data Source, Data Source View.
42
3.1.2 Định nghĩa Data Source
Một Data Source là một kết nối đến dữ liệu, được lưu và quản lý trong Analysis Services
project. Data Source bao gồm tên server và tên database chứa dữ liệu mà ta cần dùng.
3.1.3 Định nghĩa Data Source View
Data Source View là một khung nhìn của metadata từ các table hay view của Data
Source.
42
3.2 Tạo cấu trúc KPDL
Trong bước này ta sẽ thiết lập một cấu trúc trong đó có chứa một mô hình cây quyết định
trên Data Source View “Targeted Mailing” tạo ra trong bước trước. Có nhiều khái niệm
quan trọng của phương pháp KPDL dùng SSAS sẽ được trình bày trong phần này.
3.2.1 Tạo cấu trúc cho mô hình KPDL
Để tạo cấu trúc, ta cần chọn các table hoặc view, và xác định cột nào dùng cho huấn
luyện, cột nào cho thử nghiệm.
Bảng vTargetMail được chọn làm bảng các trường hợp (Case table). Sau khi chọn bảng
case xong, ta cần chỉ định dữ liệu huấn luyện cho mô hình. Cần chọn ít nhất một cột dự
đoán, một cột khóa, và một cột input cho mô hình.
42
Ta chọn BikeBuyer làm thuộc tính dự đoán. Khi ít nhất một cột được chọn là cột dự
đoán, ta có thể click vào nút Suggest để SSAS giúp chọn những cột INPUT có liên quan
nhiều nhất đến thuộc tính dự đoán và danh sách những cột này được sắp xếp theo mức độ
liên quan giảm dần. Những cột có độ liên quan đáng kể sẽ tự động được chọn để đưa vào
mô hình.
Trong mô hình này, ta không sử dụng đề nghị của SQL mà sẽ chọn những thuộc tính sau
làm input: Age; CommuteDistance; EnglishEducation; EnglishOccupation; Gender;
GeographyKey; HouseOwnerFlag; MaritalStatus; NumberCarsOwned;
NumberChildrenAtHome; Region; TotalChildren; YearlyIncome.
Khóa của bảng lấy từ Data Source View sẽ được tự động chọn cho mô hình.
42
Có thể chọn thêm các cột khác dùng các checkbox bên trái. Các cột này sẽ được đưa vào
cấu trúc, nhưng không tham gia vào mô hình. Chúng sẽ được dùng sau khi mô hình được
xây dựng để người dùng có thể truy vấn (drillthrough) và thử nghiệm.
3.2.2 Data Type và Content Type
Khi tạo mô hình, ta phải định nghĩa kiểu dữ liệu cho từng cột. Kiểu dữ liệu (data type)
cho biết dữ liệu là số hay văn bản, để chương trình biết cách xử lý dữ liệu của cột tương
ứng.
Mỗi kiểu dữ liệu hỗ trợ một hoặc một số kiểu nội dung (content type). Kiểu nội dung cho
chương trình biết cách xử lý tính toán trên dữ liệu. Ví dụ với một cột chứa ngày trong
tuần thì nội dung của nó là lặp lại theo chu kỳ, ta có thể chọn content type cho nó là
“Cyclical”.
Column Content Type Data Type
Address Line1 Discrete Text
Address Line2 Discrete Text
Age Continuous Long
Bike Buyer Discrete Long
Commute Distance Discrete Text
CustomerKey Key Long
DateLastPurchase Continuous Date
Email Address Discrete Text
English Education Discrete Text
English Occupation Discrete Text
FirstName Discrete Text
Gender Discrete Text
Geography Key Discrete Text
House Owner Flag Discrete Text
Last Name Discrete Text
Marital Status Discrete Text
Number Cars Owned Discrete Long
Number Children At Home Discrete Long
42
Region Discrete Text
Total Children Discrete Long
Yearly Income Continuous Double
3.2.3 Dữ liệu thử nghiệm
Ở bước gần cuối của quy trình tạo cấu trúc KPDL này, ta sẽ chia tập dữ liệu hiện có
thành hai phần: huấn luyện và thử nghiệm. Việc phân chia này là cần thiết để đánh giá độ
chính xác của mô hình. Thông thường, phần lớn dữ liệu sẽ được dùng cho huấn luyện, và
chỉ một phần nhỏ dùng cho thử nghiệm. Mặc định SSAS chọn 30% dữ liệu để thử
nghiệm. Tập dữ liệu huấn luyện là dùng để tạo mô hình KPDL, còn tập thử nghiệm là để
kiểm tra độ chính xác của mô hình. SSAS lấy mẫu dữ liệu một cách ngẫu nhiên để bảo
đảm hai tập dữ liệu là tương tự nhau.
Sau khi mô hình đã được xử lý xong dùng tập dữ liệu huấn luyện, ta sẽ kiểm tra mô hình
bằng cách thực hiện các dự đoán trên tập dữ liệu thử nghiệm. Bởi vì tập dữ liệu thử
nghiệm có chứa giá trị của các cột dự đoán, nên ta có thể biết được mô hình dự đoán
đúng hay sai.
3.3 Thêm và xử lý các mô hình
Ta đã có một mô hình Cây quyết định trong cấu trúc. Trong phần này, ta sẽ thêm vào cấu
trúc hai mô hình nữa là Gom cụm và Naive Bayes. Mô hình Cây quyết định có thể dùng
để xác định khách hàng cho chiến dịch marketing bằng thư trực tiếp. Tuy nhiên, để bảo
đảm kết quả phân tích là hợp lý thì phải tạo thêm các mô hình liên quan dùng những thuật
toán khác nhau và so sánh. Bằng cách này ta có thể có nhiều góc nhìn hơn vào bên trong
42
dữ liệu. Sau khi tạo thêm 2 mô hình này, chúng ta sẽ thực hiện xử lý và triển khai mô
hình.
Cấu trúc và các mô hình sau khi thêm 2 giải thuật Gom cụm và Naive Bayes:
Giá trị của HoldoutSeed sau đây được gán là 12. Thực ra con số này sẽ được sinh ra ngẫu
nhiên khi triển khai mô hình, dựa trên số ngẫu nhiên này mà dữ liệu sẽ được phân chia
vào tập huấn luyện và tập thử nghiệm. Việc gán cố định chỉ nhằm để dữ liệu được phân
42
phối giống nhau trong mỗi lần xử lý mô hình. Các hình kế tiếp là bước xử lý cấu trúc và
tất cả các mô hình của nó.