Ошибка: ОБЩЕЕ КОЛИЧЕСТВО ИТЕРАЦИЙ ДОСТИГЛО ПРЕДЕЛА при использовании стекирующего ансамбля для модели классификации

#python #ensemble-learning

#python #ансамбль-обучение

Вопрос:

Я хочу построить модель классификации, используя модель stacking ensemble.

Это мой код:

 level0 = list()
level0.append(('log', LogisticRegression()))
level0.append(('rf', RandomForestClassifier(n_estimators=600, class_weight='balanced')))
level0.append(('xgb', XGBClassifier(scale_pos_weight = sum_neg/sum_pos)))
# define meta learner model
level1 = LogisticRegression(solver='lbfgs', max_iter=10000)
# define the stacking ensemble
model = StackingClassifier(estimators=level0, final_estimator=level1, cv=5)

model.fit(X_train, y_train.ravel()) 
y_pred = model.predict(X_test)
  

Это ошибка:

 764: ConvergenceWarning: lbfgs failed to converge (status=1):
STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
Increase the number of iterations (max_iter) or scale the data as shown in:
https://scikit-learn.org/stable/modules/preprocessing.html
Please also refer to the documentation for alternative solver options:
https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression
extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)
  

Я увеличил max_iter до 10000, но он все еще выдает эту ошибку.

Комментарии:

1. Вам нужно изменить C hiperparameter (или больше или меньше) на LinearRegression , чтобы получить сходимость, или максимально увеличить tol hiperparameter

2. Можете ли вы объяснить свой ответ? Логистическая регрессия может использоваться в качестве модели мета-обучения в стекировании.

3. Ваша LogisticRegression не может минимизировать ошибку до значения tol (hiperparameter), тогда вы можете изменить значение C, чтобы удалить регулирование в вашей модели и попытаться получить любой результат

4. Можете ли вы привести пример? что такое C и tol?

5. level1 = LogisticRegression (C = 10, tol = 0.01, решатель = ‘lbfgs’, max_iter = 10000)