def ubh(alpha, nbits, k): if k == 5: unum = 25 vnum = 5 else: unum = 50 vnum = 10 trainMat, testMat = MovieLens.loadDataSet(unum, vnum) featMat = itembasedDCF.pca(trainMat, nbits) B, R = itembasedDCF.ITQ(featMat, nbits) IDX = nonzero(trainMat.T) D0, X = itembasedDCF.parDinit(trainMat.T, nbits, IDX, 5, 1, alpha, B, 5) D = itembasedDCF.disOpt(5, 1, trainMat.T, IDX, nbits, alpha, B, D0, X, 10) return B, D, testMat
def expe_AL(nbits, para): trainMat, testMat = MovieLens.loadDataSet() # dataMat=trainMat dataMat = trainMat.T featMat = itembasedDCF.pca(dataMat, nbits) D, R = itembasedDCF.ITQ(featMat, nbits) # IDX=np.nonzero(trainMat.T) IDX = np.nonzero(trainMat) for i in range(len(para)): # B0,X=itembasedDCF.parDinit(trainMat.T, nbits, IDX, 5, 1, para[i], D,5) B0, X = itembasedDCF.parDinit(trainMat, nbits, IDX, 5, 1, para[i], D, 5) # B=itembasedDCF.disOpt(5,1,trainMat.T, IDX, nbits, para[i], B0, D,X,5) B = itembasedDCF.disOpt(5, 1, trainMat, IDX, nbits, para[i], B0, D, X, 5) ndcg = evaluate.NDCG_cal(B, D, testMat, 5) print ndcg
#itembased,NDCG@5,nbits=256 #alpha[0.0001,0.001,0.01,0.1,1,10,100] import MovieLens import itembasedDCF import evaluate import numpy as np para=[8,16,32,64,128,256,512] NDCG5=[] for i in range(5): print "the",i,"time" trainMat, testMat=MovieLens.loadDataSet(25, 5) PARA=[] for j in range(len(para)): featMat=itembasedDCF.pca(trainMat.T, para[j]) D,R=itembasedDCF.ITQ(featMat,para[j]) IDX=np.nonzero(trainMat) B0,X=itembasedDCF.parDinit(trainMat,para[j],IDX,5,1,10,D,5) B=itembasedDCF.disOpt(5,1,trainMat,IDX, para[j],10, B0,D,X,10) ndcg=evaluate.NDCG_cal(B,D,testMat,5) PARA.append(ndcg) print PARA NDCG5.append(PARA) result=np.mean(NDCG5,axis=0) print NDCG5,result
import MovieLens import itembasedDCF import evaluate import numpy as np para = [8, 16, 32, 64, 128, 256, 512] NDCG10 = [] for i in range(5): print 'the', i, 'time' trainMat, testMat = MovieLens.loadDataSet(50, 5) PARA = [] for j in range(len(para)): featMat = itembasedDCF.pca(trainMat, para[j]) B, R = itembasedDCF.ITQ(featMat, para[j]) IDX = np.nonzero(trainMat.T) D0, X = itembasedDCF.parDinit(trainMat.T, para[j], IDX, 5, 1, 10, B, 5) D = itembasedDCF.disOpt(5, 1, trainMat.T, IDX, para[j], 10, D0, B, X, 10) ndcg = evaluate.NDCG_cal(B, D, testMat, 10) PARA.append(ndcg) print PARA NDCG10.append(PARA) result = np.mean(NDCG10, axis=0) print NDCG10, result
import MovieLens import itembasedDCF import evaluate import numpy as np #para=[8,16,32,64,128,256,512] alpha = [0.0001,0.001,0.01,0.1,1,10,100] NDCG5=[] for i in range(5): print 'the',i,'time' trainMat,testMat=MovieLens.loadDataSet(25,5) PARA=[] for j in range(len(alpha)): # featMat=itembasedDCF.pca(trainMat,para[j]) featMat = itembasedDCF.pca(trainMat, 256) B,R=itembasedDCF.ITQ(featMat,256) IDX=np.nonzero(trainMat.T) D0,X=itembasedDCF.parDinit(trainMat.T,256,IDX,5,1,10,B,5) D=itembasedDCF.disOpt(5,1,trainMat.T,IDX,256,alpha[j],D0,B,X,10) ndcg=evaluate.NDCG_cal(B,D,testMat,5) PARA.append(ndcg) print PARA NDCG5.append(PARA) result=np.mean(NDCG5,axis=0) print NDCG5,result