def simulate_predictions(n=100, seed=None): """simulate classifier predictions for data size of n """ if seed is None: seed = random_seed() np.random.seed(seed % (2 ** 32)) probas = np.random.random(n) classes = [discrete_sample({0: (1 - p), 1: p}) for p in probas] return classes, probas
def test_roc_simulated(): # Test Area under Receiver Operating Characteristic (ROC) curve for _ in range(10): y_true, probas_pred = simulate_predictions(1000, seed=random_seed()) rc = RocCurve.from_labels(y_true, probas_pred) auc_expected1 = _auc(rc.fprs, rc.tprs) auc_expected2 = auc_sklearn(y_true, probas_pred) auc_actual = roc_auc_score(y_true, probas_pred) assert_almost_equal(auc_expected1, auc_actual, 3) assert_almost_equal(auc_expected2, auc_actual, 3)