code: def _type_detection_object(
      series, *, dirty_float_threshold, max_cat_cardinality="auto"
  ):
      clean_float_string, dirty_float = _find_string_floats(
          series, dirty_float_threshold
      )
      if dirty_float.any():
          return "dirty_float"
      elif clean_float_string.any():
          return _type_detection_float(
              series.astype(float),
              max_cat_cardinality=max_cat_cardinality,
          )
      if _string_is_date(series):
          return "date"
      if series.nunique() <= _get_max_cat_cardinality(
          len(series), max_cat_cardinality
      ):
          return "categorical"
      return "free_string"
  
imports: from importlib.metadata import version
  from joblib import hash
  import warnings
  from warnings import warn
  import numpy
  import pandas
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.compose import make_column_transformer, ColumnTransformer
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import make_pipeline
  from sklearn.preprocessing import OneHotEncoder, StandardScaler
  from sklearn.utils.validation import check_is_fitted
label_desc: Use image node_id 10 for calling a global function with example usage: _type_detection_object(series) and returns: str, str, str, str, _type_detection_float