我遇到了 Pycaret 中分类变量的一种热编码问题。问题是,即使设置了我的分类变量,管道也会对分类变量应用标准化,而且我不知道我做错了什么。
首先,使用下面的代码一切正常:
from pycaret.classification import *
from pycaret.datasets import get_data
import pandas as pd
import numpy as np
import seaborn as sns
dataset = get_data('income')
dataset.dtypes
直到我开始设置并且
exp_clf01 = setup( data = dataset
, target = 'income >50K'
, session_id = 123
, numeric_features = ['age','education-num','capital-gain','capital-loss','hours-per-week']
, categorical_features = ['workclass','education','marital-status','occupation','relationship','race','sex','native-country']
)
df_transformed = get_config("X_train")
df_transformed.head()
尝试查看数据框的头部后,它仅将一个热编码应用于列
race
并规范化其他分类输入,我不明白为什么。
年龄 | 工作班 | 教育 | 教育编号 | 婚姻状况 | 职业 | 其他专栏 |
---|---|---|---|---|---|---|
46.0 | 0.303273 | 0.271186 | 11.0 | 0.101942 | 0.484643 | ... |
27.0 | 0.218620 | 0.412939 | 13.0 | 0.044165 | 0.484643 | ... |
33.0 | 0.218557 | 0.568315 | 14.0 | 0.448894 | 0.455449 | ... |
60.0 | 0.218557 | 0.412673 | 13.0 | 0.448894 | 0.484286 | ... |
25.0 | 0.218620 | 0.063798 | 6.0 | 0.044165 | 0.229692 | ... |
如何防止这种行为?
您需要在设置中设置参数'max_encoding_ohe',默认为25