Exemplo n.º 1
0
def creatMultiItemUserAdj(dataset, cv):
    trainMat, _, _, trainMat_time, _ = loadData(dataset, cv)

    ratingClass = np.unique(trainMat.data).size
    userNum, itemNum = trainMat.shape
    multi_adj = sp.lil_matrix((ratingClass * itemNum, userNum), dtype=np.int)
    uidList = trainMat.tocoo().row
    iidList = trainMat.tocoo().col
    rList = trainMat.tocoo().data
    # time = trainMat_time.tocoo().data

    for i in range(uidList.size):
        uid = uidList[i]
        iid = iidList[i]
        r = rList[i]
        multi_adj[iid * ratingClass + r - 1, uid] = trainMat_time[uid, iid]
        assert trainMat_time[uid, iid] != 0

    a = sp.csr_matrix((multi_adj.shape[1], multi_adj.shape[1]))
    b = sp.csr_matrix((multi_adj.shape[0], multi_adj.shape[0]))
    multi_adj2 = sp.vstack(
        [sp.hstack([a, multi_adj.T]),
         sp.hstack([multi_adj, b])])

    DIR = os.path.join(os.getcwd(), "dataset", dataset, 'implicit',
                       "cv{0}".format(cv))
    path = DIR + '/multi_item_adj.pkl'
    with open(path, 'wb') as fs:
        pickle.dump(multi_adj2.tocsr(), fs)
    print("create multi_item_feat")


# if __name__ == '__main__':
#     creatMultiItemUserAdj("CiaoDVD_time", 1)
#     print("Done")
Exemplo n.º 2
0
    def getData(self, args):
        trainMat = loadData(args.dataset, args.cv)

        with open(self.datasetDir + '/uu_vv_graph.pkl', 'rb') as fs:
            uu_vv_graph = pickle.load(fs)
        uuMat = uu_vv_graph['UU'].astype(np.bool)
        iiMat = uu_vv_graph['II'].astype(np.bool)
        return trainMat, uuMat, iiMat
Exemplo n.º 3
0
 def getData(self, args):
     data = loadData(args.dataset)
     trainMat, _, validData, _, _ = data
     with open(self.datasetDir + '/multi_item_adj.pkl', 'rb') as fs:
         multi_adj_time = pickle.load(fs)
     with open(self.datasetDir + '/uu_vv_graph.pkl', 'rb') as fs:
         uu_vv_graph = pickle.load(fs)
     uuMat = uu_vv_graph['UU'].astype(np.bool)
     iiMat = uu_vv_graph['II'].astype(np.bool)
     return trainMat, validData, multi_adj_time, uuMat, iiMat
Exemplo n.º 4
0
    def getData(self, args):
        trainMat, testMat, validMat, trustMat = loadData(
            args.dataset, args.rate)
        a = trainMat + testMat + validMat
        assert a.nnz == (trainMat.nnz + testMat.nnz + validMat.nnz)

        adj_DIR = os.path.join(os.getcwd(), "data", dataset, 'mats')
        adj_path = adj_DIR + '/{0}_multi_item_adj.pkl'.format(args.rate)

        with open(adj_path, 'rb') as fs:
            multi_adj = pickle.load(fs)

        return trainMat, testMat, validMat, trustMat, multi_adj
Exemplo n.º 5
0
def creatMultiItemUserAdj(dataset, rate):
    trainMat, _, _, _ = loadData(dataset, rate)
    ratingClass = np.unique(trainMat.data).size
    userNum, itemNum = trainMat.shape
    mult_adj = sp.lil_matrix((ratingClass * itemNum, userNum), dtype=np.int)
    uidList = trainMat.tocoo().row
    iidList = trainMat.tocoo().col
    rList = trainMat.tocoo().data

    for i in range(uidList.size):
        uid = uidList[i]
        iid = iidList[i]
        r = rList[i]
        mult_adj[iid * ratingClass + r - 1, uid] = 1

    DIR = os.path.join(os.getcwd(), "data", dataset, 'mats')
    path = DIR + '/{0}_multi_item_adj.pkl'.format(rate)
    with open(path, 'wb') as fs:
        pickle.dump(mult_adj.tocsr(), fs)
    print("create multi_item_feat")
Exemplo n.º 6
0
 def getData(self, args):
     data = loadData(args.dataset)
     trainMat, testData, validData, trustMat = data
     return trainMat, testData, validData, trustMat