Cơ sở dữ liệu

Một phần của tài liệu Khai phá dữ liệu trong mô hình thương mại điện tử (Trang 43)

Hệ thống xây dựng trên cơ sở dữ liệu Jester Jester-data-1.xls với kích thước 15.3 MB (http://goldberg.berkeley.edu/jester-data/ ).

Cơ sở dữ liệu gồm 24983 User đánh giá trên 100 Item. Cấu trúc của dữ liệu :

Bảng dữ liệu cĩ kích thước 24983*101, mỗi hàng tương ứng với một User. Cột đầu tiên là số lượng Item mà User bỏ phiếu bình chọn giá trị sử dụng. 100 cột tiếp theo tương ứng với 100 Item. Giá trị tại mỗi cột tương ứng với lá phiếu mà User bỏ cho nĩ.

Giá trị của lá phiếu một User bỏ cho Item nằm trong khoảng -10.00 đến 10.00. Nếu giá trị lá phiếu là 99 tương ứng với User khơng bỏ phiếu ước lượng giá trị sử dụng cho Item.

Bng 3.1 Cơ sở dữ liệu Jester-data-1

Chúng tơi sử dụng Microsoft Access để lưu trữ dữ liệu vì chúng cho phép truy cập cơ sở dữ liệu rất dễ dàng.

3.3 Lọc cộng tác dựa trên mơ hình mật độ chung 3.3.1 Xây dựng mơ hình 3.3.1 Xây dựng mơ hình

Tính tốn trên cơ sở dữ liệu Jester-data-1.xls, bao gồm 24983 User cĩ thể chia thành 2 phần: phần 1 gồm 20000 User đầu tiên dùng để xây dựng mơ hình dự đốn, phần 2 gồm 4983 User cịn lại dùng để kiểm tra hiệu quả của mơ hình vừa xây dựng. Phần 1 chia thành 20 nhĩm, mỗi nhĩm gồm 1000 User. Mỗi nhĩm User dùng để xây dựng một mơ hình thành phần.

Trên cơ sở dữ liệu Jester, giá trị lá phiếu của User nằm trong khoảng từ -10.00 đến 10.00. Giá trị lá phiếu bằng 99 tương ứng với User khơng bình cho giá trị cho Item. Khi xây dựng mơ hình, chúng ta mặc định việc User bỏ phiếu cho một Item tương ứng với User thích Item đĩ và bình chọn giá trị sử dụng cho nĩ. Item nào khơng được bình chọn tương ứng với nĩ khơng được User quan tâm. Chúng ta tính tốn xác suất cho mỗi Item trong mơ hình bằng cách đếm xem cĩ bao nhiêu User quan tâm đến nĩ.

Number Item1 Item2 Item3 Item4 Item5 Item6 Item7 Item8 Item9 74 -7.82 8.79 -9.66 -8.16 -7.52 -8.5 -9.85 4.17 -8.98 100 4.08 -0.29 6.36 4.37 -2.38 -9.66 -0.73 -5.34 8.88 49 99 99 99 99 9.03 9.27 9.03 9.27 99 48 99 8.35 99 99 1.8 8.16 -2.82 6.21 99 91 8.5 4.61 -4.17 -5.39 1.36 1.6 7.04 4.61 -0.44 100 -6.17 -3.54 0.44 -8.5 -7.09 -4.32 -8.69 -0.87 -6.65 47 99 99 99 99 8.59 -9.85 7.72 8.79 99 100 6.84 3.16 9.17 -6.21 -8.16 -1.7 9.27 1.41 -5.19 100 -3.79 -3.54 -9.42 -6.89 -8.74 -0.29 -5.29 -8.93 -7.86 72 3.01 5.15 5.15 3.01 6.41 5.15 8.93 2.52 3.01 36 -2.91 4.08 99 99 -5.73 99 2.48 -5.29 99 100 1.31 1.8 2.57 -2.38 0.73 0.73 -0.97 5 -7.23 47 99 99 99 99 5.87 99 5.58 0.53 99 100 9.22 9.27 9.22 8.3 7.43 0.44 3.5 8.16 5.97

( ) ( ) ( ) Count i P i Count m =

Với i tương ứng với một Item, P(i) là xác suất Item đĩ được chọn. Count(i) là số User bỏ phiếu cho Item i trong mơ hình và Count(m) là số User trong mơ hình. Với 20 mơ hình đã xây dựng thì Count(m) = 1000 theo mặc định. Trong mỗi mơ hình chúng ta tính tốn xác suất được chọn cho mỗi Item, các Item được sắp xếp theo thứ tự giảm dần của xác suất. Danh sách các Item List(P(i)) là khuyến cáo cho các User thuộc về mơ hình đĩ.

Hình 3.1 Mơ hình thử nghiệm hệ thống khuyến cáo sản phẩm

Dữ liệu xây dựng mơ hình Dữ liệu kiểm thử mơ hình Khuyến cáo cho người sử dụng Xếp nhĩm User Tính tốn xác suất cho mỗi Item trong nhĩm

Dữ liêu về mơ hình Mơ hình 1: List P i1( ( )) Mơ hình 2: List P i2( ( )) ………. Mơ hình 20:List P i20( ( )) Tính tốn các giá trị dự đốn

Sử dụng các User trong phần 2 để kiểm thử khả năng của mơ hình đã xây dựng. Kiểm tra xem mỗi User thuộc nhĩm nào trong mơ hình mật độ, từ đĩ đưa ra các khuyến cáo cho User đĩ. Để xếp nhĩm cho các User, hệ thống tìm các User tương tự trong 20 nhĩm ở phần 1. User sẽ thuộc nhĩm cĩ nhiều thành phần tương tự như nĩ nhất.

Trong cơ sở dữ liệu Jester_Data, một User bỏ phiếu trên rất nhiều Item. Khi xếp nhĩm cho một User a bất kỳ, cĩ rất nhiều User tương tự như a nhưng độ tương đồng nhỏ. Việc gộp tất cả các User đĩ vào việc xếp nhĩm dẫn đến kết quả khơng chính xác. Chúng ta mặc định một ngưỡng cho các User tương tự, chỉ tính các User cĩ độ tương đồng trong lá phiếu >80% so với A. Hai User tương đồng nhau nếu trên cùng một Item giá trị lá phiếu bằng nhau. Trong cơ sở dữ liệu Jester chúng ta mặc định mỗi lá phiếu cĩ giá trị: 99 tương ứng với Item đĩ khơng được bình chọn, các giá trị cịn lại tương ứng với Item đĩ được chọn.

Một số module trong xây dựng và kiểm thử mơ hình:

- Order (Array A): Sắp xếp xác suất các Item trong mỗi mơ hình - GroupUser (A): Xếp nhĩm cho User A

- Simple (X,Y): Đánh giá độ tương đồng giữa 2 User

Order (Array A):

- Input: Xác suất tất cả các Item trong một thành phần - Output: Danh sách khuyến cáo

For i trong tập các Item do

{

For j trong tập các Item do

If A[i]<A[j] do đổi chỗ A[i], A[j]

}

Return A

GroupUser (A):

- Input: Danh sách lá phiếu của User cần xếp nhĩm - Output: Nhĩm User đĩ thuộc

NumUser = 0 (adsbygoogle = window.adsbygoogle || []).push({});

For mỗi mơ hình thành phần do

{

Total = 0

For mỗi User trong nhĩm do

{

If(Simple(A, User trong nhĩm))do Total++

} If(Total > NumUser)do { NumUser = Total Model = Mơ hình hiện tại } } Return Model Simple(X,Y):

- Input: User X, User Y

- Output: Độ tương đồng giữa hai User

Num = 0;

For mỗi Item trong cơ sở dữ liệu do

If (X[Item]=Y[Item]) Num++;

If (Num lớn hơn ngưỡng) do Return True;

Return False;

Hệ thống thử nghiệm xây dựng bằng ngơn ngữ PHP, thao tác trên cơ sở dữ liệu MySQL. Phương pháp này cĩ lợi thế: ứng dụng trực tiếp trong các Website thương mại, xây dựng hệ thống tương đối đơn giản, dễ dàng thử nghiệm cho các User. Tuy nhiên phương pháp này mất nhiều thời gian xếp nhĩm cho các User, khi xếp nhĩm cho một User, hệ thống phải tính tốn trên tồn bộ 20000 User dùng để xây dựng mơ hình. Thời gian trung bình để xếp nhĩm cho một User là 27 giây.

Khi xây dựng hệ thống khuyến cáo sản phẩm, cĩ thể tính tốn độ tương đồng giữa các User để xếp chúng vào trong các nhĩm tương ứng. Các quy định khác nhau về số nhĩm User, số lượng User trong mỗi nhĩm và độ tương

thuộc vào người xây dựng hệ thống và dữ liệu sử dụng. Các hệ thống áp dụng trong thực tế để kiểm tra hiệu quả của phương pháp.

3.3.2 Kết quả

Tiến hàng kiểm thử trên 200 bản ghi, mỗi bản ghi tương ứng một User trong phần dữ liệu kiểm tra mơ hình. Ta cĩ kết quả trong bảng 3.2

Bng 3.2: Thử nghiệm mơ hình mật độ chung. Hàng 1, 3 tương ứng 20 mơ hình thành phần. Hàng 2, 4 là số User thử nghiệm thuộc về mỗi thành phần

Trong bảng kết quả thử nghiệm, các User chủ yếu thuộc về 2 mơ hình 11, 16. Mơ hình 3, 7, 14 cĩ số lượng User ít hơn và các mơ hình cịn lại hầu như ko cĩ User. Điều này cĩ thể giải thích: hai mơ hình 11, 16 bao gồm hầu hết User tiêu biểu trong cơ sở dữ liệu xây dựng mơ hình. Các User tiêu biểu này chỉ bình chọn trên hầu hết các Item cĩ xác suất mua lớn, do vậy hầu hết các User thử nghiệm đều thuộc về 2 mơ hình 11, 16. Các mơ hình cịn lại cĩ số lượng User tiêu biểu ít hơn do đĩ cĩ số lượng User kiểm tra ít hơn. Cĩ thể thử nghiệm với nhiều ngưỡng tương đồng của hai User để đánh giá phương pháp xây dựng hệ thống.

3.4 Xử lý dữ liệu theo phương pháp láng giềng gần nhất 3.4.1 Xây dựng mơ hình

Phương pháp này tính tốn trên 1000 User đầu tiên trong cơ sở dữ liệu Jester_data_1. Bảng dữ liệu cĩ kích thước 1000*100 tương ứng 1000 User và 100 Item. Trong phương pháp này chúng ta mặc định giá trị cho các lá phiếu Model 1 Model 2 Model 3 Model 4 Model 5 Model 6 Model 7 Model 8 Model 9 Model 10 0 0 14 0 0 0 17 0 0 2 Model 11 Model 12 Model 13 Model 14 Model 15 Model 16 Model 17 Model 18 Model 19 Model 20 82 0 0 9 0 74 0 0 2 0

- Nếu lá phiếu trong cơ sở dữ liệu cĩ giá trị 99 tương ứng với User khơng bỏ phiếu cho Item trong bảng dữ liệu.

- Nếu lá phiếu cĩ giá trị lớn hơn 0 tương ứng với User thích Item, giá trị trong bảng dữ liệu là 1 (vi j, =1).

- Nếu lá phiếu nhỏ hơn hợc bằng 0 tương tứng User khơng thích Item, giá trị trong bảng dữ liệu là 0 (vi j, =0).

Để thử nghiệm phương pháp, đầu tiên chúng ta chọn một User trong bảng dữ liệu. Giả sử A là User đã chọn, A cĩ tập lá phiếu VA. Chia VA thành 2 tập con: VA1 và VA2. VA1 là tập thơng tin đầu vào của hệ thống, VA2 là tập dữ liệu kiểm thử. Từ dữ liệu đầu vào, hê thống tính tốn VA2' là tập kết quả dự đốn. So sánh VA2 với VA2' để đo độ chính xác của hệ thống.

Do trong cơ sở dữ liệu Jester, một User bỏ phiếu trên rất nhiều Item, do vậy chúng ta cĩ thể mặc định VA1 gồm 30 Item đầu tiên mà User A đã bỏ phiếu bình chọn giá trị sử dụng. Trong tập VA2' chúng ta săp xếp các giá trị dự đốn theo thứ tự giảm dần, trong đĩ 50% lá phiếu đầu tiên tương ứng các Item được User thích (vA j, =1) phần cịn lại tương ứng với Item khơng được ưa chuộng (vA j, =0). So sánh tập lá phiếu của User với tập lá phiếu dự đốn

để tính hiệu quả của thuật tốn.

Một số module trong xây dựng và kiểm tra phương pháp: (adsbygoogle = window.adsbygoogle || []).push({});

- Weight(User A, User I): Tính tốn trọng số giữa hai User - Predic(User A): Dự đốn tập lá phiếu của User A

Weight(User A, User I)

- Input : Tập lá phiếu của hai User - Output: Trọng số của hai User

Ms1 = 0, Ms2 = 0

For i trong tập hợp Item do

{

Tuso+= (A[i] – giá trị trung bình của VA)*(

I[i] - giá trị trung bình của VI )

Ms1+=qrt(A[i] – giá trị trung bình của VA)

Ms2+=qrt(I[i] – giá trị trung bình của VI)

}

Return Tuso/sqrt(Ms1*Ms2)

Predic(User A)

- Input: Tập lá phiếu của A

- Output: Tập giá trị dự đốn trên những Item A chưa bỏ phiếu

For i trong tập hợp Item do

{

If A[i] = Null do

{

Tuso = 0

Mauso =0

For j trong tập hợp các User do

{

Tuso+=Weight(A,j)*lá phiếu điều

chỉnh ma trận

Mauso+=abs(Weight(A,j)) }

A[i] = giá trị trung bình của VA +

Tuso/Mauso } }

3.4.2 Kết quả

Bảng 3.3 Thử nghiệm phương pháp láng giềng gần nhất. Cột Item tương ứng số Item dự đốn đúng, cột Total là tổng số Item dự đốn. (adsbygoogle = window.adsbygoogle || []).push({});

Item Total Item Total Item Total Item Total Item Total 33 44 13 25 32 43 22 41 6 8 23 70 8 20 12 20 50 70 18 23 10 19 28 42 9 16 6 11 37 70 8 18 43 70 44 70 46 70 21 42 35 61 29 44 37 70 27 43 6 11 35 70 22 37 40 62 19 31 24 42 10 17 18 30 24 43 27 42 33 70 38 70 25 42 42 59 24 41 32 44 54 70 13 24 26 41 10 17 26 42 20 42 8 16 47 70 20 35 34 70 3 6 39 70 41 70 51 70 25 38 44 70 9 24 21 30 25 38 30 42 10 17 41 70 7 10 34 70 11 18 33 70 5 8 45 70 20 37 23 39 34 70 38 70 8 15 49 70 35 70 47 70 9 11 8 23 11 18 22 43 11 21 22 42 44 70 35 70 41 70 33 70 14 21 20 32 11 25 4 7 7 19 35 70 39 70 35 70 40 70 14 23 10 17 25 33 11 23 2 7

Thời gian dự đốn cho một User trong khoảng từ 4s đến 18s tuỳ thuộc vào tổng số Item mà hệ thống tính tốn. Cĩ thể thử nghiệm phương pháp bằng cách chia tập lá phiếu của các User để đo hiệu quả của hệ thống. Từ kết quả trong bảng 3.3 chúng ta tính độ chính xác, độ hồi tưởng và F1 để thấy hiệu quả của phương pháp. Bảng 3.4 biểu diễn kết quả 10 lần thử nghiệm, mỗi lần thử nghiệm tương ứng 10 User.

Khi tiến hành dự đốn cho một User, hệ thống sẽ dự đốn cho tất cả các Item mà User đĩ chưa bỏ phiếu. Trong cơ sở dữ liệu Jester, hầu hết User khơng bỏ phiếu cho tất cả các Item do đĩ hai tập VA2 và VA2' cĩ sự chênh lệch về số lá phiếu. Thực tế số lá phiếu trong VA2' cao hơn số lá phiếu trong

2

A

Hệ thống tính tốn trên 1000 bản ghi và thử nghiệm với 100 User do vậy các kết quả tính tốn chưa đánh giá hết khả năng của phương pháp.

Bảng 3.4 Kết quả 10 lần thử nghiệm hệ thống Độ chính xác Độ hồi tưởng F1 1 31.91853 55.01814 39.84473 2 28.28794 53.17733 35.82275 3 29.97379 56.91543 38.95279 4 28.40589 57.82608 36.81668 5 37.55665 62.84569 46.55913 6 32.63127 60.78021 41.5846 7 33.31025 60.82166 42.46354 8 33.42868 56.42093 41.54121 9 31.02402 59.81526 39.76839 10 29.70346 55.98949 37.74017

3.5 So sánh hai phương pháp xây dựng hệ thống

Thử nghiệm xây dựng hệ thống khuyến cáo sản phẩm bằng hai phương pháp: lọc cộng tác dựa trên láng giềng gần nhất và lọc cộng tác dựa trên mơ hình mật độ chung. Tuy chỉ thực nghiệm trên một số lượng User nhỏ nhưng nĩ cũng cho thấy điểm khác biệt giữa hai phương pháp. Phương pháp mơ hình cĩ thể tính tốn trên số lượng User lớn hơn nhiều so với phương pháp láng giềng gần nhất. Phương pháp láng giềng gần nhất chỉ cĩ thể tính tốn với một số lượng User nhỏ do vậy thơng tin dự đốn kém chính xác. Trong phương pháp mơ hình mật độ chung, khi một User chọn nhĩm thích hợp thì đưa ra dự đốn cho User căn cứ theo nhĩm đĩ. Do vậy thơng tin dự đốn chính xác hơn so với phương pháp láng giềng gần nhất. Hiệu quả của phương pháp xây dựng mơ hình mật độ cũng tuỳ thuộc vào cách thức xây dựng các nhĩm bên trong mơ hình.

Kết Lun

Tổng kết cơng việc đã làm và đĩng gĩp của luận văn

Khố luận đã trình bày khái quát một số vấn đề về Thương mại điện tử, khai phá dữ liệu trong Thương mại điện tử, hệ thống khuyến cáo sản phẩm ứng dụng trong các Website thương mại và cách thức xây dựng hệ thống đĩ. Các nội dung chính của khố luận đã đề cập được tĩm lược dưới đây.

- Giới thiệu khái quát về Thương mại điện tử, giới thiệu khái niệm Thương mại điện tử, khai phá dữ liệu trong Thương mại điện tử. Đồng thời, trình bày về tình hình Thương mại điện tử ở Việt Nam, các cơ hội và thách thức cho các doanh nghiệp trong quá trình hội nhập với thị trường Thương mại điện tử thế giới.

- Trình bày cơ sở của giao dịch thơng qua mạng máy tính, các khĩ khăn, thách thức cũng như các vấn đề liên quan đến giao dịch trên mạng. - Trình bày về hệ thống khuyến cáo sản phẩm ứng dụng trong giao dịch

thơng qua mạng máy tính: mục đích xây dựng hệ thống, các tác dụng của hệ thống trong việc thúc đẩy giao dịch, cách thức xây dựng hệ thống và một số ví dụ về hệ thống khuyến cáo sản phẩm. Cách xây dựng hệ thống tập trung chủ yếu theo phương pháp lọc cộng tác dựa trên láng giềng gần nhất và dựa trên mơ hình xác suất. Khố luận cũng đã trình bày về ưu, nhược điểm của các phương pháp lọc cộng tác trong xây

Một phần của tài liệu Khai phá dữ liệu trong mô hình thương mại điện tử (Trang 43)