def feature_types(df):
    """
    Get feature types

    Args:
        df: pd.DataFrame, input data
    Returns:
        f_types: feature type
    """
    ftypes = {}
    ftypes['num_cols'] = [str(x) for x in df.select_dtypes(include=['int32', 'int64', 'float32', 'float64']).columns]
    ftypes['cat_cols'] = [str(x) for x in df.select_dtypes(include=['object', 'category']).columns]
    ftypes['date_cols'] = [str(x) for x in df.select_dtypes(include=['datetime']).columns]
    ftypes['bool_cols'] = [str(x) for x in df.select_dtypes(include=['bool']).columns]
    return ftypes