AttributeError: у объекта 'tuple' нет атрибута 'fit'
Я хочу использовать пакетирование с XGBoost и Mlpregression. Если я использую один алгоритм, он будет работать правильно
XGBRegressor_bagging_model = BaggingRegressor(XGBRegressor_model,
n_estimators=100,
max_samples=1.0,
max_features=1.0,
bootstrap=True,
oob_score=True,
warm_start=False,
n_jobs=-1,
verbose=0)
MLP = BaggingRegressor(MLPRegressor_Model,
n_estimators=1000,
max_samples=1.0,
max_features=1.0,
bootstrap=True,
oob_score=True,
warm_start=False,
n_jobs=-1,
verbose=0)
XGBRegressor_bagging_model.fit(X_train, y_train)
MLP.fit(X_train, y_train)
print("XGBRegressor_bagging_model Predicted Is:", XGBRegressor_bagging_model.predict(X_test)[0:5])
print("MLP Predicted Is:", MLP.predict(X_test)[0:5])
print("XGBRegressor_bagging_model Score Is:", XGBRegressor_bagging_model.oob_score_)
print("MLP Score Is:", MLP.oob_score_)
но если я использую это так
bagging_model = BaggingRegressor((XGBRegressor_model, MLPRegressor_Model), n_estimators=100,max_samples=1.0, max_features=1.0, bootstrap=True, oob_score=True, warm_start=False, n_jobs=-1, verbose=0)
это не сработает и покажет мне эту ошибку
AttributeError: 'tuple' object has no attribute 'fit'
что я должен сделать, чтобы решить эту проблему?
1 ответ
Во второй версии вы проходите мимо (XGBRegressor_model, MLPRegressor_Model)
в качестве регрессора. Это не регрессор, а кортеж (который состоит из регрессоров). Ошибка гласит, что у кортежа нет метода fit
,
Вы должны передать один из этих регрессоров или создать составной регрессор из обоих.