NimbusML
NimbusML copied to clipboard
FactorizationMachineBinaryClassifier is disabled from running in test_onevsrestclassifier.py
FactorizationMachineBinaryClassifier is disabled from runnning in several tests cases in test_onevsrestclassifier.py
class TestOneVsRestClassfier(unittest.TestCase):
def test_predict_proba_produces_distribution_sum_to_1(self):
clfs = [
# TODO: BUG 231482 , why doesnt FM work
# FactorizationMachineBinaryClassifier(),
...
]
for clf in clfs:
ovr = OneVsRestClassifier(classifier=clf)
probmean = proba_average(ovr)
assert_equal(
probmean,
1.0,
'{} probabilites {} do not sum to 1.0 over 3 classes'.format(
clf.__class__,
probmean))
def test_failing_predict_proba_called_with_use_probabilites_false(self):
clfs = [
# TODO: BUG 231482 , why doesnt FM work
# FactorizationMachineBinaryClassifier(),
LogisticRegressionBinaryClassifier(),
...
]
for clf in clfs:
ovr = OneVsRestClassifier(classifier=clf, use_probabilities=False)
check_predict_proba_when_trained_with_use_probabilites_false(
self, ovr, clf)
def test_decision_function_produces_distribution_not_sum_to_1(self):
clfs = [
# TODO: BUG 231482 , why doesnt FM work
# FactorizationMachineBinaryClassifier(),
LogisticRegressionBinaryClassifier(),
....
]
for clf in clfs:
ovr = OneVsRestClassifier(classifier=clf, use_probabilities=False)
scoremean = decfun_average(ovr)
assert_not_equal(
scoremean,
1.0,
'{} raw scores should not sum to 1.0 over 3 classes'.format(
clf.__class__))
def test_failing_decision_function_called_with_use_probabilites_true(self):
clfs = [
# TODO: BUG 231482 , why doesnt FM work
# FactorizationMachineBinaryClassifier(),
LogisticRegressionBinaryClassifier(),
....
]
for clf in clfs:
ovr = OneVsRestClassifier(classifier=clf, use_probabilities=True)
check_decision_function_when_trained_with_use_probabilites_true(
self, ovr, clf)
def test_ovr_accuracy(self):
clfs = [
# TODO: BUG 231482 , why doesnt FM work
# FactorizationMachineBinaryClassifier(),
LogisticRegressionBinaryClassifier(number_of_threads=1),
....
]
for clf in clfs:
ovr = OneVsRestClassifier(classifier=clf, use_probabilities=True)
metrics = accuracy(ovr)
accu = metrics['Accuracy(micro-avg)'][0]
# algos will have wide range of accuracy, so use low bar. Also
# checks Pipeline + Ova + clf
assert_greater(
accu, 0.65, "{} accuracy is too low {}".format(
clf.__class__, accu))