Skip to content

Commit 1421b34

Browse files
committed
ENH Partition matrix into train/test
1 parent b0636c4 commit 1421b34

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

‎ch08/load_ml100k.py‎

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,25 @@ def load():
2121
values = data[:, 2]
2222
reviews = sparse.csc_matrix((values, ij.T)).astype(float)
2323
return reviews.toarray()
24+
25+
26+
def get_train_test():
27+
import numpy as np
28+
reviews = load()
29+
U,M = np.where(reviews)
30+
test_idxs = set()
31+
while len(test_idxs) < len(U)//10:
32+
test_idxs.add(np.random.randint(0,len(U)-1))
33+
test_idxs = np.array(list(test_idxs))
34+
train = reviews.copy()
35+
train[U[test_idxs], M[test_idxs]] = 0
36+
37+
test = np.zeros_like(reviews)
38+
test[U[test_idxs], M[test_idxs]] = reviews[U[test_idxs], M[test_idxs]]
39+
40+
valid_U = train.any(0)
41+
valid_M = train.any(1)
42+
train = train[valid_M].T[valid_U].T
43+
test = test [valid_M].T[valid_U].T
44+
return train, test
45+

0 commit comments

Comments
 (0)