Beispiel #1
0
def test_fit_predict_HolE():
    model = HolE(batches_count=1, seed=555, epochs=20, k=10,
                 loss='pairwise', loss_params={'margin': 1}, regularizer='LP',
                 regularizer_params={'lambda': 0.1, 'p': 2}, 
                 optimizer='adagrad', optimizer_params={'lr':0.1})
    X = np.array([['a', 'y', 'b'],
                  ['b', 'y', 'a'],
                  ['a', 'y', 'c'],
                  ['c', 'y', 'a'],
                  ['a', 'y', 'd'],
                  ['c', 'y', 'd'],
                  ['b', 'y', 'c'],
                  ['f', 'y', 'e']])
    model.fit(X)
    y_pred, _ = model.predict(np.array([['f', 'y', 'e'], ['b', 'y', 'd']]), get_ranks=True)
    print(y_pred)
    assert y_pred[0] > y_pred[1]
Beispiel #2
0
model = HolE(batches_count=50,
             epochs=300,
             k=100,
             eta=20,
             optimizer='adam',
             optimizer_params={'lr': 1e-4},
             loss='multiclass_nll',
             regularizer='LP',
             regularizer_params={
                 'p': 3,
                 'lambda': 1e-5
             },
             seed=0,
             verbose=True)

model.fit(X_train)

filter_triples = np.concatenate((X_train, X_test))
ranks = evaluate_performance(X_test,
                             model=model,
                             filter_triples=filter_triples,
                             use_default_protocol=True,
                             verbose=True)

mr = mr_score(ranks)
mrr = mrr_score(ranks)

print("MRR: %.2f" % (mrr))
print("MR: %.2f" % (mr))

hits_10 = hits_at_n_score(ranks, n=10)