### retrain with best parameter print('Best parameters:', [best_momentum, best_reg, best_alpha, best_B, best_F, best_epoch]) # pickle pickle.dump(best_W, open(fileName, 'wb')) ### END ### # This part you can write on your own # you could plot the evolution of the training and validation RMSEs for example print('Predicting') # log training and validating error print( 'RSME on training', lib.rmse( trStats["ratings"], rbm.predict(trStats["movies"], trStats["users"], best_W, training))) print( 'RSME on validation', lib.rmse( vlStats["ratings"], rbm.predict(vlStats["movies"], vlStats["users"], best_W, training))) predictedRatings = np.array([ rbm.predictForUser(user, best_W, training) for user in trStats["u_users"] ]) print(np.max(predictedRatings), np.min(predictedRatings)) # Output the 300 x 97 txt print('Saving new result') np.savetxt("predictedRatings.txt", predictedRatings)
# We predict over the training set tr_r_hat = rbm.predict(trStats["movies"], trStats["users"], W, training, b=biasOne) trRMSE = lib.rmse(trStats["ratings"], tr_r_hat) # We predict over the validation set vl_r_hat = rbm.predict(vlStats["movies"], vlStats["users"], W, training, b=biasOne) vlRMSE = lib.rmse(vlStats["ratings"], vl_r_hat) print "### EPOCH %d ###" % epoch print "Training loss = %f" % trRMSE print "Validation loss = %f" % vlRMSE # break ### END ### # This part you can write on your own # you could plot the evolution of the training and validation RMSEs for example predictedRatings = np.array([ rbm.predictForUser(user, W, training, b=biasOne) for user in trStats["u_users"] ]) # print(predictedRatings.shape) np.savetxt("predictedRatingsExp.txt", predictedRatings)
print('Predicting') # log training and validating error print( 'RSME on training', lib.rmse( trStats["ratings"], rbm.predict(trStats["movies"], trStats["users"], best_W, training, predictType="mean"))) print( 'RSME on validation', lib.rmse( vlStats["ratings"], rbm.predict(vlStats["movies"], vlStats["users"], best_W, training, predictType="mean"))) predictedRatings = np.array([ rbm.predictForUser(user, best_W, training, predictType="mean") for user in trStats["u_users"] ]) print(np.max(predictedRatings), np.min(predictedRatings)) # Output the 300 x 97 txt print('Saving new result') np.savetxt("SUccess+v4.txt", predictedRatings)
count = 0 for F in range_F: for epsilon in range_Epsilon: for B in range_B: for weightcost in range_weightcost: for momentum in range_momentum: count += 1 print("====== ", round(count/float(total)*100,2),"% =====") print("F: ",F) print("epsilon: ",epsilon) print("B: ", B) print("weightcost", weightcost) print("momentum: ", momentum) results = run_RBM(F, epochs, epsilon, B, weightcost, momentum, f, mode) if results[1] < finalRMSE: finalRMSE = results[1] finalW = results[0] if mode == 'single': finalW = run_RBM(F, epochs, epsilon, B, weightcost, momentum, f, mode)[0] f.close() ### END ### # This part you can write on your own # you could plot the evolution of the training and validation RMSEs for example predictedRatings = np.array([rbm.predictForUser(user, finalW, training) for user in trStats["u_users"]]) np.savetxt("predictedRatings.txt", predictedRatings)
for B in range_B: for weightcost in range_weightcost: for momentum in range_momentum: count += 1 print("====== ", round(count / float(total) * 100, 2), "% =====") print("F: ", F) print("epsilon: ", epsilon) print("B: ", B) print("weightcost", weightcost) print("momentum: ", momentum) results = run_RBM(F, epochs, epsilon, B, weightcost, momentum, f, mode) if results[1] < finalRMSE: finalRMSE = results[1] finalW = results[0] if mode == 'single': finalW = run_RBM(F, epochs, epsilon, B, weightcost, momentum, f, mode)[0] f.close() ### END ### # This part you can write on your own # you could plot the evolution of the training and validation RMSEs for example predictedRatings = np.array([ rbm.predictForUser(user, finalW, training) for user in trStats["u_users"] ]) np.savetxt("predictedRatings.txt", predictedRatings)