我有一个包含分类变量的数据集。我已经定义了一个决策树算法,并使用 sklearn 中的一个热编码功能将这些列转换为数值等价物:
创建决策树分类器对象:
clf2 = DecisionTreeClassifier(criterion = 'entropy')
pipe = make_pipeline(column_trans, clf2) # (1)
pipe.fit(X_train2,y_train2)
在哪里:
column_trans = make_column_transformer(
(OneHotEncoder(),['ShelveLoc','Urban','US']),
remainder = 'passthrough')
现在,当我在不使用 sklearn 而是直接使用 pandas 进行分类特征编码的情况下构建决策树时,我能够找到合适的 alpha 候选者来修剪决策树
path = clf.cost_complexity_pruning_path(X_train, y_train)
ccp_alphas = path.ccp_alphas
ccp_alphas = ccp_alphas[:-1] #remove max value of alpha
现在,当我尝试查找候选 alpha 时,我的模型在 (1) 中被烘焙到管道参数中
path = pipe.cost_complexity_pruning_path(X_train2, y_train2)
我收到一条错误消息,指出管道没有称为成本复杂性修剪的属性。并查看可用于管道的所有属性,我也找不到成本复杂性修剪。
如果您在不使用 Sklearn 中的管道功能的情况下构建模型,是否只能进行成本复杂性修剪?