class_docstr: Filter: Select the p-values for an estimated false discovery rate
  
  This uses the Benjamini-Hochberg procedure. ``alpha`` is an upper bound
  on the expected false discovery rate.
  
  Read more in the :ref:`User Guide <univariate_feature_selection>`.
  
  Parameters
  ----------
  score_func : callable
      Function taking two arrays X and y, and returning a pair of arrays
      (scores, pvalues).
      Default is f_classif (see below "See also"). The default function only
      works with classification tasks.
  
  alpha : float, optional
      The highest uncorrected p-value for features to keep.
  
  
  Attributes
  ----------
  scores_ : array-like, shape=(n_features,)
      Scores of features.
  
  pvalues_ : array-like, shape=(n_features,)
      p-values of feature scores.
  
  References
  ----------
  https://en.wikipedia.org/wiki/False_discovery_rate
  
  See also
  --------
  f_classif: ANOVA F-value between label/feature for classification tasks.
  mutual_info_classif: Mutual information for a discrete target.
  chi2: Chi-squared stats of non-negative features for classification tasks.
  f_regression: F-value between label/feature for regression tasks.
  mutual_info_regression: Mutual information for a contnuous target.
  SelectPercentile: Select features based on percentile of the highest scores.
  SelectKBest: Select features based on the k highest scores.
  SelectFpr: Select features based on a false positive rate test.
  SelectFwe: Select features based on family-wise error rate.
  GenericUnivariateSelect: Univariate feature selector with configurable mode.
class_docstr_tok: ["Filter",":","Select","the","p-values","for","an","estimated","false","discovery","rate","This","uses","the","Benjamini-Hochberg","procedure",".","``","alpha","``","is","an","upper","bound","on","the","expected","false","discovery","rate",".","Read","more","in","the",":","ref",":","`","User","Guide","<","univariate_feature_selection",">","`",".","Parameters","--","--","--","--","--","score_func",":","callable","Function","taking","two","arrays","X","and","y",",","and","returning","a","pair","of","arrays","(","scores",",","pvalues",")",".","Default","is","f_classif","(","see","below","``","See","also","''",")",".","The","default","function","only","works","with","classification","tasks",".","alpha",":","float",",","optional","The","highest","uncorrected","p-value","for","features","to","keep",".","Attributes","--","--","--","--","--","scores_",":","array-like",",","shape=","(","n_features",",",")","Scores","of","features",".","pvalues_",":","array-like",",","shape=","(","n_features",",",")","p-values","of","feature","scores",".","References","--","--","--","--","--","https",":","\/\/en.wikipedia.org\/wiki\/False_discovery_rate","See","also","--","--","--","--","f_classif",":","ANOVA","F-value","between","label\/feature","for","classification","tasks",".","mutual_info_classif",":","Mutual","information","for","a","discrete","target",".","chi2",":","Chi-squared","stats","of","non-negative","features","for","classification","tasks",".","f_regression",":","F-value","between","label\/feature","for","regression","tasks",".","mutual_info_regression",":","Mutual","information","for","a","contnuous","target",".","SelectPercentile",":","Select","features","based","on","percentile","of","the","highest","scores",".","SelectKBest",":","Select","features","based","on","the","k","highest","scores",".","SelectFpr",":","Select","features","based","on","a","false","positive","rate","test",".","SelectFwe",":","Select","features","based","on","family-wise","error","rate",".","GenericUnivariateSelect",":","Univariate","feature","selector","with","configurable","mode","."]
code: def _get_support_mask(self):
      check_is_fitted(self, "scores_")
  
      n_features = len(self.pvalues_)
      sv = np.sort(self.pvalues_)
      selected = sv[
          sv
          <= float(self.alpha)
          / n_features
          * np.arange(1, n_features + 1)
      ]
      if selected.size == 0:
          return np.zeros_like(self.pvalues_, dtype=bool)
      return self.pvalues_ <= selected.max()
  
imports: import numpy
  import warnings
  from scipy import special, stats
  from scipy.sparse import issparse
  from ..base import BaseEstimator
  from ..preprocessing import LabelBinarizer
  from ..utils import as_float_array, check_array, check_X_y, safe_sqr, safe_mask
  from ..utils.extmath import norm, safe_sparse_dot, row_norms
  from ..utils.validation import check_is_fitted
  from .base import SelectorMixin
label_desc: Use image node_id 2 for calling the SelectFdr obj's underlying member method code with example usage: obj._get_support_mask() and returns: unknown, np