以管道作为估计器的VotingClassifier

以管道作为估计器的VotingClassifier,第1张

管道作为估计器的VotingClassifier

问题出在

KerasClassifier
。它不提供
_estimator_type
已签入的
_validate_estimator

这不是使用管道的问题。管道将此信息作为属性提供。看这里。

因此,快速修复方法是设置

_estimator_type='classifier'

一个可重现的示例

# Define pipelinesfrom sklearn.pipeline import Pipelinefrom sklearn.tree import DecisionTreeClassifierfrom sklearn.svm import SVCfrom sklearn.preprocessing import MinMaxScaler, Normalizerfrom sklearn.ensemble import VotingClassifierfrom keras.wrappers.scikit_learn import KerasClassifierfrom sklearn.datasets import make_classificationfrom keras.layers import Densefrom keras.models import SequentialX, y = make_classification()# DTC pipelinefeaturiser = MinMaxScaler()dtc = DecisionTreeClassifier()dtc_pipe = Pipeline([('featuriser', featuriser), ('dtc', dtc)])# SVC pipelinescaler = Normalizer()svc = SVC(C=100, gamma=0.001, kernel='rbf')svc_pipe = Pipeline(    [('scaler', scaler), ('svc', svc)])# Keras pipelinedef get_model():    # create model    model = Sequential()    model.add(Dense(10, input_dim=20, activation='relu'))    model.add(Dense(1, activation='sigmoid'))    # Compile model    model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])    return modelcnn = KerasClassifier(build_fn=get_model)cnn._estimator_type = "classifier"cnn_pipe = Pipeline([('scaler', scaler), ('cnn', cnn)])# Make an ensembleensemble = VotingClassifier(estimators=[('dtc', dtc_pipe),        ('svc', svc_pipe),       ('cnn', cnn_pipe)],       voting='hard')ensemble.fit(X, y)


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zaji/5667675.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-16
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存