def test_BRKnnb_auto_optimize_k(self):
data = csr.csr_matrix([[0, 1], [1, 1], [0, 1.1], [1.1, 1]])
train_ids = [['lid0', 'lid1'], ['lid0', 'lid1'], ['lid2', 'lid3'], ['lid0', 'lid1']]
mlb = MultiLabelBinarizer()
y = mlb.fit_transform(train_ids)
knn = BRKNeighborsClassifier(mode='b', n_neighbor_candidates=[1, 3], auto_optimize_k=True)
# noinspection PyUnusedLocal
def fun(s, X, y_):
return data[[1, 2, 3]], data[[0]], y[[1, 2, 3]], y[[0]]
BRKNeighborsClassifier._get_split = fun
knn.fit(data, y)
self.assertEquals(3, knn.n_neighbors)
pred = knn.predict(csr.csr_matrix([[0.1, 1], [2, 2]])).todense()
np.testing.assert_array_equal([[1, 1, 0, 0], [1, 1, 0, 0]], pred)
# def test_time_brknnb(self):
# times = []
# X = sp.rand(10000, 5000, density=0.005, format='csr')
# y = sp.rand(10000, 3000, density=0.005, format='csr')
# knn = BRKNeighborsClassifier(n_neighbors=100)
# knn.fit(X,y)
# X_test = sp.rand(1000, 5000, density=0.005, format ='csr')
# for _ in range(5):
# start = default_timer()
# knn.predict(X_test)
# times.append(default_timer() - start)
# print(np.mean(times))
评论列表
文章目录