Beispiel #1
0
def BehaviorBasedCF():
    np.random.seed(0)
    random.seed(0)

    # Load up common data set for the recommender algorithms
    (ml, evaluationData, rankings) = MyDump.LoadMovieLensData(loader)

    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(evaluationData, rankings, load=True)

    # User-based KNN
    UserKNN = KNNBasic(sim_options={'name': 'cosine', 'user_based': True})
    evaluator.AddAlgorithm(UserKNN, "User KNN")

    # Item-based KNN
    ItemKNN = KNNBasic(sim_options={'name': 'cosine', 'user_based': False})
    evaluator.AddAlgorithm(ItemKNN, "Item KNN")

    # Just make random recommendations
    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(
        False
    )  # load is also False, cause simsMatrix needs to be loaded; I haven't figured it out.

    evaluator.SampleTopNRecs(ml)
Beispiel #2
0
def ContentRecs():
    """ for this content-based(item) recommender
        calculate items' cosine similarity matrix in alg.fit()

        I don't test `HitRate` for `topN` recommendation, because here it's impossible to do that. What I recommend by this algorithm are all the movies the user haven't rated.
    """
    np.random.seed(0)
    random.seed(0)
    # loader = True

    # Load up common data set for the recommender algorithms
    # print(f'call ContentRecs()\nloader = {loader}')
    (ml, evaluationData, rankings) = MyDump.LoadMovieLensData(loader)

    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(evaluationData, rankings, load=True)

    contentKNN = ContentKNNAlgorithm()
    evaluator.AddAlgorithm(contentKNN, "ContentKNN")

    # Just make random recommendations
    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(False, True)  # not topN, able load

    # recommend 10(default) items
    evaluator.SampleTopNRecs(ml)
Beispiel #3
0
def BuildRecModel():
    np.random.seed(0)
    random.seed(0)

    # Load up common data set for the recommender algorithms
    (evaluationData, rankings) = LoadData()
    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(evaluationData, rankings)

    hotelKNNAlgorithm = HotelKNNAlgorithm()
    log.info('Algorithm=K-Nearest Neighbour')
    evaluator.SetAlgorithm(hotelKNNAlgorithm, 'HotelKNNAlgorithm')

    evaluator.Evaluate(False)
    evaluator.TrainAndSaveAlgorithm()
Beispiel #4
0
def AutoRec():
    np.random.seed(0)
    random.seed(0)

    ml, evaluationData, rankings = MyDump.LoadMovieLensData(loader)
    evaluator = Evaluator(evaluationData, rankings, loader)

    myAutoRec = RBMAlgorithm()
    evaluator.AddAlgorithm(myAutoRec, "AutoRec")

    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(doTopN=False, load=loader)

    evaluator.SampleTopNRecs(ml, loader)
Beispiel #5
0
def CompareSVDRandom():
    np.random.seed(0)
    random.seed(0)
    # loader = True
    start_t = time.time()

    # Load up common data set for the recommender algorithms
    # (evaluationData, rankings) = LoadMovieLensData()
    # MyDump.Save('ratingsDataset', data = evaluationData, verbose = 1)
    # MyDump.Save('rankings', data = rankings, verbose = 1)

    # _,_,evaluationData = MyDump.Load('ratingsDataset', 1)
    # _,_,rankings = MyDump.Load('rankings',1)
    # if evaluationData == None or rankings == None:
    #     (_, evaluationData, rankings) = MyDump.LoadMovieLensData() # meat
    #     MyDump.Save('ratingsDataset', data = evaluationData, verbose = 1)
    #     MyDump.Save('rankings', data = rankings, verbose = 1)
    _, evaluationData, rankings = MyDump.LoadMovieLensData(loader)
    print(
        f'------time consumption: {time.time() - start_t} for LoadMovieLensData()'
    )
    start_t = time.time()

    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(dataset=evaluationData,
                          rankings=rankings,
                          load=loader)

    print(
        f'------time consumption: {time.time() - start_t} for create an evaluator instance'
    )
    start_t = time.time()

    # Throw in an SVD recommender
    SVDAlgorithm = SVD(random_state=10)
    evaluator.AddAlgorithm(SVDAlgorithm, "SVD")

    # Just make random recommendations
    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    start_t = time.time()
    evaluator.Evaluate(True, loader)  # doTopN, loader
    print(
        f'------time consumption: {time.time() - start_t} for evaluator.Evaluate()'
    )
    start_t = time.time()
