import ffm
test_data = [[
(1, 1, 1.0), (2, 12, 1.0), (3, 17, 0.9890329837799072), (4, 18, 0.7214174270629883),
(5, 19, 0.3654496669769287), (6, 21, 1.0), (7, 25, 1.0), (8, 28, 1.0), (9, 29, 1.0), (10, 138, 1.0),
(10, 70, 1.0), (10, 93, 1.0), (10, 147, 1.0), (10, 48, 1.0), (10, 113, 1.0), (10, 115, 1.0), (10, 77, 1.0),
(10, 81, 1.0), (10, 46, 1.0), (10, 95, 1.0), (10, 57, 1.0), (10, 34, 1.0), (10, 66, 1.0), (10, 126, 1.0),
(10, 87, 1.0), (10, 69, 1.0), (10, 64, 1.0), (10, 123, 1.0), (10, 41, 1.0), (10, 116, 1.0), (10, 129, 1.0),
(11, 154, 1.0), (12, 167, 1.0), (12, 158, 1.0), (12, 168, 1.0), (12, 167, 1.0), (13, 174, 1.0), (13, 172, 1.0),
(13, 172, 1.0), (13, 174, 1.0), (13, 172, 1.0), (13, 176, 1.0), (13, 170, 1.0), (14, 180, 1.0), (15, 185, 1.0),
(15, 182, 1.0), (15, 185, 1.0), (15, 184, 1.0), (16, 187, 1.0), (17, 188, 1.0), (18, 192, 1.0), (19, 195, 1.0),
(20, 196, 1.0), (21, 197, 1.0), (22, 200, 1.0), (23, 204, 1.0), (24, 205, 1.0), (25, 207, 1.0), (26, 208, 1.0),
(27, 212, 1.0), (28, 213, 1.0), (29, 216, 1.0), (30, 217, 1.0), (31, 218, 1.0), (32, 219, 1.0)
], [
(1, 1, 1.0), (2, 15, 1.0), (3, 17, 0.303568840026855), (4, 18, 0.4841330647468567),
(5, 19, 0.3654496669769287), (6, 21, 1.0), (7, 25, 1.0), (8, 28, 1.0), (9, 29, 1.0), (10, 145, 1.0),
(10, 35, 1.0), (10, 99, 1.0), (10, 141, 1.0), (10, 83, 1.0), (10, 51, 1.0), (10, 101, 1.0), (10, 142, 1.0),
(10, 145, 1.0), (10, 37, 1.0), (10, 141, 1.0), (10, 102, 1.0), (10, 81, 1.0), (10, 108, 1.0), (10, 50, 1.0),
(10, 112, 1.0), (10, 60, 1.0), (10, 148, 1.0), (10, 142, 1.0), (10, 112, 1.0), (10, 85, 1.0), (10, 36, 1.0),
(10, 73, 1.0), (10, 49, 1.0), (10, 50, 1.0), (10, 142, 1.0), (10, 82, 1.0), (10, 128, 1.0), (10, 55, 1.0),
(10, 71, 1.0), (10, 137, 1.0), (10, 52, 1.0), (10, 148, 1.0), (10, 46, 1.0), (10, 98, 1.0), (10, 107, 1.0),
(11, 154, 1.0), (12, 167, 1.0), (12, 167, 1.0), (12, 165, 1.0), (12, 165, 1.0), (13, 176, 1.0), (13, 176, 1.0),
(13, 178, 1.0), (14, 179, 1.0), (15, 184, 1.0), (15, 184, 1.0), (17, 188, 1.0), (18, 192, 1.0), (19, 194, 1.0),
(21, 198, 1.0), (22, 201, 1.0), (23, 204, 1.0), (24, 205, 1.0), (25, 206, 1.0), (26, 208, 1.0), (27, 212, 1.0),
(29, 215, 1.0)]
]
y = [0, 1]
ffm_data = ffm.FFMData(test_data, y)
model = ffm.FFM(eta=0.1, lam=0.0001, k=4)
model.init_model(ffm_data)
for i in range(10):
print('iteration %d ' % i, end='')
model.iteration(ffm_data)
y_pred = model.predict(ffm_data)
print(y_pred)