我一直在嘗試調整 MLP 模型的超參數以解決回歸問題,但我總是收到收斂警告。這是我的代碼def mlp_model(X, Y):estimator=MLPRegressor()param_grid = {'hidden_layer_sizes': [(50,50,50), (50,100,50), (100,1)], 'activation': ['relu','tanh','logistic'], 'alpha': [0.0001, 0.05], 'learning_rate': ['constant','adaptive'], 'solver': ['adam']}gsc = GridSearchCV( estimator, param_grid, cv=5, scoring='neg_mean_squared_error', verbose=0, n_jobs=-1)grid_result = gsc.fit(X, Y)best_params = grid_result.best_params_best_mlp = MLPRegressor(hidden_layer_sizes = best_params["hidden_layer_sizes"], activation =best_params["activation"], solver=best_params["solver"], max_iter= 5000, n_iter_no_change = 200 )scoring = { 'abs_error': 'neg_mean_absolute_error', 'squared_error': 'neg_mean_squared_error', 'r2':'r2'}scores = cross_validate(best_mlp, X, Y, cv=10, scoring=scoring, return_train_score=True, return_estimator = True)return scores我得到的警告是ConvergenceWarning: Stochastic Optimizer: Maximum iterations (5000) reached and the optimization hasn't converged yet.% self.max_iter, ConvergenceWarning)我的數據集中有 87 個特征和 1384 行,都是數字的,并且已經使用 MinMaxScaler 進行了縮放。如果您能指導我調整超參數,我將不勝感激。
1 回答

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
好吧,您可以嘗試三個選項,一個很明顯,您將max_iter
5000 增加到更高的數字,因為您的模型在 5000 個時期內沒有收斂,其次,嘗試使用batch_size
,因為您有 1384 個訓練示例,您可以使用 16,32 或 64 的批量大小,這有助于在 5000 次迭代內收斂您的模型,最后,您始終可以learning_rate_init
將值增加到稍高的值,因為您的模型尚未收斂,因此學習率似乎很低即使經過 5000 次迭代。希望這可以幫助
添加回答
舉報
0/150
提交
取消