Устранена одна проблема при оптимизации параметров с помощью BayesSearchCV. Мой код - вы можете найти его ниже с информацией об ошибке:
import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from skopt import BayesSearchCV
X = df.drop('Y', axis=1)
y = df.Y
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.7, random_state=0)
seed =10
xg_cl = xgb.XGBClassifier()
params = {
'max_depth':[3,4,5,7,9,11],
'eta': [0.1, 0.3, 0.5, 0.8, 1.0],
'learning_rate':[0.01,0.03,0.07,0.1,0.3,0.5,0.9],
'min_child_weight':[1,3,5,7],
'reg_lambda':[0.1,0.5,1,1.3,1.7,2.5,3],
'reg_alpha':[1,1.5,2,3,8,10,12,15,18],
'gamma':[0.1,0.5,1,1.5,2,5,10,13],
'subsample':[0.4,0.5,0.6,0.7,0.8,0.9,1],
'colsample_bytree':[0.4,0.5,0.6,0.7,0.8,0.9,1],
'scale_pos_weight':[0.5,1,2,3,4,5,10,12],
'n_estimators': [100, 250, 500, 1000, 5000, 7000]}
clf = BayesSearchCV(xg_cl, search_spaces=params, n_iter=10, verbose = 3, n_jobs = -1, random_state=42, cv=2, scoring='neg_mean_squared_error')
clf.fit(X_train, y_train)
print('Best roc_auc: {:.4}, with best params: {}'.format(clf.best_score_, clf.best_params_))
Запуск дает мне ошибку:
Traceback (most recent call last):
<ipython-input-104-849db0dd2643> in <module>
42 clf = BayesSearchCV(xg_cl, search_spaces=params, n_iter=10, verbose = 3, n_jobs = -1, random_state=42, cv=2, scoring='neg_mean_squared_error')
43
---> 44 clf.fit(X_train, y_train)
45
46 print('Best roc_auc: {:.4}, with best params: {}'.format(clf.best_score_, clf.best_params_))
............
/opt/conda/lib/python3.7/site-packages/sklearn/utils/deprecation.py in wrapped(*args, **kwargs)
66 def wrapped(*args, **kwargs):
67 warnings.warn(msg, category=FutureWarning)
---> 68 return init(*args, **kwargs)
69 cls.__init__ = wrapped
70
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
Что именно я могу сделать, чтобы решить эту проблему? Нужна ваша помощь, коллеги