Как я учил нейронные сети играть в казино / Хабр

Как я учил нейронные сети играть в казино / Хабр


=============


Регистрируйся и получи бонус до 50000 рублей!

✅ Ссылка: 1WIN.COM

🔥 Промокод для СУПЕРБОНУСА: TELEGRAPHBONUS

🎰 РЕГИСТРАЦИЯ 🎰

💰 Раздача ваучеров до 1000 рублей: t.me/onewin_vauchers.


=============


Как я учил нейронные сети играть в казино


Hello, world! Привет, Хабр! Меня зовут Михаил, я учусь на втором курсе Южно-Уральского государственного Университета и одни из самых любимых вещей в моей жизни - это программирование и азартные игры....



Ножи - одни из самых редких и дорогих предметов в игре.


Как обыграть онлайн казино рулетку



Привет, Хабр! Меня зовут Михаил, я учусь на втором курсе Южно-Уральского государственного Университета и одни из самых любимых вещей в моей жизни - это программирование и азартные игры.


Уже около года я занимаюсь машинным обучением, а значит пора закрепить полученные навыки на практике. Тема исследования казино давно меня интересовала, а знакомство с sklearn и компанией дало мне обширный арсенал для этого.


Сегодня мы будем считать чужие деньги, писать парсер, исследовать данные, создавать модели машинного обучения и смотреть мемы.


Идея обыграть рулетку не нова, в отличие от идеи сделать это с помощью нейронных сетей. Немного погуглив, я наткнулся в основном на модели для игры в блекджек(21).


P.S. Данная статья не является рекламой азартных игр или конкретного сайта. Автор неоднократно проигрывал крупные суммы и не рекомендует никому связываться с казино или ставками.


В качестве противника будет выступать популярный сайт-рулетка по Counter Strike: Global Offensive - CSGOFAST. На этом сайте присутствует более десяти видов азартных игр, а в качестве валюты используются скины на оружия из игры CS:GO.


Мы будем пытаться обыграть евро рулетку, вернее её аналог c сокращенным количеством номеров. Выбор именно этого сайта обусловлен несколькими причинами, одна из них - личные счеты:) Об остальном будет сказано далее.



Ножи - одни из самых редких и дорогих предметов в игре.


Руле́тка — азартная игра, представляющая собой вращающееся колесо с 36 секторами красного и чёрного цветов и 37-м зелёным сектором «зеро» с обозначением нуля. Игроки, играющие в рулетку, могут сделать ставку на выпадение шарика на цвет (красное или чёрное), чётное или нечётное число, диапазон (1—18 или 19—36) или конкретное число. Крупье запускает шарик над колесом рулетки, который движется в сторону, противоположную вращению колеса рулетки, и в конце концов выпадает на один из секторов. Выигрыши получают все, чья ставка сыграла (ставка на цвет, диапазон, чётное-нечётное или номера).


Вот какое определение предлагает нам Википедия. Мы же будем иметь дело с упрощенной версией, в которой ставки принимаются только на выпадение цвета, а количество номеров уменьшено. Да и никакого крупье тут нет, обычные числа, сгенерированные компьютером :)



В начале раунда(то есть до ставок) на стороне сайта выбирается случайное число от 0 до 1. По окончании раунда оно домножается на 15 и округляется до целого в меньшую сторону. Получившееся число - номер победного сектора. Чтобы сайт не подкручивал рулетку как угодно ему, с самого начала раунда нам доступен SHA-256 хеш случайного числа, которое выбрал сайт, а после раунда и само число, соответственно пользователь может самостоятельно пропустить его через SHA-256 алгоритм и убедиться в честности.


Сайт не может подкрутить, так как победный цвет известен до ставок.


P.S. Для тех, кто не знаком с шифрованием, SHA-256 это такая штука, которая преобразует одну последовательность символов в другую, при этом в обратную сторону так сделать довольно тяжело(практически невозможно). В этом и прикол.



Для начала нужно определиться с данными, на основе которых наша модель будет предсказывать цвет следующего выпадшего числа. Максимум, доступный на сайте в реальном времени - результаты 50 последних игр, а также денежные ставки на текущую игру. Чтобы наша модель не нуждалась в дополнительном сборе наблюдений и её можно было использовать из коробки без ожидания, будем делать предсказание следующего цвета на 50 играх. Соответственно, наш первый шаг - написать парсер для сбора данных.


Мы будем использовать Python и библиотеку Requests-HTML, обычный requests не подойдет, поскольку для доступа к результатам игр нужно предварительно выполнить на странице весь JavaScript. Результаты будем записывать в .csv файлы. Также я не стал заморачиваться над причесыванием данных во время сбора, ведь гораздо легче сделать это парой команд из Pandas.



Объявим класс парсера. Он будет иметь две функции, одна из них будет подгружать историю игр, другая собирать информацию о проходящей в данный момент(это две разные страницы, соответственно и функции две). То есть, информацию о денежных ставках мы можем получить только из текущей игры, а выпавшие номера для всех 50 прошедших.


Функция для загрузки и выделения данных из истории игр


Парсер будет загружать HTML страницу, рендерить весь JavaScript, выбирать текст из контейнера '.history-wrap'(он содержит результаты 50 последних игр - то, что нам надо) а затем возвращать удобный список из результатов игр.


