Я использую fmin_slsqp, чтобы найти веса, которые минимизируют среднеквадратическую ошибку. Веса должны быть положительными. Для каждой пары X и y это занимает ~10 секунд. (Каждый X равен (10, 1000), а y равен (1000)). У меня есть 8000 пар, которые нужно вычислить:(
Есть ли какая-то ошибка в коде, или просто мои данные сходятся слишком долго? Есть ли способ сделать этот процесс эффективно, например, есть ли способ вычислить все 8000 пар вместе?
def loss(W, X, y):
return np.mean((y - X.dot(W))**2)
def get_result(X, y):
w_start = [1/X.shape[1]] * X.shape[1]
weights = fmin_slsqp(partial(loss_w, X=X, y=y),
np.array(w_start),
bounds=[(0.0, np.inf)] * X.shape[1],
disp=False)
return weights
Подробнее здесь: https://stackoverflow.com/questions/790 ... g-too-long