PageRenderTime 56ms CodeModel.GetById 30ms RepoModel.GetById 1ms app.codeStats 0ms

/ramp/tests/test_selectors.py

https://github.com/psattige/ramp
Python | 51 lines | 43 code | 8 blank | 0 comment | 3 complexity | 6e8d4bfddc3199a7bf6d2529a9d55317 MD5 | raw file
  1. import sys
  2. sys.path.append('../..')
  3. import unittest
  4. import numpy as np
  5. import pandas as pd
  6. from pandas import DataFrame, Series, Index
  7. from pandas.util.testing import assert_almost_equal
  8. from ramp.builders import *
  9. from ramp.estimators.base import Probabilities
  10. from ramp.features.base import F, Map
  11. from ramp.features.trained import Predictions
  12. from ramp.model_definition import ModelDefinition
  13. from ramp.selectors import BinaryFeatureSelector
  14. from ramp.tests.test_features import make_data
  15. class TestSelectors(unittest.TestCase):
  16. def setUp(self):
  17. self.data = make_data(100)
  18. def test_binary_selectors(self):
  19. d = self.data
  20. d['target'] = [0] * 50 + [1] * 50
  21. d['good_feature'] = [0] * 35 + [1] * 65
  22. d['best_feature'] = d['target']
  23. features = map(F, ['a', 'b', 'good_feature', 'best_feature'])
  24. selector = BinaryFeatureSelector()
  25. x, ffs = build_featureset_safe(features, self.data)
  26. y, ff = build_target_safe(F('target'), self.data)
  27. cols = selector.select(x, y, 2)
  28. feature_rank = [F('best_feature'), F('good_feature')]
  29. self.assertEqual(cols, [f.unique_name for f in feature_rank])
  30. def test_binary_selectors_multiclass(self):
  31. d = self.data
  32. d['target'] = [0] * 50 + [1] * 25 + [2] * 25
  33. d['good_feature'] = [0] * 35 + [1] * 65
  34. d['best_feature'] = d['target']
  35. features = map(F, ['a', 'b', 'good_feature', 'best_feature'])
  36. selector = BinaryFeatureSelector()
  37. x, ffs = build_featureset_safe(features, self.data)
  38. y, ff = build_target_safe(F('target'), self.data)
  39. cols = selector.select(x, y, 2)
  40. feature_rank = [F('best_feature'), F('good_feature')]
  41. self.assertEqual(cols, [f.unique_name for f in feature_rank])
  42. if __name__ == '__main__':
  43. unittest.main()