Exemplo n.º 1
0
    def handle(self, *args, **options):
        username = sys.argv[2]

        X = []
        y = []

        for user_id, work_id, choice in Rating.objects.values_list('user_id', 'work_id', 'choice'):
            X.append((user_id, work_id))
            y.append(rating_values[choice])

        svd = MangakiSVD()
        # svd.fit(X, y)
        svd.load('backup.pickle')
        svd.get_reco(username, sending=True)
Exemplo n.º 2
0
 def __init__(self, dataset_name):
     self.algos = [
         lambda: MangakiALS(10),
         lambda: MangakiALS(20),
         lambda: MangakiALS(30),
         lambda: MangakiALS(40),
         lambda: MangakiWALS(20),
         lambda: MangakiSVD(10),
         lambda: MangakiSVD(20),
         lambda: MangakiSVD(30),
         lambda: MangakiSVD(40),
         lambda: MangakiSVD(50),
         lambda: MangakiPCA(20),
         lambda: MangakiKNN(20),
         lambda: MangakiKNN(40),
         lambda: MangakiZero()
     ]
     self.anonymized = None
     self.load_dataset(dataset_name)
Exemplo n.º 3
0
 def __init__(self, PIG_ID=None):
     self.algos = [
         MangakiALS(20),
         MangakiWALS(20),
         MangakiSVD(20),
         MangakiKNN(20),
         MangakiZero()
     ]
     # self.results.setdefault('x_axis', []).append()
     self.make_dataset(PIG_ID)
     self.execute()
Exemplo n.º 4
0
 def __init__(self, PIG):
     for TRAIN_PIG_LENGTH in range(10, 150, 20):
         print(TRAIN_PIG_LENGTH)
         self.algos = [
             MangakiSVD(),
             MangakiKNN(),
             MangakiKNN(30),
             MangakiKNN(45)
         ]
         self.results.setdefault('x_axis', []).append(TRAIN_PIG_LENGTH)
         self.make_dataset(TRAIN_PIG_LENGTH)
         self.execute()
Exemplo n.º 5
0
    def handle(self, *args, **options):
        username = sys.argv[2]

        X = []
        y = []

        for user_id, work_id, choice in Rating.objects.values_list('user_id', 'work_id', 'choice'):
            X.append((user_id, work_id))
            y.append(rating_values[choice])

        svd = MangakiSVD()
        # svd.fit(X, y)
        svd.load('backup.pickle')
        svd.get_reco(username, sending=True)
Exemplo n.º 6
0
from mangaki.utils.wals import MangakiWALS
from mangaki.utils.als import MangakiALS
from mangaki.utils.knn import MangakiKNN
from mangaki.utils.svd import MangakiSVD
from mangaki.utils.data import Dataset

ALGOS = {
    'knn': lambda: MangakiKNN(),
    'svd': lambda: MangakiSVD(20),
    'als': lambda: MangakiALS(20),
    'wals': lambda: MangakiWALS(20),
}


def fit_algo(algo_name, queryset, backup_filename):
    algo = ALGOS[algo_name]()
    dataset = Dataset()

    anonymized = dataset.make_anonymous_data(queryset)
    algo.set_parameters(anonymized.nb_users, anonymized.nb_works)
    algo.fit(anonymized.X, anonymized.y)
    if algo_name in {'svd', 'als', 'wals'}:  # KNN is constantly refreshed
        algo.save(backup_filename)
        dataset.save('ratings-' + backup_filename)
    return dataset, algo
Exemplo n.º 7
0
    def handle(self, *args, **options):
        username = sys.argv[2]

        svd = MangakiSVD()
        svd.load('backup.pickle')
        svd.get_reco(username, sending=True)