Các cơng cụ cĩ thể ứng dụng KPDL với SQL Server gồm:
- SQL Server Business Intelligence Development Studio: đƣợc tích hợp sẵn
trong Microsoft Visual Studio 2008.
- Bộ cơng cụ SQL Server 2008 (Analysis Service): ứng dụng hỗ trợ lƣu trữ dữ
liệu và phân tích dữ liệu.
Các thuật tốn ứng dụng trong quá trình KPDL đƣợc hỗ trợ sẵn trong SQL Server:
Microsoft khi phát triển SQL Server 2008 Analysis Services, họ đã hồn thiện các thuật tốn thƣờng sử dụng trong DataMining một cách hồn chỉnh nhất so với SQL Server 2000 Analysis Services, bao gồm: MS (Microsoft) Decision Tree, MS Clustering, MS Nạve Bayes, MS Time Series, MS Association Rules, MS Sequence Clustering, MS Neural Network, MS Linear Regression, MS Logistic Regression.
Lựa chọn đúng thuật tốn để sử dụng trong một nhiệm vụ cĩ thể coi là một thách thức. Thƣờng thì dựa vào kinh nghiệm là chính. Trong khi ta cĩ thể sử dụng các thuật tốn khác nhau để thực hiện những cơng việc giống nhau, mỗi thuật tốn đƣa ra những kết quả khác nhau, và một vài thuật tốn cĩ thể sẽ đƣa ra nhiều hơn một loại kết quả. Ví dụ nhƣ, cĩ thể sử dụng thuật tốn Microsoft Decision Trees khơng những để dự đốn mà cịn để làm giảm bớt số cột trong dataset, bởi Decision Trees cĩ thể xác định các cột khơng ảnh hƣởng đến mơ hình khai phá cuối cùng.
Để giúp việc lựa chọn thuật tốn cho giải pháp KPDL ta thƣờng dựa trên bảng 2.4: Bảng 2.4: Lựa chọn các thuật tốn KPDL theo mục đích [5]
Nhiệm vụ Thuật tốn Microsoft sử dụng
Dự đốn một thuộc tính rời rạc
Ví dụ dự đốn ngƣời nhận thƣ của mục tiêu chiến dịch nhận thƣ sẽ mua sản phẩm.
Microsoft Decision Trees Algorithm Microsoft Naive Bayes Algorithm Microsoft Clustering Algorithm Microsoft Neural Network Algorithm
Dự đốn một thuộc tính liên tục
Ví dụ nhƣ dự báo bán hàng năm sau
Microsoft Decision Trees Algorithm Microsoft Time Series Algorithm
Ví dụ thi hành một phân tích clickstream của một trang web cơng ty
Tìm nhĩm của những mục chọn trong các giao dịch
Ví dụ sử dụng phân tích giỏ thị trường
để giới thiệu thêm những sản phẩm để khách hàng mua
Microsoft Association Rules Algorithm Microsoft Decision Trees Algorithm
Tìm những mục giống nhau
Ví dụ để phân đoạn các dữ liệu nhân khẩu học vào một nhĩm để nhận thức dễ dàng mối quan hệ giữa các thuộc tính
Microsoft Clustering Algorithm
Microsoft Sequence Clustering Algorithm
2.3.2. Ngơn ngữ truy vấn KPDL DMX (Data Mining Extensions)
DMX lần đầu tiên đƣợc giới thiệu trong DB OLE bởi Microsoft vào năm 1999. Mục đích của DMX là định nghĩa các khái niệm phổ biến và cách diễn đạt truy vấn phổ biến cho thế giới KPDL, tƣơng tự nhƣ cái mà SQL đã làm với cơ sở dữ liệu. Ngơn ngữ này đƣợc diễn đạt và thiết kế dễ hiểu. Bởi vì DMX đã đƣợc thiết kế tƣơng tự nhƣ SQL, cấu trúc và các mơ hình là rất giống việc tạo ra các bảng SQL. Cú pháp đơn giản hơn nhiều vì cĩ ít lựa chọn hơn, và cĩ một số tính năng bổ sung, nhƣng bất cứ ai quen thuộc với SQL sẽ dễ dàng điều chỉnh cú pháp DMX.
Sử dụng ngơn ngữ truy vấn DMX làm trung gian: tƣơng tự nhƣ các câu Query trong SQL, cĩ thêm một số các khái niệm cơ bản trong việc truy vấn tới dịch vụ phân tích dữ liệu:
- Bao gồm các khái niệm: Structure, model (mơ hình dữ liệu), key, attribute, state, case key.
- Cú pháp truy vấn DMX (DMX Query Synax): Những tốn tử cơ bản: CREATE, INSERT INTO, PREDICTION JOIN, SELECT, DELETE FROM, và DROP.
Mining Structure đƣợ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ần đƣợc xử lý, về cơ bản, nếu chúng là
categorical (thuộc tính rời rạc) hoặc continues (Thuộc tính liên tục). Các cột trong một cấu trúc khai phá khơng đại diện cho thuộc tính, chúng chỉ đơn giản là các cột của dữ liệu mà sẽ cĩ sẵn khi tạo ra các mơ hình.
Mining Models: là đối tƣợng mà biến đổi dịng dữ liệu vào Case và thực hiện các
cách sử dụng một thuật tốn KPDL đã chỉ định. Mining Models đƣợ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 sẽ đƣợc sử dụng nhƣ là thuộc tính (cho
dù chúng là đầu vào, đầu ra, hoặc cả hai), cùng với thuật tốn và các thơng số thuật tốn sẽ đƣợc sử dụng để thực hiện trên cấu trúc dữ liệu.
Thuộc tính (Attribute): Phần cơ bản nhất của một truy vấn KPDL là thuộc tính.
Ví dụ nhƣ giới tính một khách hàng, tuổi tác, hoặc tình trạng hơn nhân; khối lƣợng, hoặc màu của một loại sản phẩm…
Khi lựa chọn thuộc tính cho KPDL, ta nên cẩn thận để lựa chọn thuộc tính cĩ khả năng cĩ liên quan đến truy vấn và cung cấp thơng tin cĩ thể đƣợc sử dụng bởi các thuật tốn KPDL. Nhiều thuộc tính khơng phải là thích hợp cho việc KPDL.
Cĩ hai loại thuộc tính:
- Thuộc tính rời rạc (Categorical) thuộc tính cĩ một số thiết lập của các giá trị (nhƣ là nam hay nữ, hoặc mã bƣu điện).
- Thuộc tính liên tục (Continous) định nghĩa bởi các số.
Trạng thái (State): Một thuộc tính „Hơn Nhân‟ cĩ thể cĩ những trạng thái „Kết
Hơn‟ và „Độc thân‟. Nĩ cĩ thể cũng cĩ các trạng thái khác nhƣ: „Chia Tay‟,‟Ly Thân‟... Một thuật tốn KPDL sẽ coi mỗi trạng thái nhƣ nhau và sẽ khơng hiểu ngụ ý bất kỳ mối quan hệ giữa chúng. Ví dụ, ở đây tình trạng hơn nhân là „Ly hơn‟ cũng là đồng nghĩa với „Độc thân‟. Tƣơng tự nhƣ vậy, nĩ sẽ khơng hiểu rằng „Ly thân‟ cũng là „Độc thân‟.
Trƣờng hợp (Case): Các „Case’ hay kịch bản DMX là một ví dụ đơn lẻ mà ta
cung cấp thuật tốn để KPDL. Nĩ bao gồm một bộ những giá trị. Việc xác định các trƣờng hợp đầu vào, các tình huống đầu vào khơng chính xác sẽ dẫn tới kết quả sai và khơng đƣợc nhƣ ý.
Trong tình huống đơn giản nhất (hầu hết các tình huống thực tế), một „Case‟ đƣợc đại diện bởi một hàng trong bảng, với các cột đại diện cho bảng thuộc tính. Trong thực tế, đại đa số các vấn đề KPDL cĩ dạng nà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à case-level attribute) và nhiều bảng giao dịch (hoặc
nested tables) cĩ chứa các nested attributes.
Các lệnh truy vấn DMX:
Tạo cấu trúc khai phá (Creating Mining Structure)
CREATE MINING STRUCTURE [People1] ( [CustID] LONG KEY, [Name] TEXT DISCRETE, [Gender] TEXT DISCRETE, [Age] LONG CONTINUOUS, [CarMake] TEXT DISCRETE, [CarModel] TEXT DISCRETE )
Tạo MINING STRUCTURE tên là People1, với các cột CustID, Name, Gender, Age, CarMake, và CarModel. Cột CustID là khĩa của cấu trúc và CustID và Age là kiểu Long, trong khi các cột cịn lại là chuỗi (kiểu Text).
Bảng lồng bảng (Nested table)
CREATE MINING STRUCTURE [People3] (
[CustID] LONG KEY, [Name] TEXT DISCRETE, [Gender] TEXT DISCRETE, [Age] LONG CONTINUOUS,
[AgeDisc] LONG DISCRETIZED(EQUALAREAS,3), [CarMake] TEXT DISCRETE,
[CarModel] TEXT DISCRETE, [Purchases] TABLE
(
[Product] TEXT KEY,
[Quantity] LONG CONTINUOUS, [OnSale] BOOLEAN DISCRETE ) ,
[Movie Ratings] TABLE (
[Movie] TEXT KEY,
[Rating] LONG CONTINUOUS )
)
Tạo mẫu khai phá (Creating Mining Models)
ALTER MINING STRUCTURE [People2]
ADD MINING MODEL [PredictGender-Tree] (
[CustID],
[Gender] PREDICT, [Age],
[CarModel]
Bộ lọc (Filters)
Sau khi một cấu trúc đƣợc xử lý, cĩ thể truy vấn cấu trúc này để tìm những thứ cần tìm.
// (a) Select all cases
SELECT * FROM MINING STRUCTURE People3.CASES // (b) Select cases as a flat rowset
SELECT FLATTENED * FROM MINING STRUCTURE People3.CASES // (c) Select only test cases
SELECT * FROM MINING STRUCTURE People3.CASES WHERE IsTestCase()
Truy xuất các kết quả (Prediction Function)
DMX cung cấp nhiều hàm để truy xuất các luật và các kết quả của quá trình khai phá và phân tích, từ khĩa Predict đƣợc sử dụng là cơ bản trong quá trình truy vấn. Trong nhiều trƣờng hợp khác thì ta cĩ thể cung cấp thêm nhiều tham số và tham trị để truy tìm ra kết quả mà mình mong muốn.
SELECT ‟Histogram‟ AS Label,
PredictHistogram(CarModel) AS Hist FROM FilterByAge
Trong quá trình Predict , DMX sử dụng từ khĩa FLATTENED để trả về các giá trị cĩ truy vấn tới các thuộc tính chúng ta quy định hơn là những giá trị mà chúng ta select trong bảng kết quả. Kết quả trả về ở trạng thái hàng dữ liệu nhƣng cĩ phân cấp, chia nhánh:
// (a)
SELECT FLATTENED
(SELECT CarModel FROM PredictHistogram(CarModel) WHERE $SUPPORT > 0) FROM FilterByAge
// (b)
SELECT FLATTENED
(SELECT $Probability FROM PredictHistogram(CarModel) WHERE CarModel=‟CRV‟) FROM FilterByAge
// (c)
SELECT FLATTENED
(SELECT CarModel, $Probability FROM TopCount(PredictHistogram(CarModel), $Probability, 1))
Ngồi ra cịn các hàm Predict khác nhƣ: PredictProbability, PredictSupport, PredictAdjustedProbability, PredictVariance và PredictStdevall trả về các kết quả nhƣ là trong quá trình phân tích:
SELECT (PredictProbability(Gender, ‟Female‟) > 0.20) AS IsFemale FROM [PredictGender-Bayes]
2.3.3. Bộ cơng cụ SQL Server Business Intelligence Development Studio
Business Intelligence Development Studio (BIDS) là cơng cụ cho phép tổ chức quản lý và khai thác kho dữ liệu (xử lý phân tích trực tuyến) cũng nhƣ xây dựng các mơ hình KPDL rất dễ sử dụng và hiệu quả của Microsoft. BIDS cho phép triển khai các mơ hình KPDL sau:
1) Micorosft Decision Tree (Cây quyết định) 2) Microsoft Clustering (Phân cụm)
3) Micorosoft Naive Bayes (Phân lớp với Bayes Rules) 4) Micorosoft Time Series (Chuỗi thời gian)
5) Micorosoft Association (Luật kết hợp)
6) Micorosoft Sequence Clustering (Phân tích chuỗi) 7) Micorosoft Neural Network (Mạng Neural)
8) Micorosoft Linear Regression (Hồi qui tuyến tính) 9) Micorosoft Logistics Regression (Hồi qui logistics)
Qui trình xây dựng mơ hình KPDL với BIDS nhƣ sau: [7]
1) Tạo mới 1 project (Analysis Services Project) 2) Tạo một Data Source
3) Tạo một Data Source View 4) Tạo một Mining Structure 5) Tạo các Mining Models 6) Khai thác Mining Models
7) Kiểm tra độ chính xác của Mining Models 8) Sử dụng Mining Models để dự đốn
2.3.4. Lập trình KPDL với Analysis Services APIs [8]
ADOMD.NET là một thƣ viện API dành cho các thành viên lập trình .NET lập
trình với dịch vụ phân tích (Analysis Services), làm cho việc xây dựng các ứng dụng KPDL ở máy khách trở nên dễ dàng hơn.
Để sử dụng đƣợc các API trong dịch vụ phân tích, ta cần thêm vào các DLL cần thiết. Microsoft đã cung cấp các gĩi DLL hỗ trợ việc kết nối và tƣơng tác với Analysis Services. Để sử dụng ADOMD.NET trong ứng dụng, ngƣời dùng thêm thƣ viện
Microsoft.analysisservices.adomdclient.dll vào project.
2.3.5 Đánh giá hiệu quả của các mơ hình KPDL
Để đánh giá hiệu quả của mơ hình KPDL, chúng ta cĩ thể căn cứ vào một số tiêu chí nhƣ tính chính xác, tính ổn định, tính hữu dụng. Trong đĩ, tính chính xác là tiêu chí đƣợc đánh giá đầu tiên bởi tầm quan trọng của nĩ đối với các DMM. Để đánh giá tính chính xác của các DMM ngƣời ta thƣờng căn cứ vào 2 cơng cụ là Classification Matrix và Lift Chart. Trong khi Classification Matrix biểu diễn kết quả dự đốn của DMM dƣới dạng ma trận so sánh giữa kết quả dự đốn của mơ hình với kết quả thực sự của Testing Data thì Lift Chart cho phép mơ tả tính chính xác DMM dƣới dạng trực quan, và cung cấp nhiều thơng tin về kết quả của nhiều DMM hơn cùng lúc, giúp ta so sánh và chọn ra mơ hình tốt nhất dễ dàng hơn. Vì Lift Chart chỉ sử dụng cho các DMM dự đốn các giá trị rời rạc của biến dự đốn, nên rất thích hợp trong bài tốn tƣ vấn học tập vì giá trị dự báo (Ketqua) chỉ là XS (Xuất sắc), G (Giỏi), K (Khá) hoặc TB (Trung bình).
Trong luận văn, hiệu quả của các mơ hình DMM đã xây dựng sẽ đƣợc đánh giá thơng qua hai phƣơng pháp: Lift Chart và Classification Matrix, là hai cơng cụ hỗ trợ sẵn của BIDS. Mục tiêu của luận văn là xác định xem mơ hình nào cho phần trăm dự báo chính xác cao nhất trong việc dự báo kết quả học tập của sinh viên.
2.4. Kết luận chƣơng 2
Chƣơng 2 trình bày một số khái niệm cơ bản và các kiến thức cĩ liên quan về các thuật tốn thƣờng đƣợc áp dụng trong KPDL ở dạng phân lớp, dự báo đĩ là: cây quyết định, mạng nơron nhân tạo, phân lớp Nạve Bayes và luật kết hợp. Đây là 04 phƣơng pháp thƣờng xuyên đƣợc áp dụng để dự đốn giá trị của các thuộc tính rời rạc, rất phù hợp cho việc áp dụng vào mơ hình bài tốn tƣ vấn học tập sau này khi thuộc tính dự báo là kết quả học tập của sinh viên cũng là thuộc tính rời rạc (nhận 04 giá trị: xuất sắc, giỏi, khá và trung bình).
Ngồi ra, trong chƣơng 2 cịn đề cập đến kỹ thuật KPDL với hệ quản trị CSDL SQL Server 2008 thơng qua việc sử dụng bộ cơng cụ BIDS của Microsoft cùng ngơn ngữ truy vấn KPDL DMX và các kỹ thuật lập trình KPDL trên máy client với Analysis Services APIs. Đây cũng chính là các kỹ thuật sẽ sử dụng để xây dựng hệ thống tƣ vấn học tập ở chƣơng 3 của luận văn.
Chƣơng 3.Phƣơng pháp giải quyết bài tốn
Theo định hƣớng bài tốn đã đƣợc trình bày trong chƣơng 1, để giải quyết bài tốn: Xây dựng hệ thống tư vấn học tập, luận văn đã tìm hiểu các thơng tin về dữ liệu điểm tại trƣờng ĐHCNHN đồng thời tiến hành phân tích dữ liệu và lựa chọn hệ quản trị cơ sở dữ liệu SQL Server 2008 cùng bộ cơng cụ BI để giải quyết các yêu cầu đặt ra.
3.1.Tìm hiểu và thu thập dữ liệu điểm
Luận văn sử dụng dữ liệu điểm của sinh viên hệ đại học, thuộc 21 chuyên ngành. Trƣờng ĐHCNHN đã thực hiện đào tạo theo hình thức tín chỉ. Quy định về việc đánh giá xếp loại nhƣ sau:
+ Khối lƣợng kiến thức tích đƣợc đánh giá theo thang điểm chữ A, B, C, D đƣợc chuyển thành điểm chữ nhƣ sau: Loại đạt: gồm: Giỏi A (8,5 - 10), Khá B (7,0 - 8,4), Trung bình C (5,5 - 6,9), Trung bình yếu D (4,0 - 5,4). Loại khơng đạt: Kém F (dƣới 4,0). Sinh viên cĩ học phần bắt buộc bị điểm F phải đăng ký học lại học phần đĩ ở một trong các học kỳ tiếp theo cho đến khi đạt điểm A, B, C hoặc D.
+ Hạng tốt nghiệp đƣợc xác định theo điểm trung bình chung tích lũy của tồn khĩa học, nhƣ sau: loại Xuất sắc: từ 3,6 đến 4; loại Giỏi: từ 3,2 đến 3,59; loại Khá: từ 2,5 đến 3,19; loại Trung bình: từ 2 đến 2,49.
Nguồn dữ liệu cho việc khai phá nhằm dự đốn kết quả học tập của sinh viên theo lộ trình lựa chọn sẽ đƣợc thu thập từ nhiều nguồn dữ liệu khác nhau.
+ Hồ sơ cá nhân của sinh viên đã nộp vào trƣờng để dự tuyển đƣợc lƣu tại hệ thống dữ liệu tuyển sinh bao gồm các thơng tin nhƣ họ tên, ngày sinh, nơi sinh, giới tính, dân tộc, khu vực, điểm ƣu tiên.... (Bảng diemtongketK6)
+ Dữ liệu từ kết quả thi tuyển nhƣ số báo danh, khối thi, ngành chọn thi, điểm thi các mơn, điểm ƣu tiên, kết quả (đỗ, trƣợt). (Bảng diemtongketK6)
+ Dữ liệu kết quả học tập: từng học phần của từng kỳ và tồn khố học của mỗi sinh viên gồm mã sinh viên, ngành học, mơn học, kết quả ... (Bảng MarkListK6)
+ Dữ liệu về chƣơng trình học của các ngành học nhƣ: mã ngành học, mã mơn học, học kỳ tổ chức mơn học (Bảng chuongtrinh) và dữ liệu về các mơn học (học phần) nhƣ: mã mơn học, tên mơn học, kiểu mơn học (tự chọn/bắt buộc), số tín chỉ … (Bảng