testOrderedItems = MCEvaluatorCython.recommendAtk(U, V, p, trainX) r = SparseUtilsCython.computeR(U, V, maxLocalAuc.w, maxLocalAuc.numRecordAucSamples) trainObjVec = maxLocalAuc.objectiveApprox(trainOmegaPtr, U, V, r, maxLocalAuc.gi, maxLocalAuc.gp, maxLocalAuc.gq, full=True) testObjVec = maxLocalAuc.objectiveApprox(testOmegaPtr, U, V, r, maxLocalAuc.gi, maxLocalAuc.gp, maxLocalAuc.gq, allArray=allOmegaPtr, full=True) itemCounts = numpy.array(X.sum(0)+1, numpy.int32) beta = 0.5 for p in [1, 3, 5, 10]: trainPrecision = MCEvaluator.precisionAtK(trainOmegaPtr, trainOrderedItems, p) testPrecision = MCEvaluator.precisionAtK(testOmegaPtr, testOrderedItems, p) logging.debug("Train/test precision@" + str(p) + "=" + str(trainPrecision) + "/" + str(testPrecision)) for p in [1, 3, 5, 10]: trainRecall = MCEvaluator.stratifiedRecallAtK(trainOmegaPtr, trainOrderedItems, p, itemCounts, beta) testRecall = MCEvaluator.stratifiedRecallAtK(testOmegaPtr, testOrderedItems, p, itemCounts, beta) logging.debug("Train/test stratified recall@" + str(p) + "=" + str(trainRecall) + "/" + str(testRecall)) plt.figure(0) plt.plot(trainMeasures[:, 0], label="train") plt.plot(testMeasures[:, 0], label="test") plt.xlabel("iteration") plt.ylabel("objective") plt.legend() plt.figure(1) plt.plot(trainMeasures[:, 1], label="train") plt.plot(testMeasures[:, 1], label="test")