Ejemplo n.º 1
0
                day = min(self.nDays - 1,
                          int((tmp - self.min_time_in_seconds) / 86400))

                predict = self.prediction(userid, itemid, day)
                mean_squared_error += math.pow((rating - predict), 2)

                c += 1

            meanSuaredError = mean_squared_error / c
            meanSuaredError = math.sqrt(meanSuaredError)

            return meanSuaredError


# M A I N

lm = loadMovieData()

userItems, nUsers, nItems, nDays, minTimestamp = lm.main()
nFactors = 10
nBins = 6

timesvd_pp = timeSVDpp(100, nFactors, nUsers, nItems, userItems, nBins, nDays,
                       minTimestamp)

#10, bins, 1 iteration: RMSE = 1.02648993887
#10 bins,  20 iterations: RMSE = 0.94744760782
# 10 bins, 30 iterations: RMSE = 0.94331981365

# 30 bins, 20 iterations: 0.94672648969
Ejemplo n.º 2
0
from load_movie_data import loadMovieData
import mxnet
import timeSVDpp_batch
import v1
import v3_batch
import v2_batch
import trainer
import math


data_loader = loadMovieData()
userItems, nUsers, nItems, nDays, minTimestamp = \
    data_loader.main('ml-100k/u1.base')
test_userItems, test_nUsers, test_nItems, test_nDays, test_minTimestapm = \
    data_loader.main('ml-100k/u1.test')

# 计算总平均分数
average_rating = 0
rating_cnt = 0
for user in userItems.keys():
    items = userItems[user]
    for item in items:
        average_rating += item[1]
        rating_cnt += 1
average_rating /= rating_cnt

# 计算测试集容量
test_rating_cnt = 0
for user in test_userItems.keys():
    items = test_userItems[user]
    for item in items: