def _zero_score_of_low_log_odds_features(self, X, y): if self.min_log_odds_score <= 0: # we don't want to use log odds score, return an all-true mask return np.ones(X.shape[1]) if len(set(y)) != 2: raise ValueError('Calculating a log odds score requires a binary classification task') log_odds = calculate_log_odds(X, y) return (log_odds > self.min_log_odds_score) | (log_odds < -self.min_log_odds_score)
def test_log_odds_score(): X = [ [1, 1, 0, 0], [1, 1, 1, 0], [0, 1, 1, 1], [0, 0, 1, 1], ] y = np.array([0, 0, 1, 1]) res = calculate_log_odds(csr_matrix(X), y) print(res) assert res[0] > res[1] > res[2] > res[3]