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, 2025 Share Posted January 1, 2025 (edited) Каким образом вы копаете высоту в один блок? Вы копаете минимум в 2 блока так как высота это блок в ногах Если алмазы будет находится сверху или ниже их выкопать не будете? Также не понятно высота в линию из 16 блоков по x-z в чанке или по площади(16*16). На границах чанков шанс встретит какую либо руду в 2 раза выше так как слева и справа от линии чанков будет две независимо сгенерированные жилы. А на стыках чанков вообще 4. Edited January 1, 2025 by Kadurov Link to comment Share on other sites More sharing options...
DeniTheAccursed Posted January 2, 2025 Author Share Posted January 2, 2025 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, 2025 Share Posted January 2, 2025 (edited) 10 часов назад, DeniTheAccursed сказал: Я вообще ничего не понял из того, что ты написал. Я тоже причем здесь алмазы и майнкрафт? Алмазы генерируются не только по высоте а еще по количество жил в чанке. Поэтому что именно показывает ваш график мне непонятно. 7 алмазов это что и где? Y от X никак не зависит а если и зависит то только от фазы луны! Edited January 2, 2025 by Kadurov Link to comment Share on other sites More sharing options...
DeniTheAccursed Posted January 2, 2025 Author Share Posted January 2, 2025 (edited) 39 минут назад, Kadurov сказал: Я тоже причем здесь алмазы и майнкрафт? Алмазы генерируются не только по высоте а еще по количество жил в чанке. Поэтому что именно показывает ваш график мне непонятно. 7 алмазов это что и где? Y от X никак не зависит а если и зависит то только от фазы луны! "Конечно, вы можете сказать, что в поиск алмазов в Minecraft - это чистая теория вероятности. Я не буду спорить, действительно, глубина копания мало чего имеет общего с КОЛИЧЕСТВОМ алмазов. На определенной глубине их может попасться сколь угодно. Но мы рассматриваем пример." Я ещё раз напомню, что это был простой пример, если бы алмазы зависели от глубины. Мало чего общего это имеет с реальной игрой. Edited January 2, 2025 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