def test_fit(self): ranker = PercentileRankOneFeature(feature="x3") assert ranker.feature_importances_ is None ranker.fit(x=self.data["X_train"], y=self.data["y_train"]) np.testing.assert_array_equal( ranker.feature_importances_, np.array([0, 0, 1, 0]) )
def test_predict_proba(self): for direction_value in [True, False]: ranker = PercentileRankOneFeature( feature="x3", low_value_high_score=direction_value) ranker.fit(x=self.data["X_train"], y=self.data["y_train"]) results = ranker.predict_proba(self.data["X_test"]) if direction_value: expected_ranks = [6, 1, 3, 0, 5, 2, 4, 5] else: expected_ranks = [0, 5, 3, 6, 1, 4, 2, 1] assert scores_align_with_ranks(expected_ranks, results[:, 1])
def test_predict_proba(self): for descend_value in [True, False]: ranker = PercentileRankOneFeature(feature="x3", descend=descend_value) ranker.fit(x=self.data["X_train"], y=self.data["y_train"]) results = ranker.predict_proba(self.data["X_test"]) if descend_value: expected_results = np.array([ np.zeros(len(self.data["X_test"])), [0.875, 0.125, 0.375, 0, 0.625, 0.25, 0.5, 0.625], ]).transpose() else: expected_results = np.array([ np.zeros(len(self.data["X_test"])), [0, 0.75, 0.5, 0.875, 0.125, 0.625, 0.375, 0.125], ]).transpose() np.testing.assert_array_equal(results, expected_results)
def test_predict_proba(self): for descend_value in [True, False]: ranker = PercentileRankOneFeature(feature='x3', descend=descend_value) ranker.fit(x=self.data['X_train'], y=self.data['y_train']) results = ranker.predict_proba(self.data['X_test']) if descend_value: expected_results = np.array([ np.zeros(len(self.data['X_test'])), [.875, .125, .375, 0, .625, .25, .5, .625] ]).transpose() else: expected_results = np.array([ np.zeros(len(self.data['X_test'])), [0, .75, .5, .875, .125, .625, .375, .125] ]).transpose() np.testing.assert_array_equal(results, expected_results)
def test_ranking_on_unavailable_feature_raises_error(self): ranker = PercentileRankOneFeature(feature="x5") with self.assertRaises(BaselineFeatureNotInMatrix): ranker.fit(x=self.data["X_train"], y=self.data["y_train"])
def test_fit(self): ranker = PercentileRankOneFeature(feature='x3') assert ranker.feature_importances_ == None ranker.fit(x=self.data['X_train'], y=self.data['y_train']) np.testing.assert_array_equal(ranker.feature_importances_, np.array([0, 0, 1, 0]))