Здравствуйте!
Решил запилить для вас гайд по линейной регрессии. Однако, прошлый мой образовательный контент был удалён из-за того, что нет никакой связи с игрой. В связи с этим, я делаю новый, но основной нашей целью будет изучение глубины копания алмазов.
Линейная регрессия.
Что это такое? Линейная регрессия (или регрессионный анализ) показывает, по какому закону или как Y зависит от X.
Всё это можно охарактеризовать как уравнение вида Y = kx + b; где k это наклон прямой, где b - это смещение прямой.
Как решить уравнение вида Y = kx + b?
Для этого применяется МЕТОД НАИМЕНЬШИХ КВАДРАТОВ или ГРАДИЕНТНЫЙ СПУСК. (и другие методы решения). Но мы сегодня остановимся на методе наименьших квадратов, так как оно преподается в наших вузах и может быть полезно для игроков.
Наша цель:
Это построить такую прямую на графике, которая бы минимизировала расстояние между каждым значением. То есть, такую линию, до которой у всех данных было бы минимум расстояние. О том, как работает метод наименьших квадратов очень хорошо объясняется на канале "Душкин объяснит".
Рассмотрим такой пример:
Конечно, вы можете сказать, что в поиск алмазов в Minecraft - это чистая теория вероятности. Я не буду спорить, действительно, глубина копания мало чего имеет общего с КОЛИЧЕСТВОМ алмазов. На определенной глубине их может попасться сколь угодно. Но мы рассматриваем пример.
Отобразим эти данные на графике:
Тут показана зависимость между глубиной и найденными алмазами. Наша задача - построить такую линию Y = kx + b, которая минимизировала бы расстояние(ошибка) между алмазами. Например:
Для этого, найдем коэффициенты k и b;
По формуле xi1 + xi2 + xi3 + .. .. + xn / n - находим среднее значение обоих X и Y; (суммируем все значения X и делим на количество значений)
Для глубины: Xср = 50 + 20 + 10 + 5 = 85/4 = 21.25
Для алмазов: Yср = 0 + 5 + 8 + 10/4 = 5.75
Найдем коэффициенты k:
Подставляем в формулу наименьших квадратов: sum((x-xср)(y - yср)/(x-xср)^2)
Получаем: -0.2125
Найдем коэффициенты b:
b = Yср - kxср = 10.27
Отобразим линию на графике:
Теперь подставив какое-то значение в x по уравнению, мы можем предсказать, сколько алмазов можем получить на определенной глубине.
Например: -0.2125*15глубина + 10.27 = 7 алмазов.
Для более больших данных нужно использовать градиентный спуск. Но это уже в другой раз.
Примечание: x - это алмаз. xcр - это среднее значение алмазов.
В формуле наименьших квадратов нам необходимо отнять среднее значение с каждого x и суммировать значения.
Аналогично с Y и Yср.
Расположить линию, чтобы минимизировать ошибки - это значит, расположить линию таким образом, чтобы она была близко (насколько это возможно) ко всем алмазам.