def test_remove_discrete(self): d1, d2, d3 = (DiscreteVariable(c, values=tuple("123")) for c in "abc") c1, c2 = (ContinuousVariable(c) for c in "xy") t = StringVariable("t") domain = Domain([d1, c1], d2, [c2, d3, t]) data = Table.from_domain(domain, 5) reduced = distance.remove_discrete_features(data) self.assertEqual(reduced.domain.attributes, (c1, )) self.assertEqual(reduced.domain.class_var, d2) self.assertEqual(reduced.domain.metas, (c2, d3, t)) reduced = distance.remove_discrete_features(data, to_metas=True) self.assertEqual(reduced.domain.attributes, (c1, )) self.assertEqual(reduced.domain.class_var, d2) self.assertEqual(reduced.domain.metas, (c2, d3, t, d1))
def _fix_discrete(): nonlocal data if data.domain.has_discrete_attributes() and ( issparse(data.X) and getattr(metric, "fallback", None) or not metric.supports_discrete or self.axis == 1): if not data.domain.has_continuous_attributes(): self.Error.no_continuous_features() return False self.Warning.ignoring_discrete() data = distance.remove_discrete_features(data)
def _fix_discrete(): nonlocal data if data.domain.has_discrete_attributes() and ( issparse(data.X) and getattr(metric, "fallback", None) or not metric.supports_discrete or self.axis == 1): if not data.domain.has_continuous_attributes(): self.Error.no_continuous_features() return False self.Warning.ignoring_discrete() data = distance.remove_discrete_features(data)