Есть несколько возможных решений вашей проблемы:
1.) фитинга линейной гипотезы с методом наименьших квадратов
В этом случае, вы аппроксимирующих гипотезу у = ах + Ь с наименее квадратов. Это действительно легко реализовать, но иногда линейная модель недостаточно хороша для ваших данных. Но ... я сначала попробую попробовать.
Хорошо, что существует закрытая форма, поэтому вы можете напрямую рассчитать параметры a и b из ваших данных.
См Least Squares
2.) Установочный нелинейную модель
После того, как увидел, что ваша линейная модель не описывает вашу функцию очень хорошо, вы можете попробовать, чтобы соответствовать более полиномиальные модели к данным.
Ваша гипотеза, то может выглядеть
у = ax² + Ьх + с
у = ax³ + bx² + сх + d
т.д.
Вы можете также используйте метод наименьших квадратов для подгонки ваших данных и методы из типов градиентного спуска (имитированный отжиг, ...). См. Также эту тему: Fitting polynomials to data
Или, как и в другом ответе, попробуйте установить нейронную сеть - хорошо, что она автоматически выучит гипотезу, но не так просто объяснить, какая связь между входными и выход есть. Но, в конце концов, нейронная сеть также представляет собой линейную комбинацию нелинейных функций (таких как сигмоидные или tanh-функции).
Не могли бы вы немного рассказать о своей цели? существует множество методов, ни одна из которых не может считаться лучшей для одного входа и одного выходного значения. каковы ваши наблюдения, количество точек данных, шум данных и т. д. – Regenschein
Конечно. Я использую метод черного ящика для сопоставления определенных значений с функцией f: (x1, y1), (x2, y2), .. (xn, yn), где xs и ys - 32-битные числа, я должен аппроксимировать или получим x * для некоторого y *, который я знаю заранее, например f (x *) = * y. Нет шума, и я могу задать больше для получения дополнительных данных, если это необходимо. – user1234299