code: def make_mixed_classification(n_samples, n_features, n_categories):
      X, y = make_classification(
          n_samples=n_samples,
          n_features=n_features,
          random_state=42,
          n_informative=5,
      )
      cat_cols = random.choices(
          list(range(X.shape[-1])), k=n_categories
      )
      num_cols = [i for i in range(X.shape[-1]) if i not in cat_cols]
      card_l = [2, 3, 5, 5]
      # for col in cat_cols:
      #     X[:, col] = pd.qcut(X[:, col], q=4).codes.astype(int)
      for card, col in zip(card_l, cat_cols):
          X[:, col] = pd.qcut(X[:, col], q=card).codes.astype(int)
      col_names = []
      num_col_names = []
      cat_col_names = []
      for i in range(X.shape[-1]):
          if i in cat_cols:
              col_names.append(f"cat_col_{i}")
              cat_col_names.append(f"cat_col_{i}")
          if i in num_cols:
              col_names.append(f"num_col_{i}")
              num_col_names.append(f"num_col_{i}")
      X = pd.DataFrame(X, columns=col_names)
      y = pd.Series(y, name=target_name)
      data = X.join(y)
      return data, cat_col_names, num_col_names
  
file_path: pytorch_tabular/examples/__only_for_dev__/to_test_dae.py
imports: import random
  from pathlib import Path
  import numpy
  import pandas
  from sklearn.datasets import make_classification
  from sklearn.metrics import accuracy_score, f1_score
  from sklearn.model_selection import train_test_split
  from pytorch_tabular import TabularModel
  from pytorch_tabular.config import DataConfig, OptimizerConfig, TrainerConfig
  from pytorch_tabular.models import CategoryEmbeddingModelConfig
  from pytorch_tabular.ssl_models.dae import DenoisingAutoEncoderConfig
label_desc: Use image node_id 1 for calling a global function with example usage: make_mixed_classification(n_samples, n_features, n_categories) and returns: data,  cat_col_names,  num_col_names