class_docstr: Сlass for storing, cleaning and processing your dataset
class_docstr_tok: ["\u0421lass","for","storing",",","cleaning","and","processing","your","dataset"]
docstr: Description of _auto_detect_cat_features:
      Auto-detection categorical_features by simple rule:
      categorical feature == if feature nunique low 1% of data
  
  Args:
      data (pd.DataFrame): dataset
  
  Returns:
      cat_features (list): columns names cat features
docstr_tok: ["Description","of","_auto_detect_cat_features",":","Auto-detection","categorical_features","by","simple","rule",":","categorical","feature","==","if","feature","nunique","low","1","%","of","data","Args",":","data","(","pd.DataFrame",")",":","dataset","Returns",":","cat_features","(","list",")",":","columns","names","cat","features"]
code: def auto_detect_cat_features(self, data):
      """
      Description of _auto_detect_cat_features:
          Auto-detection categorical_features by simple rule:
          categorical feature == if feature nunique low 1% of data
  
      Args:
          data (pd.DataFrame): dataset
  
      Returns:
          cat_features (list): columns names cat features
  
      """
      # object_features = list(data.columns[data.dtypes == 'object'])
      cat_features = data.columns[
          (data.nunique(dropna=False) < len(data) // 100)
          & (data.nunique(dropna=False) > 2)
      ]
      # cat_features = list(set([*object_features, *cat_features]))
      return cat_features
  
imports: import pandas
  import numpy
  from itertools import combinations
  from sklearn.preprocessing import StandardScaler
  from category_encoders import HashingEncoder, SumEncoder, PolynomialEncoder, BackwardDifferenceEncoder
  from category_encoders import OneHotEncoder, HelmertEncoder, OrdinalEncoder, CountEncoder, BaseNEncoder
  from category_encoders import TargetEncoder, CatBoostEncoder, WOEEncoder, JamesSteinEncoder
  from category_encoders.glmm import GLMMEncoder
  from sklearn.preprocessing import LabelEncoder
  from category_encoders.wrapper import PolynomialWrapper
  from .encoders import FrequencyEncoder
  from .None import settings
  import pdb
  import copy
  import dask
  import dask.dataframe
label_desc: Use image node_id 4 for calling the DataBunch obj's underlying member method code with example usage: obj.auto_detect_cat_features(data) and returns: cat_features