예제 #1
0
 def test_fit_initialization_count(self, _, n_init):
     data, labels = make_blobs()
     clusterer = Possibilistic(2, n_init=n_init)
     clusterer.initialization = MagicMock(
         return_value=initialize_random(data, 2))
     clusterer.fit(data)
     self.assertEqual(clusterer.initialization.call_count, n_init)
예제 #2
0
 def test_membership_calculation_range(self, _, clusters, features):
     data, labels = make_blobs(centers=clusters, n_features=features)
     clusterer = Possibilistic(clusters)
     clusterer.converge(data)
     self.assertTrue(
         np.all(clusterer.memberships > 0)
         and np.all(clusterer.memberships < 1))
예제 #3
0
 def test_fit_correct_assignment(self, _, n_init):
     data, labels = make_blobs()
     clusterer = Possibilistic(2, n_init=n_init)
     j_list = clusterer.fit(data)
     self.assertEqual(min(j_list), clusterer.objective(data))
예제 #4
0
 def test_fit_converge_count(self, _, n_init):
     data, labels = make_blobs()
     clusterer = Possibilistic(2, n_init=n_init)
     clusterer.converge = MagicMock()
     clusterer.fit(data)
     self.assertEqual(clusterer.converge.call_count, n_init)
예제 #5
0
 def test_center_calculation_shape(self, _, clusters, features, expected):
     data, labels = make_blobs(centers=clusters, n_features=features)
     clusterer = Possibilistic(clusters)
     clusterer.update(data)
     self.assertEqual(clusterer.calculate_centers(data).shape, expected)
예제 #6
0
 def test_first_update_assigns_membership_shape(self, _, clusters, features,
                                                expected_shape):
     data, labels = make_blobs(centers=clusters, n_features=features)
     clusterer = Possibilistic(clusters)
     clusterer.update(data)
     self.assertEqual(clusterer.memberships.shape, expected_shape)
예제 #7
0
 def test_converge_update_count(self, _, n_iter):
     data, labels = make_blobs()
     clusterer = Possibilistic(2, max_iter=n_iter)
     clusterer.update = MagicMock()
     clusterer.converge(data)
     self.assertLessEqual(clusterer.update.call_count, n_iter)