C:\Users\Admin\AppData\Local\Temp\ipykernel_33104 \472201149.py:23: RuntimeWarning: в квадрате обнаружено переполнение
SSE = np.sum(np.abs(y - y_pred)**2)
C:\Users \Admin\AppData\Roaming\Python\Python39\site-packages\scipy\optimize_numdiff.py:576: RuntimeWarning: при вычитании обнаружено недопустимое значение
df = fun(x) - f0
C:\Users\Admin\AppData\Local\Temp\ipykernel_33104\472201149.py:23: RuntimeWarning: переполнение обнаружено в квадрате
SSE = np.sum(np.abs(y - y_pred)** 2)
Ниже приведен пример моего кода.
import numpy as np
from scipy.optimize import minimize
# Generate data
A = -6.899 # Parameter 1 (scale)
B = 0.0221 # Parameter 2 (concavity)
C = 9.909 # Parameter 3 (intercept)
x = np.linspace(0, 100, 101) # A bunch of evenly spaced points
y = A*np.exp(B*x) + C
# Function to calculate SSE or RMSE between function and data
def loss_func(parameters, x, y):
A, B, C = parameters
y_pred = A*np.exp(B*x) + C
SSE = np.sum(np.abs(y - y_pred)**2)
RMSE = np.sqrt(SSE / len(y))
return RMSE # Change this to SSE or RMSE as desired
guess = [1, 1, 1]
# Optimize the function
sol = minimize(loss_func, guess, args=(x, y), method = 'BFGS', bounds=None, constraints=None)
print("Optimized parameters:", sol.x)
Кто-нибудь знает, почему я наблюдаю разницу в настроенных параметрах, приводящую к минимуму моей целевой функции в зависимости от применяемой метрики? Ищу ответы, которые могут объяснить любые ошибки, которые я могу сделать, нюансы в scipy.optimize.minimize или различия между SSE и RMSE, которые могут вызвать различия в обнаруженных минимумах.

Изменить:
После дальнейшего исследования решения После моей минимизации я заметил следующее при использовании SSE в качестве метрики целевой функции, что указывает на то, что в этом случае сходимость вообще не достигается. Однако использование RMSE в качестве показателя целевой функции также приводит к сообщению «успех: ложь». Теперь у меня возникает вопрос: почему я не нахожу успешного решения и почему использование RMSE по-прежнему дает результаты, более близкие к целевым, чем использование SSE?
fun: 54279.23221060659
hess_inv: array([[ 9.99899697e-01, -1.00146569e-02, 2.07889631e-88],
[-1.00146569e-02, 1.00303413e-04, 2.07564554e-86],
[ 2.07889631e-88, 2.07564554e-86, 1.00000000e+00]])
jac: array([ 1668.19189453, 117747.58496094, 3464.14257812])
message: 'Desired error not necessarily achieved due to precision loss.'
nfev: 34
nit: 1
njev: 6
status: 2
success: False
x: array([ 0.98988469, -0.00994935, 1. ])
Подробнее здесь: https://stackoverflow.com/questions/782 ... -of-square