a. Bài toán thực tế
Chúng ta hãy bắt đầu phân tích một ví dụ khá đặc trưng về khai phá mẫu phổ biến, đó là phân tích giỏ hàng thương mại trong CSDL giao dịch về lịch sử bán hàng tại siêu thị. Việc phát hiện ra mối tương quan trong một số lượng lớn các bản ghi về giao dịch thương mại được thu thập và lưu trữ hàng ngày giúp hỗ trợ tiến trình đưa ra quyết định của nhiều doanh nghiệp, như trong thiết kế mẫu hàng hóa, tiếp thị chéo và phân tích thói quen mua sắm của khách hàng. Khám phá những mối quan hệ như vậy có thể giúp những người bán lẻ phát triển các chiến lược tiếp thị bằng cách tiếp cận một cách thấu đáo các danh mục mặt hàng được khách hàng mua thường xuyên.
Và làm thế nào để biết được một khách hàng đang mua sữa, họ có khả năng sẽ mua bánh mỳ trong cùng một lần đến siêu thị? Thông tin này có thể làm tăng doanh thu của cửa hàng bán lẻ bằng cách giúp những nhà bán lẻ tiếp thị các mặt hàng một cách chọn lọc và lên kế hoạch trưng bầy sản phẩm ở những vị trí thích hợp.
Giả sử bạn là giám đốc một siêu thị, bạn sẽ muốn tìm hiểu về thói quen mua sắm của khách hàng của bạn. Bạn tự hỏi: “Đâu là những mặt hàng, những nhóm mặt hàng mà các khách hàng thương xuyên mua cùng nhau trong một chuyến đi đến siêu thị?”. Để trả lời câu hỏi, việc phân tích giỏ hàng được thực hiện trên dữ liệu bán lẻ của những giao dịch khách hàng tại quầy hàng của bạn. Bạn có thể sử dụng kết quả này để xây dựng kế hoạch, chiến lược cho tiếp thị hoặc quảng cáo hoặc thiết kế một catalog mới. Trường hợp khác, việc phân tích giỏ hàng giúp bạn bài trí hàng hóa cho quầy hàng. Trong chiến lược tiếp thị bán hàng, các mặt hàng thường xuyên mua cùng nhau thì đặt gần vị trí với nhau, để khuyến khích việc mua các mặt hàng trong cùng một nhóm hàng. Nếu khách hàng mua một chiếc máy giặt thì tại thời điểm đó họ cũng quan tâm đến xà phòng giặt máy, do đó việc đặt mặt hàng bột giặt gần mặt hàng máy giặt, sẽ làm tăng doanh số bán hàng của cả hai mục hàng này.
22
Như vậy, có thể kết luận rằng, khai phá mẫu phổ biến là quá trình tìm kiếm mối quan hệ tuần hoàn, lặp đi lặp lại trong một cơ sở dữ liệu.
Từ ví dụ trên, thông tin khách hàng mua máy giặt thì cũng có xu hướng mua xà phòng giặt máy tại cùng một thời điểm được mô tả trong luật kết hợp dưới đây:
Máy giặt => Xà phòng giặt [độhỗtrợ= 2%, độtin cậy = 60%]
Độ hỗ trợ (support) và độ tin cậy (confidence) là hai độ đo hấp dẫn của luật. Chúng lần lượt phản ánh sự hữu ích và độ chắc chắn của luật khai phá. Độ hỗ trợ bằng 2% có nghĩa là theo phân tích cho thấy: 2% trong những giao dịch, máy giặt và xà phòng được mua cùng nhau. Độ tin cậy bằng 60% có nghĩa là trong các giao dịch, nếu khách hàng mua máy giặt thì cũng mua xà phòng giặt máy. Thông thường những luật kết hợp được xét đến nếu chúng thỏa mãn cả ngưỡng hỗ trợ tối thiểu (minimum support threshold) và ngưỡng tin cậy tối thiểu (minimum confidence threshold).
b. Khái niệm luật kết hợp
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng lớn dữ liệu. Nội dung cơ bản của luật kết hợp được tóm tắt như dưới đây [14].
Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …, tn.
T = {t1, t2, …, tn}. T gọi là cơ sở dữ liệu giao dịch (Transaction Database)
Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im}. Một itemset gồm k items gọi là k-itemset
Mục đích của luật kết hợp là tìm ra sự kết hợp (association) hay tương quan (correlation) giữa các items. Những luật kết hợp này có dạng X =>Y
Trong Basket Analysis, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. (X và Y gọi là itemset). Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian.
Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable)
23
Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa là 5% các giao dịch X và Y được mua cùng nhau.
Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X. Ví dụ độ tin cậy của luật kết hợp {Apple =>Banana} là 80% có nghĩa là 80% khách hàng mua Apple cũng mua Banana.
Để thu đƣợc các luật kết hợp, ta thƣờng áp dụng 2 tiêu chí: minimum support (min_sup) và minimum confidence (min_conf)
Các luật thỏa mãn có support và confidence thỏa mãn (lớn hơn hoặc bằng) cả Minimum support và Minimum confidence gọi là các luật mạnh (Strong Rle)
Minimum support và Minimum confidence gọi là các giá trị ngưỡng (threshold) và
phải xác định trước khi sinh các luật kết hợp.
c. Micorosoft Association (Luật kết hợp)
The Microsoft Association cũng thuộc về họ các thuộc toán tìm luật kết hợp theo thuật toán Apriori tức là việc tìm các luật kết hợp sẽ gồm hai pha chính là tìm tập các mục chọn thường xuyên sau đó dùng tập các mục chọn thường xuyên để sinh ra các luật kết hợp. Ngoài ra còn có một khái niệm quan trọng khác liên quan trực tiếp đến việc sử dụng thuật toán kết hợp Microsoft.
Độ quan trọng (I)
Độ quan trọng của một tập các mục chọn được định nghĩa như sau: I({A,B}) = P(A,B)/(P(A)*P(B))
Nếu I = 1 thì A và B là hai mục chọn độc lập. Từ việc mua sản phẩm A và việc mua sản phẩm B là hai sự kiện độc lập.
Nếu I<1 thì A và B có mối liên quan với nhau một cách tiêu cực. Tức là khi khách hàng mua sản phẩm A thì không có khả năng anh ta sẽ mua sản phẩm B.
Nếu I>1 thì A và B có mối liên quan với nhau một cách tích cực. Tức là khi khách hàng mua sản phẩm A thì khả năng anh ta sẽ mua sản phẩm B.
Trong thuật toán kết hợp Microsoft còn sử dụng khái niệm xác suất (Probability) thay cho độ tin cậy (Confidence).
24
Minimum_Support: là một tham số giới hạn. Nó xác định tần suất tối thiểu cho tập các mục chọn,nếu tập các mục chọn có tần suất lớn hơn hoặc bằng Minimum_Support thì tập đó là thường xuyên. Minimum_Support có miền giá trị từ 0 đến 1, giá trị mặc định của nó là 0.03. Nếu Minimum_Support được thiết lập với giá trị lơn hơn 1 lúc đo ta hiểu Minimum_Support chính là số lần xuất hiện của tập các mục chọn
Maximum_Support: là một tham số giới hạn. Nó xác định tần suất tối đa cho các mục chọn thường xuyên. Maximum_Support có miền giá trị từ 0 đến 1, giá trị mặc định là 0,03. Nếu Maximum_Support được thiết lập giá trị lớn hơn 1 lúc đó ta hiểu Maximum_Support chính là số lần xuất hiện của tập các mục chọn.
Minimum_Probability: là một tham số giới hạn. Nó xác định xác suất tối thiểu cho một luật kết hợp. Miền giá trị của nó từ 0 đến 1, giá trị mặc định là 0,04.
Minimum_Importance: là tham số giới hạn cho các luật kết hợp. Các luật với độ quan trọng nhỏ hơn Minimum_Importance sẽ bị loại.
Maximum_Itemset_Size: xác định kích thước tối đa của tập các mục chọn. Giá trị mặc định là 0, tức không có giới hạn về kích thước của tập các mục chọn
Minimum_Itemset_Size: xác định kích thước tối thiểu của tập các mục chọn. Giá trị mặc định là 0.
Maximum_Itemset_Count: xác định số lượng tối đa của tập các mục chọn. Nếu không được xác định giá trị, thuật toán sẽ sinh ra tất cả tập các mục chọn dựa vào tham số Minimum_Support.
Optimized_Prediction_Count: được sử dụng để số lượng các mục chọn để nghị cho việc dự báo được yêu cầu bởi các truy vấn. Giá trị mặc định là 2.
Kết luận
Trong chương này chúng tôi đã giới thiệu một số khái niệm, định nghĩa và kiến trúc của BI. Việc sử dụng và tổ chức dữ liệu đa chiều trong kho nhằm giúp cho việc phân tích dự đoán đặc trưng của doanh nghiệp/tổ chức hiệu quả hơn. Cùng với việc tích hợp một số kỹ thuật khai phá dữ liệu vào kho dữ liệu đã làm tăng tính khả dụng cũng như hiệu quả của công nghệ BI. Trong chương tiếp theo chúng tôi sẽ trình bày nội dung phân tích dựa trên BI trong bài toán thương mại điện tử.
25
Chƣơng 3. Ứng dụng BI Sql Server trong bài toán thƣơng mại điện tử 3.1. Bài toán thực tế và giải pháp giải quyết
Dữ liệu dùng trong luận văn là dữ liệu từ công ty chuyên bán DVD trực tuyến có phạm vi bán hàng trên 6 quốc gia khác nhau, doanh số mua bán của cửa hàng là lớn và ngày một mở rộng. Giám đốc công ty mong muốn khai thác dữ liệu hiện có của công ty một cách hữu ích phục vụ việc mở rộng thị trường và cho các chiến dịch tiếp thị quảng cáo. Chúng tôi đã sử dụng hệ thống BI Microsoft để hoàn thành nhiệm vụ dưới để đáp ứng yêu cầu:
Xây dựng kho dữ liệu
Xây dựng kho hướng chủ đề là giao dịch bán hàng. Xây dựng các báo cáo tổng hợp, báo cáo động Dự báo xu hướng
Dự đoán doanh số bán hàng cho năm tới như thế nào? Dự đoán xu hướng bán các loại sản phẩm khách nhau như thế nào theo thời gian trên mỗi quốc gia.
Phân tích giỏ hàng
Dự đoán các sản phẩm có thể sẽ được mua dựa trên các sản phẩm đã thực sự ở trong giỏ hàng của họ. Ngoài ra giám đốc công ty cũng muốn biết hành vi mua bán của khách hàng nhằm nâng cấp website ví dụ như đặt các sản phẩm thường được mua cùng nhau ở gần nhau.
3.2. Mô tả và chuyển đổi dữ liệu
Dữ liệu được lưu dưới dạng text file (.csv). Dữ liệu gồm có 20.000 khách hàng (Customer) với các thông tin đầy đủ, 10.000 sản phẩm (Product) thuộc 16 thể loại (Category) khác nhau, 16.000 hóa đơn (Order), 68.000 dòng hóa đơn (OrderLine)
Sau khi tiến hành chuẩn hóa các file dữ liệu dưới dạng text và chuyển hóa thành dữ liệu quan hệ chúng tôi đã có một bộ cơ sở dữ liệu quan hệ gồm có các bảng: Customers, Products, Categories, Orders, OrderLines
26
Hình 3.1. Cơ sở dữ liệu thương mại điện tử
3.3. Xây dựng kho dữ liệu
Một trong những công việc quan trọng trong thiết kế kho dữ liệu theo mô hình dữ liệu đa chiều là xác định các bảng sự kiện và các bảng chiều. Dựa trên nhu cầu khai thác thông tin của bài toán, chúng tôi xác định các bảng sự kiện và các bảng chiều trong kho dữ liệu dựa bài toán đặt ra với các phân tích như sau:
Một giao dịch mua bán luôn gắn liền với khách hàng, sản phẩm và thời gian. Doanh số bán hàng thay đổi theo thời gian.
Thể loại của sản phẩm ảnh hưởng như thế nào đến doanh số bán hàng? Doanh số bán hàng có sự chênh lệch như thế nào giữa các quốc gia? Các thể loại của sản phẩm liên quan với nhau như thế nào?
Các bảng chiều bao gồm:
Các bảng chiều Tên thuộc tính Mô tả
DimDate: Lưu trữ dữ liệu thời gian.
Chiều thời gian được phân cấp: Năm tài chính > tháng tài chính
Datekey Mã thời gian
FullDateAlternateKey Thời gian CalendarYear Năm tài chính MonthName Tháng tài chính
… …
DimAddress: Lưu trữ địa chỉ địa
danh
Id Mã
Country Đất nước
State Bang
27
DimCategories: Lưu trữ dữ liệu
thể loại DVD
Category Mã thể loại
CategoryName Tên thể lọai
DimCustomers: Lưu trữ dữ liệu về
khách hàng
CustomerId Mã khách hàng
FirstName Tên khách hàng
LastName Họ khách hàng
… ….
DimProducts: Lưu trữ dữ liệu về
sản phẩm Prod_id Mã sản phẩm Category Mã thể loại Title Tên sản phẩm Price Giá sản phẩm …
Bảng 3.2. Mô tả cơ sở dữ liệu thương mại điện tử
Kho dữ liệu được thiết kế gồm 3 chiều là chiều thời gian, chiều sản phẩm, chiều khách hàng. Mỗi chiều sẽ mô tả cho từng đối tượng được lưu trữ trong kho dữ liệu. Chúng ta chỉ có một bảng sự kiện duy nhất là bảng về giao dịch mua bán. Bảng FactSale có cặp khóa chính là khóa của bảng dữ liệu Order và bảng OrderLine. Và ba khóa ngoại là khóa ProductKey, CustomerKey, OrderDateKey.
Lược đồ kho dữ liệu như bên dưới:
28
Sau khi phân tích các dữ liệu bán hàng thu được và thiết kế kho dữ liệu, chúng tôi tiến hành phân tích dữ liệu bán hàng của cửa hàng thông qua các báo cáo thống kê, các biểu đồ dữ liệu, nhằm mục đích đưa ra những nhận xét, đánh giá về tình hình kinh doanh của cửa hàng qua các năm, từ đó có thể tìm ra những đặc điểm và các yếu tố ảnh hưởng đến doanh số bán hàng. Trong phần kết quả thực nghiệm, chúng tôi còn áp dụng một số thuật toán trong khai phá dữ liệu để đưa ra những dự đoán về xu hướng doanh số bán hàng, dự đoán sản phẩm tiếp theo khách hàng có thể mua, đây cũng là một kênh thông tin quan trọng hỗ trợ trong công tác quản lý, đưa ra quyết định của giám đốc cửa hàng.
3.4. Xây dựng các báo cáo biểu diễn dữ liệu bằng Ms Reporting Service
Dữ liệu đầu vào của kỹ thuật thiết kế báo báo này được đặt vào một nguồn ổn định, dữ liệu đã được làm sạch vào chuẩn hóa - đó là kho dữ liệu, đồng thời kết hợp với một số câu truy vấn T-SQL để tạo ra các báo cáo. Bản chất dữ liệu trong kho nằm ở bảng sự kiện (Fact Sale), dữ liệu trực tiếp lấy ra xử lý, giúp loại bỏ nhiều lỗi sinh ra do phải thu thập và biểu diễn thông tin từ nhiều nguồn khác nhau đồng thời giảm bớt sự chậm trễ do phải lấy dữ liệu từ những phân đoạn khác nhau, tránh cho người dùng phải viết những truy vấn SQL quá phức tạp. Báo cáo lấy nguồn từ CSDL thông thường, truy vấn thực hiện mỗi khi chạy và phải tính toán lại các kết quả trung gian do đó tốc độ thực hiện báo cáo có nguồn là kho dữ liệu sẽ nhanh hơn so với CSDL thông thường. Để tạo lập một báo cáo phức tạp phục vụ cho mục đích ra quyết định của doanh nghiệp, trong tab Design thêm vào các báo cáo cần thiết như chart, gause, image, … và thiết lập các tham số, các trường dữ liệu cho các mục.
Trước khi đi vào xây dựng các mô hình khai phá dữ liệu để trả lời các câu hỏi mang tính dự báo tôi tiến hành tìm hiểu dữ liệu bằng cách sử dụng Reporting Servies để xây dựng các báo cáo thống kê, báo cáo động với mục đích trả lời các câu hỏi mang tính chất thống kê như: nhóm khách hàng nào là khách hàng thường xuyên của cửa hàng, thể loại DVD nào được ưu chuộng nhất, vùng/bang nào quan tâm đến sản phẩm cửa hàng nhiều nhất, liệu có mối liên hệ nào giữa độ tuổi khách hàng và nơi cư trú ảnh hưởng tới việc họ mua sản phẩm của cửa hàng, làm thế nào để biết sự liên quan giữa hành vi mua bán của khách hàng với các thể loại sản phẩm khác nhau. Bên cạnh đó việc xây dựng báo cáo cũng là một trong những nhiệm vụ quan trọng trong quy trình xây dựng BI
Dưới đây là một số báo cáo thiết kế phục vụ cho nhu cầu phân tích dữ liệu kinh doanh của cửa hàng:
29
3.4.1. Báo cáo tổng hợp kinh doanh
Hình 3.4. Báo cáo tổng hợp kinh doanh
Bằng việc sử dụng ma trận, tạo nhóm trong Reporting Service chúng ta dễ dàng có được bảng như trên. Dễ dàng chuyển đổi chiều (pivot) dữ liệu mà không cần nhiều kỹ thuật. Trong hình chúng ta có thể nhóm dữ liệu thành 4 cấp: Country -> State -> Gender - > Age Range đối với dòng. Và chuyển (pivot) dữ liệu cột cũng như tạo nhóm trên cột đối