Аналогичным образом работает и вторая функция. Иногда случается момент, когда на странице отсутствует '.game-bets-header', поэтому добавлена проверка.


Сбор информации о денежных ставках


Поместим все это дело в цикл, который будет скачивать данные с заданными интервалами и записывать полученные результаты в файл. Он будет скачивать информацию о денежных ставках гораздо чаще, чем длится одна игра, поэтому запись будет создаваться когда таймер до начала меньше единицы, либо равен 25(момент, в который рулетка крутится и информация о ставках уже не может изменится)


Парсер готов к работе


Ну, теперь оставляем все наше дело на парочку недель, чтобы оно в фоне сохраняло результаты игр


Пару дней прошло, данные собираются, но их еще слишком мало для анализа, а значит. пока можно заняться другим. Пойдем на эту рулетку и посмотрим, какую точность предсказаний мы получим без использования математики(повторяю, исключительно в исследовательских целях!).


Я выделил 3 консервативных метода игры:


1) Игра без стратегии


Я просто полагался на удачу и интуицию, угадывая числа. На поле присутствует 7 черных, 7 красных и 1 зеленый сектор. Значит, при ставке на красное/черное мы имеем вероятность победы 7/15 или же 0.466. По факту так играет большинство



Сыграв 100 игр(без ставок), я угадал верно 45/100 выпадений, что уже довольно близко к аналитически вычисленному значению. Забегая вперед, построим графики с помощью matplotlib и Pandas.



Совместим эти 2 графика.



Зеленое - я угадал цвет, красное - я ошибся, серое - правильный ответ при моих ошибках. Стоит заметить, что precision и recall зеленого составляют два ноля:) Иначе говоря, ни один раз, предсказав ноль, я не оказался прав и не угадал ни одного действительно выпавшего ноля


2) Мартингейл


Стратегия заключается в том, чтобы начиная с малой суммы увеличивать ее на 2 в случае пройгрыша и ставить на тот же самый цвет.


Пример: 1 красное-проиграл-2 красное-проиграл-4 красное-проиграл-8 красное- выйграл(окупился на 1 единицу)- 1 красное-. Тогда выйгрыш всегда будет покрывать потери, а еще и давать прибыль в размере первой ставки.


Пусть S - начальная сумма.


Сформулировать это математически можно так: для того, чтобы сделать n ставок, нужно потратить S*(2^(n) - 1) валютных единиц. При этом вероятность проиграть будет выглядеть так: 0.54 ^ n. Данная стратегия не терпит единого поражения, поскольку оно означает потерю баланса. Главный минус - сумма растет в два раза с каждой ставкой. С другой же стороны очень сложно поверить в выпадение, допустим, 20 черных подряд без подкруток(на деле автор видел 23 черных подряд). Измусоленная тема - ошибка игрока.


Похожие статьи


Топ рейтинг🥇 казино - лучшие официальные сайты клубов

Игровые аппараты бесплатно без регистрации в онлайн режиме

Проверенные онлайн казино с моментальным выводом денег в 2022 году ― игровые автоматы с быстрыми выплатами средств на карту, топ самых честных казино

Реально ли много и быстро заработать на Вулкане | Какой Смысл

Ставка на ведьму - Жильцова Наталья Сергеевна » Онлайн библиотека книг читать онлайн бесплатно и полностью |

Как я учил нейронные сети играть в казино / Хабр

Казино Luxorslots (Люксор Слотс) игровые автоматы онлайн

Турниры по онлайн слотам: все, что вам нужно о них знать 📰

Казино Вулкан – играйте в лучшие игровые автоматы бесплатно

Как обыграть казино онлайн? Немного о лохотроне


Альтернативы Как я учил нейронные сети играть в казино / Хабр


Топ рейтинг🥇 казино - лучшие официальные сайты клубов

Игровые аппараты бесплатно без регистрации в онлайн режиме

Проверенные онлайн казино с моментальным выводом денег в 2022 году ― игровые автоматы с быстрыми выплатами средств на карту, топ самых честных казино

Реально ли много и быстро заработать на Вулкане | Какой Смысл

Ставка на ведьму - Жильцова Наталья Сергеевна » Онлайн библиотека книг читать онлайн бесплатно и полностью |

Как я учил нейронные сети играть в казино / Хабр

Казино Luxorslots (Люксор Слотс) игровые автоматы онлайн

Турниры по онлайн слотам: все, что вам нужно о них знать 📰

Казино Вулкан – играйте в лучшие игровые автоматы бесплатно

Как обыграть казино онлайн? Немного о лохотроне

Видеопокер онлайн – играть в России бесплатно и без регистрации

Мобильные казино | Рейтинг лучших приложений казино на деньги для скачивания

GRAND CASINO реальные отзывы покупателей цена, купить недорого | отзыв от 2022 00: 09

Букмекерские конторы Украины

ТОП 10 казино онлайн с быстрым выводом 2022 на деньги

Маг на полную ставку 2 смотреть онлайн — Аниме

Покер без вложений с выводом реальных денег

Десятка лучших новых слотов января 2022

Лига Ставок – букмекерская контора в РФ: обзор БК, ставки, бонусы, официальный сайт

Как и в каком онлайн казино реально выиграть деньги




Вулканбет, 2018-2022


Report Page