def test_stacked_featurizer(self): data = self.make_test_data() data['y'] = [1, 2, 3] # Test for a regressor model = DummyRegressor() model.fit(self.multi.featurize_many(data['x']), data['y']) # Test the predictions f = StackedFeaturizer(self.single, model) self.assertEquals([2], f.featurize(data['x'][0])) # Test the feature names self.assertEquals(['prediction'], f.feature_labels()) f.name = 'ML' self.assertEquals(['ML prediction'], f.feature_labels()) # Test classifier model = DummyClassifier("prior") data['y'] = [0, 0, 1] model.fit(self.multi.featurize_many(data['x']), data['y']) # Test the prediction f.model = model self.assertEquals([2. / 3], f.featurize(data['x'][0])) # Test the feature labels self.assertRaises(ValueError, f.feature_labels) f.class_names = ['A', 'B'] self.assertEquals(['ML P(A)'], f.feature_labels()) # Test with three classes data['y'] = [0, 2, 1] model.fit(self.multi.featurize_many(data['x']), data['y']) self.assertArrayAlmostEqual([1. / 3] * 2, f.featurize(data['x'][0])) f.class_names = ['A', 'B', 'C'] self.assertEquals(['ML P(A)', 'ML P(B)'], f.feature_labels())
def test_stacked_featurizer(self): data = self.make_test_data() data['y'] = [1, 2, 3] # Test for a regressor model = DummyRegressor() model.fit(self.multi.featurize_many(data['x']), data['y']) # Test the predictions f = StackedFeaturizer(self.single, model) self.assertEqual([2], f.featurize(data['x'][0])) # Test the feature names self.assertEqual(['prediction'], f.feature_labels()) f.name = 'ML' self.assertEqual(['ML prediction'], f.feature_labels()) # Test classifier model = DummyClassifier("prior") data['y'] = [0, 0, 1] model.fit(self.multi.featurize_many(data['x']), data['y']) # Test the prediction f.model = model self.assertEqual([2. / 3], f.featurize(data['x'][0])) # Test the feature labels self.assertRaises(ValueError, f.feature_labels) f.class_names = ['A', 'B'] self.assertEqual(['ML P(A)'], f.feature_labels()) # Test with three classes data['y'] = [0, 2, 1] model.fit(self.multi.featurize_many(data['x']), data['y']) self.assertArrayAlmostEqual([1. / 3] * 2, f.featurize(data['x'][0])) f.class_names = ['A', 'B', 'C'] self.assertEqual(['ML P(A)', 'ML P(B)'], f.feature_labels())