Phƣơng pháp tiến hành thực nghiệm

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu và xây dựng hệ thống khuyến nghị cho bài toán dịch vụ giá trị gia tăng trong ngành Viễn thông (Trang 40 - 42)

Hai thuật toán KNN và MF đƣợc cài đặt bằng ngôn ngữ Python, sử dụng các thƣ viện đại số ma trận tuyến tính numpy, và học máy sklearn để tính toán.

Thuật toán KNN:

1: Nạp dữ liệu huấn luyện và dữ liệu kiểm tra vào 2 mảng train_set và test_set,

chọn hằng số K. 2: for u in test_set

Mảng neighbors = getNeighbor(train_set, K) // công thức Euclidean (3.3) để tính K láng giềng gần nhất của u

u

r = getRate(neighbors) // công thức (3.6) để tính ước lược đánh giá

3: Tính RMSE // theo công thức (3.16) để đánh giá kết quả

Thuật toán MF:

1: Nạp dữ liệu huấn luyện và kiểm tra vào 2 mảng train_set và test_set, chọn hằng số λ , K.

2: Sử dụng thư viện pandas để ma trận hóa tập huấn luyện train_set

3: Sử dụng thư viện numpy để tách ma trận train_set thành ma tích hai ma trận người dùng U và sản phẩm P

4: Sử dụng Gradient descent để giảm mất mát lần lượt U và P 5: for (u, i) in test_set

ui

r = Uu x Pi // tính ước lược đánh giá của u với i 6: Tính RMSE // theo công thức (3.16) để đánh giá kết quả

Chúng tôi sử dụng cách đánh giá Cross-Validation. Chia dữ liệu làm 6 tập, thực hiện 6 lần: lấy 1 tập làm tập test, 5 tập còn lại dùng để huấn luyện, sau đó lấy kết quả trung bình. Thuật toán KNN thực hiện huấn luyện trên các tập

knn_train_n.txt và kiểm tra trên các tập knn_test_n.txt tƣơng ứng n = 1, 2…6 . Thuật toán MF thực hiện huấn luyện trên các tập mf_train_n.txt và kiểm tra trên các tập mf_test_n.txt tƣơng ứng n = 1, 2…6 . Với m i phƣơng pháp, chúng tôi sẽ thu hồi đƣợc 6 giá trị RMSE tƣơng ứng. Giá trị trung bình RMSEtb của 6 kết quả này sẽ đƣợc dùng để để dánh giá thuật toán.

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu và xây dựng hệ thống khuyến nghị cho bài toán dịch vụ giá trị gia tăng trong ngành Viễn thông (Trang 40 - 42)