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]