DeniTheAccursed Posted December 29, 2024 Share Posted December 29, 2024 (edited) Здравствуйте! Решил запилить для вас гайд по линейной регрессии. Однако, прошлый мой образовательный контент был удалён из-за того, что нет никакой связи с игрой. В связи с этим, я делаю новый, но основной нашей целью будет изучение глубины копания алмазов. Линейная регрессия. Что это такое? Линейная регрессия (или регрессионный анализ) показывает, по какому закону или как 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ср. Расположить линию, чтобы минимизировать ошибки - это значит, расположить линию таким образом, чтобы она была близко (насколько это возможно) ко всем алмазам. Edited December 29, 2024 by DeniTheAccursed 1 Link to comment Share on other sites More sharing options...
zobov Posted December 29, 2024 Share Posted December 29, 2024 О нет школа ты опять меня преследуешь Link to comment Share on other sites More sharing options...
Kadurov Posted January 1 Share Posted January 1 (edited) Каким образом вы копаете высоту в один блок? Вы копаете минимум в 2 блока так как высота это блок в ногах Если алмазы будет находится сверху или ниже их выкопать не будете? Также не понятно высота в линию из 16 блоков по x-z в чанке или по площади(16*16). На границах чанков шанс встретит какую либо руду в 2 раза выше так как слева и справа от линии чанков будет две независимо сгенерированные жилы. А на стыках чанков вообще 4. Edited January 1 by Kadurov Link to comment Share on other sites More sharing options...
DeniTheAccursed Posted January 2 Author Share Posted January 2 01.01.2025 в 05:03, Kadurov сказал: Каким образом вы копаете высоту в один блок? Вы копаете минимум в 2 блока так как высота это блок в ногах Если алмазы будет находится сверху или ниже их выкопать не будете? Также не понятно высота в линию из 16 блоков по x-z в чанке или по площади(16*16). На границах чанков шанс встретит какую либо руду в 2 раза выше так как слева и справа от линии чанков будет две независимо сгенерированные жилы. А на стыках чанков вообще 4. Я вообще ничего не понял из того, что ты написал. Я же вроде написал, что встреча алмазов и прочее, это чистая теория вероятностей и что мой пост не имеет к этому никакого отношения. Я просто показал, как Y зависит от X. Link to comment Share on other sites More sharing options...
Kadurov Posted January 2 Share Posted January 2 (edited) 10 часов назад, DeniTheAccursed сказал: Я вообще ничего не понял из того, что ты написал. Я тоже причем здесь алмазы и майнкрафт? Алмазы генерируются не только по высоте а еще по количество жил в чанке. Поэтому что именно показывает ваш график мне непонятно. 7 алмазов это что и где? Y от X никак не зависит а если и зависит то только от фазы луны! Edited January 2 by Kadurov Link to comment Share on other sites More sharing options...
DeniTheAccursed Posted January 2 Author Share Posted January 2 (edited) 39 минут назад, Kadurov сказал: Я тоже причем здесь алмазы и майнкрафт? Алмазы генерируются не только по высоте а еще по количество жил в чанке. Поэтому что именно показывает ваш график мне непонятно. 7 алмазов это что и где? Y от X никак не зависит а если и зависит то только от фазы луны! "Конечно, вы можете сказать, что в поиск алмазов в Minecraft - это чистая теория вероятности. Я не буду спорить, действительно, глубина копания мало чего имеет общего с КОЛИЧЕСТВОМ алмазов. На определенной глубине их может попасться сколь угодно. Но мы рассматриваем пример." Я ещё раз напомню, что это был простой пример, если бы алмазы зависели от глубины. Мало чего общего это имеет с реальной игрой. Edited January 2 by DeniTheAccursed Нашёл до чего докопаться. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now