#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
hiperparameter2. Можете ли вы объяснить свой ответ? Логистическая регрессия может использоваться в качестве модели мета-обучения в стекировании.
3. Ваша LogisticRegression не может минимизировать ошибку до значения tol (hiperparameter), тогда вы можете изменить значение C, чтобы удалить регулирование в вашей модели и попытаться получить любой результат
4. Можете ли вы привести пример? что такое C и tol?
5. level1 = LogisticRegression (C = 10, tol = 0.01, решатель = ‘lbfgs’, max_iter = 10000)