y - вектор наблюдений зависимой переменой y (vectorValues)
x - матрица факторов (vectorRegressors)
b - параметры модели (Theta)
Градиентный спуск — метод нахождения локального экстремума (минимума или максимума) функции с помощью движения вдоль градиента.
Нам необходимо подобрать набор коэффициентов 𝜃(theta), который бы минимизировал функцию стоимости.
Алгоритм выглядит следующим образом:
- Инициализация 𝜃 = (1, 1, … 1);
- Вычисление значение h𝜃(x) для всех точек;
- Вычисление значение функции стоимости J(𝜃);
- ЕСЛИ значение функции стоимости J(𝜃) меньше порога, ТО поиск завершен, перейти на п. 7, ИНАЧЕ перейти на следующий пункт
- Изменение значения 𝜃;
- перейти на п. 2;
- конец работы;
Изменение значений 𝜃:
Все функции для градиентного спуска реализованы в классе GradientDescent
Реализован класс для создание файла с исходными данными Параметрый по умолчанию:
- NAME_OUTPUT_FILES = "set_of_points.data";
- DATA_LENGHT = 1000000;
- NUMBER_OF_REGRESSORS = 5;
- MAX_THETA = 100.0; (максимальный диапазон +-)
- MAX_REGRESSOR = 100.0;
- https://en.wikipedia.org/wiki/Gradient_descent
- https://en.wikipedia.org/wiki/Linear_regression
- https://cse.buffalo.edu/faculty/miller/Courses/CSE633/Li-Hui-Fall-2012-CSE633.pdf
- https://medium.com/@lachlanmiller_52885/machine-learning-week-1-cost-function-gradient-descent-and-univariate-linear-regression-8f5fe69815fd



