Better training and reenabled median

This commit is contained in:
Dominik Moritz Roth 2022-03-07 13:21:16 +01:00
parent 26527e83c3
commit 84deaa2f64

View File

@ -428,8 +428,8 @@ def scoreUnread(G, globMu, globStd):
#ws.append(['tgb_rank']) #ws.append(['tgb_rank'])
feedbacks.append(node['std']) feedbacks.append(node['std'])
ws.append(['sigma']) ws.append(['sigma'])
#feedbacks.append(node['median']) feedbacks.append(node['median'])
#ws.append(['median']) ws.append(['median'])
#feedbacks.append(node['se']) #feedbacks.append(node['se'])
#ws.append(['se']) #ws.append(['se'])
feedbacks.append(globMu) feedbacks.append(globMu)
@ -1266,7 +1266,7 @@ def train(initGamma, full=True):
print({'mse': mse, 'gamma': gamma, 'delta': delta}) print({'mse': mse, 'gamma': gamma, 'delta': delta})
delta = sum(gradient[g]**2 for g in gradient) delta = sum(gradient[g]**2 for g in gradient)
for wt in weights: for wt in weights:
weights[wt] += gamma*gradient[wt]/math.sqrt(delta) weights[wt] += gamma*0.1*gradient[wt]/math.sqrt(delta)
mse, gradient = evaluateFitness(books) mse, gradient = evaluateFitness(books)
if mse < last_mse: if mse < last_mse:
gamma = gamma*1.25 gamma = gamma*1.25
@ -1304,7 +1304,7 @@ def loadWeights():
with open('neuralWeights.json', 'r') as f: with open('neuralWeights.json', 'r') as f:
weights = json.loads(f.read()) weights = json.loads(f.read())
except IOError: except IOError:
weights = {"topList": 0.15, "recommender": 0.30, "author": 0.70, "series": 0.05, "tag": 0.05, "pagerank": 0.05, "mu": 0.50, "sigma": 0.30, "bias": 0.25} #, "tgb_rank": 0.10} weights = {"topList": 0.15, "recommender": 0.30, "author": 0.70, "series": 0.05, "tag": 0.05, "pagerank": 0.05, "mu": 0.50, "sigma": 0.30, "bias": 0.25, "median": 0.10} #, "tgb_rank": 0.10}
return weights return weights
def cliInterface(): def cliInterface():
@ -1324,6 +1324,7 @@ def cliInterface():
parser.add_argument('--v3d', action="store_true") parser.add_argument('--v3d', action="store_true")
parser.add_argument('--imgs', action="store_true") parser.add_argument('--imgs', action="store_true")
parser.add_argument('--perf-test', action="store_true") parser.add_argument('--perf-test', action="store_true")
parser.add_argument('--train', action="store_true")
cmds = parser.add_subparsers(required=True, dest='cmd') cmds = parser.add_subparsers(required=True, dest='cmd')
p_rec = cmds.add_parser('recommend', description="TODO", aliases=['rec']) p_rec = cmds.add_parser('recommend', description="TODO", aliases=['rec'])
@ -1387,6 +1388,9 @@ def mainCLI(args):
train(args.g, args.full) train(args.g, args.full)
exit() exit()
if args.train:
train(0.2, False)
bestListT = 'book' bestListT = 'book'
G, books = buildFullGraph(darkMode=args.dark) G, books = buildFullGraph(darkMode=args.dark)