示例#1
0
    def filter_seen(self, playlist_id, scores):
        start_pos = self.URM.indptr[playlist_id]
        end_pos = self.URM.indptr[playlist_id + 1]

        playlist_profile = self.URM.indices[start_pos:end_pos]

        scores[playlist_profile] = -np.inf

        return scores


# MARK: - Train and evaluate algorithm

icfrecommendertest = ItemCFKNNRecommender(URM_train, URM_all)
icfrecommendertest.fit(shrink=2, topK=100)
evaluate_algorithm(URM_test, icfrecommendertest, at=10)

icfrecommender = ItemCFKNNRecommender(URM_test, URM_all)
icfrecommender.fit(shrink=2, topK=100)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0

for line in target_playlist_file:
        start_pos = self.URM.indptr[playlist_id]
        end_pos = self.URM.indptr[playlist_id + 1]

        playlist_profile = self.URM.indices[start_pos:end_pos]

        scores[playlist_profile] = -np.inf

        return scores


# MARK: - Train and evaluate algorithm

cbfrecommender = ItemCBFKNNRecommender(URM_train, ICM_album, ICM_artist,
                                       ICM_duration)
cbfrecommender.fit()
evaluate_algorithm(URM_test, cbfrecommender)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0

for line in target_playlist_file:
    line = line.replace("\n", "")
    try:
        playlist_id = int(line)
        end_pos = self.URM_train.indptr[playlist_id + 1]

        playlist_profile = self.URM_train.indices[start_pos:end_pos]

        scores[playlist_profile] = -np.inf

        return scores


# MARK: - Train and evaluate algorithm

slimbprrecommendertest = SLIM_BPR_Python(URM_train,
                                         positive_threshold=0,
                                         sparse_weights=True)
slimbprrecommendertest.fit(epochs=2, topK=200)
evaluate_algorithm(URM_test, slimbprrecommendertest)

slimbprrecommender = SLIM_BPR_Python(URM_test,
                                     positive_threshold=0,
                                     sparse_weights=True)
slimbprrecommender.fit(epochs=2, topK=200)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0
示例#4
0
        # We are not interested in sorting the popularity value,
        # but to order the items according to it
        self.popularItems = np.argsort(itemPopularity)
        self.popularItems = np.flip(self.popularItems, axis=0)

    def recommend(self, user_id, at=10):
        recommended_items = self.popularItems[0:at]

        return recommended_items

# Evaluate algorithm

print("-- Top Pop Recommender --")
topPopRecommender = TopPopRecommender()
topPopRecommender.fit(URM_train)
evaluate_algorithm(URM_test, topPopRecommender)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0

for line in target_playlist_file:
    line = line.replace("\n", "")
    try:
        playlist_id = int(line)
示例#5
0
        start_pos = self.URM.indptr[playlist_id]
        end_pos = self.URM.indptr[playlist_id + 1]

        playlist_profile = self.URM.indices[start_pos:end_pos]

        scores[playlist_profile] = -np.inf

        return scores


# MARK: - Train and evaluate algorithm

hybrid_cf_cbf_recommendertest = Hybrid_CF_CBF_KNNRecommender(
    URM_train, URM_all, ICM_album, ICM_artist, ICM_duration)
hybrid_cf_cbf_recommendertest.fit(shrink=3, topK=200)
evaluate_algorithm(URM_test, hybrid_cf_cbf_recommendertest, at=10)

hybrid_cf_cbf_recommender = Hybrid_CF_CBF_KNNRecommender(
    URM_test, URM_all, ICM_album, ICM_artist, ICM_duration)
hybrid_cf_cbf_recommender.fit(shrink=3, topK=200)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0
class RandomRecommender(object):
    def fit(self, URM_train):
        self.numItems = URM_train.shape[0]

    def recommend(self, user_id, at=10):
        recommended_items = np.random.choice(self.numItems, at)

        return recommended_items


# Evaluate algorithm

print("-- Random Recommender --")
randomRecommender = RandomRecommender()
randomRecommender.fit(URM_train)
evaluate_algorithm(URM_test, randomRecommender)

# Let's generate recommendations for the target playlists

print("Generating recommendations...")

target_playlist_path = "../input/target_playlists.csv"
target_playlist_file = open(target_playlist_path, 'r')
target_playlist_file.seek(0)
target_playlist_tuples = []
numberOfTargets = 0

for line in target_playlist_file:
    line = line.replace("\n", "")
    try:
        playlist_id = int(line)