class_docstr: Weight of Evidence coding for categorical features.
  
  Supported targets: binomial. For polynomial target support, see PolynomialWrapper.
  
  Parameters
  ----------
  
  verbose: int
      integer indicating verbosity of the output. 0 for none.
  cols: list
      a list of columns to encode, if None, all string columns will be encoded.
  drop_invariant: bool
      boolean for whether or not to drop columns with 0 variance.
  return_df: bool
      boolean for whether to return a pandas DataFrame from transform (otherwise it will be a numpy array).
  handle_missing: str
      options are 'return_nan', 'error' and 'value', defaults to 'value', which will assume WOE=0.
  handle_unknown: str
      options are 'return_nan', 'error' and 'value', defaults to 'value', which will assume WOE=0.
  randomized: bool,
      adds normal (Gaussian) distribution noise into training data in order to decrease overfitting (testing data are untouched).
  sigma: float
      standard deviation (spread or "width") of the normal distribution.
  regularization: float
      the purpose of regularization is mostly to prevent division by zero.
      When regularization is 0, you may encounter division by zero.
  
  Example
  -------
  >>> from category_encoders import *
  >>> import pandas as pd
  >>> from sklearn.datasets import fetch_openml
  >>> bunch = fetch_openml(name="house_prices", as_frame=True)
  >>> display_cols = ["Id", "MSSubClass", "MSZoning", "LotFrontage", "YearBuilt", "Heating", "CentralAir"]
  >>> y = bunch.target > 200000
  >>> X = pd.DataFrame(bunch.data, columns=bunch.feature_names)[display_cols]
  >>> enc = WOEEncoder(cols=['CentralAir', 'Heating']).fit(X, y)
  >>> numeric_dataset = enc.transform(X)
  >>> print(numeric_dataset.info())
  <class 'pandas.core.frame.DataFrame'>
  RangeIndex: 1460 entries, 0 to 1459
  Data columns (total 7 columns):
   #   Column       Non-Null Count  Dtype  
  ---  ------       --------------  -----  
   0   Id           1460 non-null   float64
   1   MSSubClass   1460 non-null   float64
   2   MSZoning     1460 non-null   object 
   3   LotFrontage  1201 non-null   float64
   4   YearBuilt    1460 non-null   float64
   5   Heating      1460 non-null   float64
   6   CentralAir   1460 non-null   float64
  dtypes: float64(6), object(1)
  memory usage: 80.0+ KB
  None
  
  References
  ----------
  
  .. [1] Weight of Evidence (WOE) and Information Value Explained, from
  https://www.listendata.com/2015/03/weight-of-evidence-woe-and-information.html
class_docstr_tok: ["Weight","of","Evidence","coding","for","categorical","features",".","Supported","targets",":","binomial",".","For","polynomial","target","support",",","see","PolynomialWrapper",".","Parameters","--","--","--","--","--","verbose",":","int","integer","indicating","verbosity","of","the","output",".","0","for","none",".","cols",":","list","a","list","of","columns","to","encode",",","if","None",",","all","string","columns","will","be","encoded",".","drop_invariant",":","bool","boolean","for","whether","or","not","to","drop","columns","with","0","variance",".","return_df",":","bool","boolean","for","whether","to","return","a","pandas","DataFrame","from","transform","(","otherwise","it","will","be","a","numpy","array",")",".","handle_missing",":","str","options","are","'return_nan","'",",","'error","'","and","'value","'",",","defaults","to","'value","'",",","which","will","assume","WOE=0",".","handle_unknown",":","str","options","are","'return_nan","'",",","'error","'","and","'value","'",",","defaults","to","'value","'",",","which","will","assume","WOE=0",".","randomized",":","bool",",","adds","normal","(","Gaussian",")","distribution","noise","into","training","data","in","order","to","decrease","overfitting","(","testing","data","are","untouched",")",".","sigma",":","float","standard","deviation","(","spread","or","``","width","''",")","of","the","normal","distribution",".","regularization",":","float","the","purpose","of","regularization","is","mostly","to","prevent","division","by","zero",".","When","regularization","is","0",",","you","may","encounter","division","by","zero",".","Example","--","--","--","-",">",">",">","from","category_encoders","import","*",">",">",">","import","pandas","as","pd",">",">",">","from","sklearn.datasets","import","fetch_openml",">",">",">","bunch","=","fetch_openml","(","name=","''","house_prices","''",",","as_frame=True",")",">",">",">","display_cols","=","[","``","Id","''",",","``","MSSubClass","''",",","``","MSZoning","''",",","``","LotFrontage","''",",","``","YearBuilt","''",",","``","Heating","''",",","``","CentralAir","''","]",">",">",">","y","=","bunch.target",">","200000",">",">",">","X","=","pd.DataFrame","(","bunch.data",",","columns=bunch.feature_names",")","[","display_cols","]",">",">",">","enc","=","WOEEncoder","(","cols=","[","'CentralAir","'",",","'Heating","'","]",")",".fit","(","X",",","y",")",">",">",">","numeric_dataset","=","enc.transform","(","X",")",">",">",">","print","(","numeric_dataset.info","(",")",")","<","class","'pandas.core.frame.DataFrame","'",">","RangeIndex",":","1460","entries",",","0","to","1459","Data","columns","(","total","7","columns",")",":","#","Column","Non-Null","Count","Dtype","--","-","--","--","--","--","--","--","--","--","--","--","--","--","-","0","Id","1460","non-null","float64","1","MSSubClass","1460","non-null","float64","2","MSZoning","1460","non-null","object","3","LotFrontage","1201","non-null","float64","4","YearBuilt","1460","non-null","float64","5","Heating","1460","non-null","float64","6","CentralAir","1460","non-null","float64","dtypes",":","float64","(","6",")",",","object","(","1",")","memory","usage",":","80.0+","KB","None","References","--","--","--","--","--","..","[","1","]","Weight","of","Evidence","(","WOE",")","and","Information","Value","Explained",",","from","https",":","\/\/www.listendata.com\/2015\/03\/weight-of-evidence-woe-and-information.html"]
code: def _fit(self, X, y, **kwargs):
      # The label must be binary with values {0,1}
      y = pd.Series(y)
      unique = y.unique()
      if len(unique) != 2:
          raise ValueError(
              "The target column y must be binary. But the target contains "
              + str(len(unique))
              + " unique value(s)."
          )
      if y.isna().any():
          raise ValueError(
              "The target column y must not contain missing values."
          )
      if np.max(unique) < 1:
          raise ValueError(
              "The target column y must be binary with values {0, 1}. Value 1 was not found in the target."
          )
      if np.min(unique) > 0:
          raise ValueError(
              "The target column y must be binary with values {0, 1}. Value 0 was not found in the target."
          )
  
      self.ordinal_encoder = OrdinalEncoder(
          verbose=self.verbose,
          cols=self.cols,
          handle_unknown="value",
          handle_missing="value",
      )
      self.ordinal_encoder = self.ordinal_encoder.fit(X)
      X_ordinal = self.ordinal_encoder.transform(X)
  
      # Training
      self.mapping = self._train(X_ordinal, y)
  
file_path: category_encoders/category_encoders/woe.py
imports: import numpy
  from category_encoders.ordinal import OrdinalEncoder
  import category_encoders.utils
  from sklearn.utils.random import check_random_state
  import pandas
label_desc: Use image node_id 2 for calling the WOEEncoder obj's underlying member method code with example usage: obj._fit(X, y) without return types