Beispiel #6
0
def MF():
    """ the idea behind is math, latent features
        implementation is simple out of library source
    """
    np.random.seed(0)
    random.seed(0)
    ml, evaluationData, rankings = MyDump.LoadMovieLensData(loader)
    evaluator = Evaluator(evaluationData, rankings, loader)

    mySVD = SVD(random_state=10)
    evaluator.AddAlgorithm(mySVD, "SVD")  # the same with before
    mySVDpp = SVDpp(random_state=10)
    evaluator.AddAlgorithm(mySVDpp, "SVDpp")
    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(doTopN=False, load=loader)
    evaluator.SampleTopNRecs(ml, loader)
Beispiel #7
0
    def contentf(self):

        # Load up common data set for the recommender algorithms
        (ml, evaluationData, rankings) = self.LoadNovieLensData()

        # Construct an Evaluator to, you know, evaluate them
        evaluator = Evaluator(evaluationData, rankings)

        contentKNN = ContentKNNAlgorithm()
        evaluator.AddAlgorithm(contentKNN, "ContentKNN")

        # Just make random recommendations
        #Random = NormalPredictor()
        #evaluator.AddAlgorithm(Random, "Random")

        evaluator.Evaluate(False)

        evaluator.SampleTopNRecs(ml)
Beispiel #8
0
def RBMtest():
    np.random.seed(0)
    random.seed(0)

    ml, evaluationData, rankings = MyDump.LoadMovieLensData(loader)

    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(evaluationData, rankings, loader)

    # RBM
    # able to tune by trying more parameter combination
    myRBM = RBMAlgorithm(epochs=20)
    evaluator.AddAlgorithm(myRBM, "RBM")

    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(doTopN=False, load=loader)

    evaluator.SampleTopNRecs(ml, loader)
Beispiel #9
0
def contentGive(id):
    np.random.seed(0)
    random.seed(0)

    # Load up common data set for the recommender algorithms
    (ml, evaluationData, rankings) = LoadMovieLensData()

    # Construct an Evaluator to, you know, evaluate them
    evaluator = Evaluator(evaluationData, rankings)

    contentKNN = ContentKNNAlgorithm()
    evaluator.AddAlgorithm(contentKNN, "ContentKNN")

    # Just make random recommendations
    Random = NormalPredictor()
    evaluator.AddAlgorithm(Random, "Random")

    evaluator.Evaluate(False)

    evaluator.SampleTopNRecs(ml, id)
Beispiel #10
0
    )
    rankings = ml.getPopularityRanks()
    return (ml, data, rankings)


np.random.seed(0)
random.seed(0)

# Load up common data set for the recommender algorithms
(ml, evaluationData, rankings) = LoadMovieLensData()

# Construct an Evaluator to, you know, evaluate them
evaluator = Evaluator(evaluationData, rankings)

# SVD
SVD = SVD()
evaluator.AddAlgorithm(SVD, "SVD")

# SVD++
SVDPlusPlus = SVDpp()
evaluator.AddAlgorithm(SVDPlusPlus, "SVD++")

# Just make random recommendations
Random = NormalPredictor()
evaluator.AddAlgorithm(Random, "Random")

# Fight!
evaluator.Evaluate(False)

evaluator.SampleTopNRecs(ml)
Beispiel #11
0
    print("Loading movie ratings...")
    data = ml.loadMovieLensLatestSmall()
    print(
        "\nComputing movie popularity ranks so we can measure novelty later..."
    )
    rankings = ml.getPopularityRanks()
    return (ml, data, rankings)


np.random.seed(0)
random.seed(0)

# Load up common data set for the recommender algorithms
(ml, evaluationData, rankings) = LoadMovieLensData()

# Construct an Evaluator to, you know, evaluate them
evaluator = Evaluator(evaluationData, rankings)

#Autoencoder
AutoRec = AutoRecAlgorithm()
evaluator.AddAlgorithm(AutoRec, "AutoRec")

# Just make random recommendations
Random = NormalPredictor()
evaluator.AddAlgorithm(Random, "Random")

# Fight!
evaluator.Evaluate(True)

evaluator.SampleTopNRecs(ml)
Beispiel #12
0
    print("Loading movie ratings...")
    data = source.loadMovieLensRating()
    print("Prepare movie information...")
    source.computeMovieInformation()
    print("Creating ranking for each movie ...")
    rankings = source.getPopularityRanksByRating()
    return (source, data, rankings)


np.random.seed(0)
random.seed(0)

# Load up common data set for the recommender algorithms
(dataSource, data, rankings) = LoadData()

# Construct an Evaluator to, you know, evaluate them
evaluator = Evaluator(data, rankings)

contentKNN = KNNAlgorithm()
evaluator.AddAlgorithm(contentKNN, "ContentKNN")

# Just make random recommendations
# Random = NormalPredictor()
# evaluator.AddAlgorithm(Random, "Random")

evaluator.Evaluate()

useTargetId = 85
totalMovieNeeded = 5
evaluator.GetRecomendationMovie(dataSource, useTargetId, totalMovieNeeded)