def get_theta_of_problem(matrix, nr_features, nr_epochs, nr_iterations): nr_problems, nr_users = matrix.shape theta_users = np.random.rand(nr_users, nr_features) theta_problems = np.zeros((nr_problems, nr_features)) matrix_t = np.transpose(matrix) i = 0 while i <= nr_epochs: print('Progress: {}%'.format(100 * i / nr_epochs)) i += 1 for problem in range(nr_problems): x = np.array(theta_users) y = np.array(matrix[problem]) theta_problems[problem] = BaseRecommender.gradient_descent( x, y, nr_iterations)[1:] for user in range(nr_users): x = np.array(theta_problems) y = np.array(matrix_t[user]) theta_users[user] = BaseRecommender.gradient_descent( x, y, nr_iterations)[1:] return theta_problems.mean(axis=0)
def __init__(self, users=None, items=None, config=None): BaseRecommender.__init__(self, users, items, config) self.P = None self.Q = None self.b_i = None if config and self.users and self.items: nb_users = len(self.users) nb_movies = len(self.items) nb_latent_f = config['nb_latent_f'] scale = config['init_params_scale'] if 'init_params_scale' in config else 0.001 params = self._init_params(nb_users, nb_movies, nb_latent_f, scale=scale) self._set_params(params)
def __init__(self, users=None, items=None, config=None): BaseRecommender.__init__(self, users, items, config) self.sparse_matrix = None self.similarity_matrix = None self.intercepts = None if config: self.ignore_negative_weights = config['ignore_negative_weights'] self.model = SGDRegressor(penalty='elasticnet', n_iter=config['nb_epochs'], fit_intercept=config['fit_intercept'], alpha=config['alpha'], l1_ratio=config['l1_ratio']) self.intercepts = {}
def __init__(self, users=None, items=None, config=None, movie_to_imdb=None, user_pref_model=None, d2v_model=None): BaseRecommender.__init__(self, users, items, config) self.user_factors = None self.item_factors = None self.item_bias = None self.global_bias = None self.user_pref_model = user_pref_model self.d2v_model = d2v_model self.movie_to_imdb = movie_to_imdb if config and self.users and self.items: nb_users = len(self.users) nb_movies = len(self.items) nb_latent_f = config['nb_latent_f'] params = self._init_params(nb_users, nb_movies, nb_latent_f) self._set_params(params)
def load_recommender(filepath): """ Load a recommender model from file after it has been saved by save_recommender(). Parameters ---------- filepath : str The filepath to read from. """ return BaseRecommender.load(filepath)
def read_recommender_description(filepath): """ Read a recommender model description from file after it has been saved by save_recommender(), without loading all the associated data into memory. Parameters ---------- filepath : str The filepath to read from. """ return BaseRecommender.read_recommender_description(filepath)
def __init__(self, users=None, items=None, config=None): BaseRecommender.__init__(self, users, items, config) self.user_factors = None self.item_factors = None self.user_interest_factors = None self.user_interest_bias = None self.item_bias = None self.global_bias = None self.si_user_model = None self.si_item_model = None if config and self.users and self.items: nb_users = len(self.users) nb_movies = len(self.items) nb_latent_f = config['nb_latent_f'] nb_user_pref = config['nb_user_pref'] scale = config['init_params_scale'] if 'init_params_scale' in config else 0.001 params = self._init_params(nb_users, nb_movies, nb_latent_f, nb_user_pref, scale=scale) self._set_params(params)
def __init__(self, users=None, items=None, config=None, movie_to_imdb=None,d2v_model=None): BaseRecommender.__init__(self, users, items, config) self.user_factors = None self.item_factors = None self.item_bias = None self.global_bias = None self.nn_w1 = None self.nn_w2 = None self.d2v_model = d2v_model self.movie_to_imdb = movie_to_imdb if config and self.users and self.items: nb_users = len(self.users) nb_movies = len(self.items) self.nb_latent_f = config['nb_latent_f'] nb_d2v_features = config['nb_d2v_features'] nb_hidden_neurons = config['nb_hidden_neurons'] params = self._init_params(nb_users, nb_movies, self.nb_latent_f, nb_d2v_features, nb_hidden_neurons) self._set_params(params)