Может ли искусственный интеллект оставить букмекеров без работы?

    «Победа искусственного интеллекта над футбольными экспертами» – таким мог стать заголовок этой статьи про результаты футбольного соревнования. Мог бы, но, увы, не стал.

    Во время Чемпионата мира по футболу у нас в компании "НОРБИТ" проходил конкурс на лучший прогноз матчей по футболу. Я слишком поверхностно разбираюсь в футболе, чтобы на что-то претендовать, но желание принять участие в конкурсе все-таки победило мою лень. Под катом – история о том, как благодаря машинному обучению мне удалось добиться неплохих результатов среди знатоков футбольных команд. Правда, сорвать куш мне не удалось, зато открыл для себя новый увлекательный мир Data Science.


    Начал я с гипотезы, что помимо индивидуального мастерства игроков национальных сборных есть еще неизмеримые, но важные факторы — командный дух + сыгранность (например, команда в игре с более сильным соперником, но в зачетном матче и на своем поле чаще одерживает победу). Задача не такая уж и простая для человека, но вполне понятная для машинного обучения.  

    Когда-то у меня уже был небольшой опыт работы с ML (с библиотекой BrainJS), но в этот раз решил проверить утверждение, что Python гораздо лучше подходит для таких задач.

    Знакомство с Python я начал с отличного курса на Coursera, а основы машинного обучения почерпнул из серии статей от Open Data Science на Хабре.

    Довольно быстро нашелся отличный Dataset с историей всех игр международных сборных с начала XX века. После импорта в Pandas dataframe:


    Всего в базе содержится информация о 39 тысячах игр международных сборных.

    Pandas позволяет очень удобно анализировать данные, например, самый результативный матч был между Австралией и Американским Самоа в 2001 году, который закончился со счетом 31:0.




    Теперь нужно добавить объективную оценку уровню команды в год проведения матча. Такими оценками занимается FIFA.



    Но, к большому сожалению, рейтинг FIFA ведется только с 1992 года. И, судя по графику рейтинги команд сильно подвержены изменениям, и очень бы не хотелось усреднять позиции команд в мировом рейтинге до этого года.

    UEFA ведет свою статистику с более древних времен, но готовый dataset я так и не смог найти, поэтому на помощь пришел этот сайт. Под Node.js для таких задач есть мощный и удобный Сheerio, но под Python все оказалось не менее просто (да простит меня администратор этого сайта).

    Веб-скрапинг рейтинга
    from requests import get
    from requests.exceptions import RequestException
    from contextlib import closing
    from bs4 import BeautifulSoup
     
    def query_url(url):
        try:
            with closing(get(url, stream=True)) as resp:
            if is_good_response(resp):
                return resp.content
            else:
                return None
        except RequestException as e: 
    log_error('Error during requests to {0} : {1}'.format(url, str(e)))
    return None
    
    def is_good_response(resp):
        content_type = resp.headers['Content-Type'].lower()
        return (resp.status_code == 200
            	
    and content_type is not None
            	
    and content_type.find('html') > -1)
    def log_error(e):
        print(e)
     
    def parse_ranks(raw_html, year):
        html = BeautifulSoup(raw_html, 'html.parser')
        ranks = []
        for tr in html.select('tr'):
            tds = tr.select("td")
        	
    if len(tds) == 10:
            	
    rank = (year, tds[2].text, tds[7].text)
            	
    ranks.append(rank)
        return ranks
       
    def get_url(year):
        if year in range(1960, 1999): method = 1
        if year in range(1999, 2004): method = 2
        if year in range(2004, 2009): method = 3
        if year in range(2009, 2018): method = 4
        if year in range(2018, 2019): method = 5
        return f"https://kassiesa.home.xs4all.nl/bert/uefa/data/method{method}/crank{year}.html"
     
    ranks = []
    for year in range(1960, 2019):
        url = get_url(year)
        print(url)
        raw_html = query_url(url)
        rank = parse_ranks(raw_html, year)
        ranks += rank
       
    with open('team_ranks.csv', 'w') as f:
        writer = csv.writer(f , lineterminator='\n')
        writer.writerow(['year', 'country', 'rank'])
        for rank in ranks:
        	
    writer.writerow(rank)
    


    Колебания рейтинга после добавления рейтинга UEFA (и небольшой правки названий стран по итогам геополитических рокировок):


    Но и тут не обошлось без бочки дегтя — UEFA ведет рейтинг только европейских команд (стоит иногда задумываться, что скрывается под распространенными аббревиатурами, перед их использованием). К счастью, плей-офф сложился практически «европейский».

    Осталось немного поудобнее разделить результаты на отдельные игры и добавить в таблицу рейтинги.

    Самая интересная часть – обучение модели. Гугл сразу подсказал самый простой и быстрый вариант – это классификатор MLPClassifier из библиотеки Python — Sklearn. Попробуем обучить модель на примере Швеции.

    from sklearn.neural_network import MLPClassifier
    games = pd.read_csv('games.csv')
     
    # Только игры Швеции
    SwedenGames = games[(games.teamTitle == 'Sweden')]
     
    # Результаты игр
    y = SwedenGames['score']
    y = y.astype('int')
    
    # Таблица признаков
    X = SwedenGames.drop(['score', 'teamTitle', 'againstTitle'], axis=1)
     
    # Разделение выборки на обучающую и тестовую
    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25)
     
    mlp = MLPClassifier()
    mlp.fit(X_train, y_train);
     
    predictions = mlp.predict(X_test)
     
    print('Accuracy: {:.2}'.format(
        accuracy_score(y_test, mlp.predict(X_test))
    ))
    
     
    Accuracy: 0.62

    Не сильно точнее бросания монеты, но, вероятно, уже лучше моих потенциальных «экспертных» прогнозов. Тут было бы разумно попробовать обогатить данные, поиграть гиперпараметрами, но я решил пойти другим путем и попробовать библиотеку градиентного бустинга Catboost от Yandex. С одной стороны, это более патриотично, с другой — они обещают качественную работу с категориальными признаками, что подтверждается многочисленными сравнениями.

    Взял настройки из примера:

    
    # Индексы столбцов категориальных признаков
    categorical_features_indices = [1, 2, 4]
     
    train_pool = Pool(X_train,  y_train, cat_features=categorical_features_indices)
    validate_pool = Pool(X_test, y_test, cat_features=categorical_features_indices)
    
    # Бустинг довольно чувствительный к настройке гиперпараметров, для автоматизации перебора я использовал GridSearchCV. Полученные значения
    
    best_params = {
        'iterations': 500,
        'depth': 10,
        'learning_rate': 0.1,
        'l2_leaf_reg': 1,
        'eval_metric': 'Accuracy',
        'random_seed': 42,
        'logging_level': 'Silent',
        'use_best_model': True
    }
     
    cb_model = CatBoostClassifier(**best_params)
    cb_model.fit(train_pool, eval_set=validate_pool)
     
    print('Accuracy: {:.2}'.format(
        accuracy_score(y_test, cb_model.predict(X_test))
    ))
    

    Accuracy: 0.73

    Уже лучше, пробуем в деле.

    
    def get_prediction(country, against):
        y = SwdenGames['score']
        y = y.astype('int')
        X = SwdenGames.drop(['score', 'againstTitle'], axis=1)
      
        train_pool = Pool(X, y, cat_features=[1, 2, 4])
        query = [ get_team_rank(country, 2018),
                       0,
        	           1 if country == 'Russia' else 0,
                       get_team_rank(against, 2018),
        	           against]
        return cb_model.predict_proba([query])[0]
    
    team_1 = 'Belgium'
    team_2 = 'France'
     
    result = get_prediction(team_1, team_2)
    if result[0] > result[1]:
        print(f"Команда {team_1} выиграет у команды {team_2} с вероятностью {result[0]*100:.1f}%")
    else:
        print(f"Команда {team_1} проиграет команде {team_2} с вероятностью {result[1]*100:.1f}%") 
    


    Результаты прогноза для финала «Команда Crotia проиграет команде France с вероятностью 93,7%»

    Хоть этот раз я не победил в конкурсе «НОРБИТ», но очень надеюсь, что эта статья для кого-нибудь снизит уровень магии в практическом использовании машинного обучения, а может, даже замотивирует на собственные эксперименты.

    ГК ЛАНИТ

    338,00

    Ведущая многопрофильная группа ИТ-компаний в РФ

    Поделиться публикацией
    Комментарии 60
      +2
      И ведь проиграла же
        +4
        Может ли искусственный интеллект оставить букмекеров без работы?
        Ответа на поставленный в начале статьи вопрос в тексте так и не обнаружилось. Ваш «AI» — вероятно, не может. А сможет ли чей-либо?

        Чтобы оставить «без работы» букмекеров, придётся выигрывать заметно чаще и больше, чем зарабатывают оные.

        Кстати, забавная профессия. Как и организаторы лотерей люди (в 21 веке!) продолжают зарабатывать на человеческой глупости, оптимизме и азарте.
          +8
          Чтобы оставить «без работы» букмекеров, придётся выигрывать заметно чаще и больше, чем зарабатывают оные.

          Букмекеры никогда не останутся без работы поскольку они не играют против участников. Они просто предоставляют площадку для игроков. Букмекеры получают деньги независимо от исхода матча.
            +5

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

              0
              Поэтому им приходится во первых — очень точно оценивать исход матча

              Ничего они не оценивают. Они назначают коэффициенты таким образом, что бы проигравшая сторона полностью оплачивала выигрыш счастливчиков. И себе % конечно же.
                0
                Как раз таки оценивают. Иначе как они определят, какая сторона будет выигрышной и какие изначальные коэффициенты поставить
                  +1
                  Изначальные коэффициенты ставят приблизительно, затем меняют в зависимости от «предпочтений» участников. Те коэффициенты, которые вы видите, определены самими участниками а не букмекерами.
                    +1
                    и то и другое верно. Первоначально берется коэффициент, определенный проффессионалами, который может меняться в зависимости от поставленных ставок. Соответственно идет стремление к тому, чтоб при любом исходе матча, букмекер был в плюсе.
                  +5
                  Ничего они не оценивают. Они назначают коэффициенты таким образом, что бы проигравшая сторона полностью оплачивала выигрыш счастливчиков. И себе % конечно же.

                  Полная чушь. Работал в этой сфере прям в мякотке букмекерства.


                  Люди заносят на фаворитов.
                  Возьмём Спартак-Реал. Какой бы кэф вы не поставили на Спартак, сумма денег (плечо) там будет на порядки меньшая чем баблище на Реале (гарантированный выигрыш даже с кэфом 1.1). И занесённые триллионы на Реал надо ОТДАТЬ с кэфом 1.1


                  Внимание вопрос, где тут выигрыш для букмекера? Ответ скажу за вас — тут чистый минус на грани банкроства.
                  В реале такие высоковероятные исходы отключают, чтобы выровнять "плечи".


                  Другой пример: играют Мухосранск-Задрищенск. Вялый матч, никто не может оценить силы этих дворовых команд, поэтому ставите 50/50 с небольшой маржой(т.е. кэфы будут 1.9 у обоих например) и тут внезапно на Мухосранск прилетает ставка в 10 лямов. Ваши действия как букмекера? Правильный ответ — НЕ принимать такую ставку, т.к. это явный договорняк и вы залетите на выплату почти 20 лямов.


                  Ещё пример. Кто-то сидит на стадионе и получает инфу о голевых моментах раньше логического ядра букмекера. Вот он видит что Месси вышел один на один с вратарём и пробивает. До гола ситуация на поле была равная, шансы на победу каждой команды были допустим тоже 50/50, после гола они очевидно изменятся, поэтому вы можете в последний момент поставить с ОЧЕНЬ выгодным кэфом за момент до его падения.


                  Короче, ещё многое можно рассказать, а многое не надо. Но главная мысль — не надо путать букмекерство и тотализатор.


                  В тотализаторе — собрал деньги с народа, выплатил другой половине за минусом маржи. И у нас в РФ тотализатор запрещён.
                  Чтобы заработать на букмекерстве, где тебя все пытаются обмануть, надо некисло работать с реалтайм данными и менеджментом рисков.

                    0
                    А я расскажу как оно на самом деле работает :)

                    Возьмём Спартак-Реал. Какой бы кэф вы не поставили на Спартак, сумма денег (плечо) там будет на порядки меньшая чем баблище на Реале (гарантированный выигрыш даже с кэфом 1.1). И занесённые триллионы на Реал надо ОТДАТЬ с кэфом 1.1
                    Внимание вопрос, где тут выигрыш для букмекера? Ответ скажу за вас — тут чистый минус на грани банкроства.

                    В теории: поставьте на Реал 1.01 а на Спартак 101.0 и у вас будет на порядки больше на Спартак.
                    Практика:
                    1. Достаточно поменять коеффициенты на 20% и у вас уже толпа surebetter-ов развернёт ставки в другую сторону, Вы просто сбалансируетесь с конкурентами.
                    2. Если Вы работаете в России, то проблема прямо противоположна — есть толпа фанатов, которые поставят на Спартак при любой ставке.
                    И на закуску главное:
                    3. Для хорошего букмекера это не минус и не банкротство. Это инвестиция. Если Вы ведете сотни и тысячи матчей ежедневно, Вам не нужно выигрывать на каждом матче Реал-Спартак. Вам достаточно, что на одном из 10 матчей Спартак таки выиграет (реальный пример — Ибрагимович забьет 4 гола во втором тайме и сделает 4:4). Звучит маловероятно, но если вести тысячу матчей в день, такие нежданчики случаются каждый день.

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

                    На практике букмекеры платят (и много) за почти-реалтайм фид. И делают задержку в несколько секунд на принятие ставки. И дают игроку опции «ставка по этому коеффициенту или отмена» и «ставка по любому коеффициенту». Дальше очевидно.

                    и тут внезапно на Мухосранск прилетает ставка в 10 лямов. Ваши действия как букмекера?

                    Как букмекер, я ограничу максимальную ставку в интерфейсе и 10 лямов просто не прилетит. Потому что это на 50% договорняк и на 50% отмывание денег — и то и то это огромные штрафы независимо от того кто выиграл. Либо это Саудовский принц решил поиграть, но вероятность 0% — потому что Вам прилетит не ставка, а письмо от маркетинг-отдела который на этом будет делать рекламу :)

                    А ещё кучу денег букмекер делает на неосновных ставках, вроде «кто пробьет следующий угловой» — вот тут главное заинтересовать клиента, а далее чистый выигрыш на марже, потому что вероятности близки к 50/50.
                      0

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


                      Я могу рассказать вам не частные случаи, а общую картину.


                      Практика:
                      1. Достаточно поменять коеффициенты на 20% и у вас уже толпа surebetter-ов развернёт ставки в другую сторону, Вы просто сбалансируетесь с конкурентами.

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


                      есть толпа фанатов, которые поставят на Спартак при любой ставке.

                      Это только кажется что это толпа. Основная аудитория букмекера — маргиналы, а в РФ это жители соседних республик. По сравнению с ними фанатов Спартака ничтожно мало. Опять таки, за подтверждением посетите заведение любого букмекера, посмотрите контингент. И если вы думаете что в интернете лучше, то нет.


                      Для хорошего букмекера это не минус и не банкротство. Это инвестиция.

                      Минусовые матчи случаются постоянно, да. Если быть наивным букмекером, то они приведут к банкротству. На долгой конечно покрываются статистикой, если букмекер прошаренный.


                      На практике букмекеры платят (и много) за почти-реалтайм фид.

                      Опять таки, спасибо что рассказали мне.
                      Я больше скажу, платят даже за 2 и более чтобы предотвратить риски что один накроется. Даже эти реалтайм фиды (которые идут от скаутах на матчах) не могут быть быстрее (в силу банальной сетевой задержки) чем человек который СИДИТ НА СТАДИОНЕ. Ставки "под гол" идут постоянно.


                      А ещё кучу денег букмекер делает на неосновных ставках, вроде «кто пробьет следующий угловой»

                      Это не так. 90% ставок в РФ — футбол. А 90% из них это три вида пари — 1х2, фора и тотал.
                      Все эти динамические пари они для показухи больше, что букмекер с широкой линией, денег там нет совсем.


                      Ещё раз спасибо что пытаетесь мне рассказать "как там у букмекеров", но я лучше знаю.

                        0
                        не могут быть быстрее (в силу банальной сетевой задержки) чем человек который СИДИТ НА СТАДИОНЕ

                        Сетевая задержка vs скорость реакции человека. Хз, кто выиграет :).

                          0
                          Сетевая задержка vs скорость реакции человека. Хз, кто выиграет :).

                          Вы не поняли.


                          Чтобы информация о голевом моменте появилась у букмекера необходим такой набор действий (предположим наступает опасный голевой момент, надо инициировать остановку ставок):


                          1) Скаут на матче сидит с телефоном (планшетом) и тыкает в кнопки, посылая сообщения АГГРЕГАТОРУ данных. Это даже не букмекер. У букмекера есть свои скауты, но их кол-во ничтожно мало по сравнению со скаутами которые есть у агрегаторов.
                          2) Сообщение идёт по сети (в начале мобильной, т.к. на трибуны никто кабель не проводит, потом по кабелям).
                          3) Сообщение обрабатывается логикой агрегатора
                          4) Сообщение по сети отправляется букмекерам
                          5) Сообщение обрабатывается логикой букмекера
                          6) Сообщение об остановке ставок отправляется по сети на клиенты (сайт, мобилки и т.п.)


                          Давайте посчитаем кол-во задержек в этой цепочке
                          Реакция скаута + Сетевой лаг + Лаг логики (обработка сообщения в системе не мгновенная) + Сетевой лаг + Лаг логики + Сетевой лаг.


                          Теперь прикинем что надо сделать клиенту букмекера чтобы сделать ставку под гол:
                          0) Чуть загодя вбить в поля сумму ставки и вид пари
                          1) Среагировать вовремя
                          2) Нажать на кнопку


                          Т.е. просто реакция + сетевой лаг + лаг логики.
                          Да, у каждого кэфа есть время жизни и он может протухнуть, но я не об этом.


                          Без особых ухищрений такие ставки бы проходили, т.к. человек на стадионе реагирует КОНЕЧНО же быстрее чем букмекер.

                            0
                            У Вас странный процессинг. Зачем Вам пункт (6)?
                            Попробуйте поставить ставку у любого большого букмекера — увидите «прогресс бар» примерно на 5 секунд «мы обрабатываем Вашу ставку». Это тупо таймер на сервере, за это время придёт и обработается апдейт от фида и клиент получит отказ.
                            У некоторых есть опция «ставка по обновлённому коеффициенту» — и вот Месси выходит один на один, клиент видит 2.0 и нажимает кнопку, сервер принимает по 1.5 на победу команды — а потом соперник и забить может.
                              –1
                              У Вас странный процессинг. Зачем Вам пункт (6)?

                              Да, он чисто для UI на клиентах, для данной схемы этот шаг не нужен, хотя в реальности он конечно же происходит. В ядре уже есть инфа о том что ставки остановлены.

                              0

                              Спасибо за инфу. Про скаутов у букмекеров вообще не знал, хотя это логично. Пока ИИ не прикрутили.

                            0
                            Спасибо что пытаетесь мне рассказать как там у букмекеров дела идут. Повторюсь я работал в букмекерской компании, прям работал в отделе букмекерского ядра.

                            Вы правда не допускаете мысли, что кроме Вас ещё кто-то работал в букмекерской компании? Не думаю, что за 5 лет всё сильно поменялось, с тех пор как мой код считал коеффициенты в одном из наибольших онлайн-букмекеров мира.

                            И если вы думаете что в интернете лучше, то нет.

                            Я знаю как в интернете. Как в оффлайне не знаю. Как в России — тоже не знаю. В онлайне в Европе ставки «на своих» сильно сдвигают коеффициенты, букмекеры их учитывают.

                            Такое тоже возможно, но на практике отключают такие исходы.

                            Не смешивайте. В последние минуты отключают — это да. Отключать весь матч «Реал-Спартак» до начала матча — нонсенс. На таких матчах букмекеры зарабатывают.

                            Даже эти реалтайм фиды (которые идут от скаутах на матчах) не могут быть быстрее (в силу банальной сетевой задержки) чем человек который СИДИТ НА СТАДИОНЕ.

                            Человек на стадионе имеет ещё большую сетевую задержку со своего смартфона, плюс 5с задержку. Этого хватает на реакцию софта и пересчёт коеффициентов даже live-ставок на текущий розыгрыш в баскетболе и теннисе. Вам не хватает? Значит у Вас либо плохой фид, либо плохой софт.

                            Все эти динамические пари они для показухи больше, что букмекер с широкой линией, денег там нет совсем.

                            Преимущество таких пари в том, что на основных пари Вам нужен (живой) букмекер чтобы контроллировать коеффициенты. А все доп-рынки можно рассчитать софтом, и без затрат иметь пару сотен доп опций.
                          0
                          гарантированный выигрыш даже с кэфом 1.1

                          Работали в мякотке, а говорите "даже" про такой высокий коэффициент. 1.01 было б этом случае (или вообще исключили бы, да). И это ещё не самый маленький коэффициент из возможных.

                            0
                            Работали в мякотке, а говорите "даже" про такой высокий коэффициент.

                            Если степень доверия моим словам зависит от количества нулей в кэфе, то вот вам кэф ДАЖЕ с 10ю нулями!


                            1.0000000001
                            Теперь верите что я в мякотке работал?
                            /s

                              0
                              Теперь верите что я в мякотке работал?

                              Чем дальше тем меньше :)
                              В реальности — обычно от 1.001 до 9999.0. Мы предлагали 1.01 до 999.0.
                              Причина — по минимуму Вы не можете предлагать коеффициент, по которому клиент не получит и копейки с нормальной ставки. По максимуму — самый продвинутый софт и букмекер очень плохо работают на крайних случаях. Потому ставять ограничение на всякий случай.
                              Max 999 нам очень помогли когда Ибрагимович забил 4 гола во втором тайме и сделал 4:4. Конкуренты платили по 9999 :)
                                0
                                Чем дальше тем меньше :)

                                Рекомендую узнать что значит /s

                          0
                          Вы, скорее всего, путаете виды ставок.

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

                          При упоминании букмекеров обычно речь идёт о первом виде, а вы думаете про второй.
                            0

                            Вставлю свои пять копеек про точность оценки исходов. Смотрите, если вы играете в подбрасывание монетки, то вероятность одного из двух исходов 50%. Честный букмекер в такой игре должен поставить коэффициенты 2 и 2 на оба исхода (формула перехода от вероятностей к коэффициентам, если я не ошибаюсь k=1/(1-p)). Что мы имеем в таком случае на дистанции? Ни игроки, ни букмекеры не могут получить прибыль, т.к. матожидание от такой игры равно нулю. Реальному букмекеру, чтобы заработать, надо ставить коэффициенты меньше 2 на оба исхода, например, 1.9. В последнем случае для такого букмекера на дистанции статистически гарантирован доход порядка 6% от размера ставок игрока, вне зависимости от того, на какой исход он поставил. Что нужно букмекеру, чтобы зарабатывать с такой стратегией? Во первых, это точный прогноз исходов, а во вторых, достаточный размер банка, чтобы перебить дисперсию статистических процессов.

                            +1

                            Очень точно не надо. Примерно можно. Коэффициенты зависят от ставок, а не от шансов в матче. На кого больше ставят, на того и меньше коэффициент. Будут его динамически менять по ходу матча или применять тот же AI для оценки. Или будут явно брать процент. Короче, приспособятся.

                          0
                          Проблема в том, что люди умирают, и опыт теряется. Всегда будут существовать аферисты, живущие за счёт притока новых людей, причём каждый человек по мере взросления обрабатывается поочерёдно всеми из них. Поэтому высказывания вида «ничему жизнь народ не учит» «лотерея в 21 веке» и подобные просто не имеют смысла.
                          +1
                          ответ на заголовок: нет, не может. как только вы начнете выигрывать вам обрежут максимальную ставку до 100 рублей. так же можно вас тупо забанить :)
                            +3
                            А то что Хорватия победит всех соперников и дойдет до финала скрипт тоже предсказал, или к этому моменту у нас большой минус на балансе?)
                            Чего не хватает для полноценной проверки скрипта — это коэффициентов на матчи. На хорватов, я щас погуглил, был коэффициент больше 5. Так что они и в глазах букмекеров не были фаворитами.
                            Что надо сделать. Вбить коэффициенты матчей например ЧМ2018, и пусть скрипт делает ставки в зависимости от своего прогноза и коэффициента
                              +3
                              У нас же это было внтрикорпоративное состязание, поэтому в минус невозможно было уйти (кроме варианта, если переувлечься околофутбольными темами в ущерб основным задачам). А вот добавить в модель информацию от букмекеров по коэффициентам, их прогнозам и т.д. — это отличная мысль, в следующем чемпионате обязательно попробую.
                                0
                                А вот добавить в модель информацию от букмекеров по коэффициентам, их прогнозам и т.д. — это отличная мысль

                                А без этого и смысла особо нет, можно выиграть в 3 ставках с коэф 1.2, ставя пусть 10р, в итоге у нас 16р. (ну или 17.2 если всегда в вабанк), а потом в 4 матче ставя теже 10р мы проигрываем. статистка говорит что мы угадали 75% матчей, как бы не плохо, в кармане у нас 6р, вместо изначальных 10, и мы в минусе.
                                К бабке не ходи, букмекеры не дадут хороший коэф на бразилию в матче вьетнамом, тут и нейросеть не нужна чтобы шанс предсказать.

                                Об этом я и говорил, что к моменту удачного предсказания Франция — Хорватия, железяка могла нам уже «напредсказывать»
                                  –1

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

                                +2
                                Скрипт не читает новости и не смотрит на состав команд.

                                Те команда может быть топ1, но перед матчем все нападающие отравились морепродуктами.
                                Скрипт говорит — 100% победа, а на деле неудача.
                                  0
                                  Сложно представить себе азарт в спортивных состязаниях во времена возможности 100% предсказаний от ML. Где-то на стадионе болельщики активно празднуют победу своей сборной, а ты еще только бутсы перед матчем в раздевалке зашнуровываешь.
                                    0
                                    Вы немного не понимаете задачу. Результат состязания это примерно как результат подброса монетки — неизвестен зарание. Но знать его заранее не нужно. Задача букмекера — посчитать вероятность 50% и поставить коеффициент 2.0 минус маржа = 1.8. Тогда на тысячах подбросов букмекер будет в плюсе на маржу.
                                    На самом деле задача даже другая — оценить, сколько денег хотят поставить на орла и сколько на решку, и сбалансировать коеффициентами.
                                    Потенциально, эту задачу мог бы решать AI. На практике, живой букмекер пока точнее и дешевле.
                                0
                                15 лет назад я тоже баловался нейросетями для выяснения на кого же лучше всего ставить. (Была такая STATISTICA Neural Networcs). Нейросеть мне тогда сообщила, что ставить всегда лучше на фаворита независимо от всего остального.
                                  +3
                                  15 лет назад машинного обучения на цикле хайпа от Gartner вообще не было, а сейчас на самом пике.
                                  +1
                                  Рейтинг России и Испании — а в английском варианте Russia и England. Вы уж определитесь)
                                    +2
                                    Колебания рейтинга после добавления рейтинга UEFA (и небольшой правки названий стран по итогам геополитических рокировок)

                                    Под этой написью есть график «Рейтинги России и Испании» красная линия подписана «England». Это одна из таких «геополитических рокировок» или косяк?
                                      +3
                                      Не нашел упоминаний о англо-испанской войне XX века, поэтому поправил график, спасибо!
                                      +2
                                      выборки вообще не для футбола. Хорватия в финале — это вообще как? Германия вылетела, Россия прошла Испанию, англичане не проиграли по пенальти. Как там по Роме-ЦСКА прогнозы?
                                        0
                                        Garbage in, garbage out.
                                        Сомнительно что на таких данных можно получить стабильный результат.
                                        Вся предсказательная сила в оценке от FIFA. Букмекеры уже заложили оценку FIFA в свои ставки.
                                        Нужно как минимум оценивать состав команд, тогда можно получить что-то новое. На указанных данных — сомнительно. Да и модель не позволят учитывать учитывать такие данные.
                                          0
                                          У нас в универе один парень, парсил новости для построения предсказательной модели для ценных бумаг на основе текстовой информации.Он затем создавал словарь, где тем или иным терминам ставились положительне или отрицательные значения, как вариант, можно применить и в таком случае, на мой взгляд. (Впрочем тот парень тоже не добился предсказательной точности, но там и характер данных другой).
                                            0
                                            У меня были планы парсить оцифрованные характеристики игроков в сборных на момент каждой игры для расширения таблицы признаков. Это бы определенно помогло. Но я как-то сразу не нашел, где можно удобно выкачать эти данные с достаточной глубиной. Да и за победу не билет на Луну от SpaceX обещали )
                                            +1
                                            Пытайтесь прогнозировать теннисистов и всяких прочих единоборщиков, не прогнозируйте командные виды спорта таким образом. У команд из года в год название одно, а содержание разное.
                                              0
                                              Букмекеры (а точнее компании, у которых букмекеры покупают коэфициенты) и так используют data science для расчёта вероятностей. Тем-более с их финансовыми возможностями у них есть доступ и к более полной исторической информации, и к более продвинутым специалистам в области DS.
                                              Так что никуда они не денутся, наоборот — теперь с ними ещё сложнее соревноваться.
                                                0
                                                На самом деле нет.
                                                0
                                                у буков есть всегда маржа, они никогда в минусе не останутся, расслабтесь
                                                  +1
                                                  Букмекер не мамонт — не вымрет. А вот тренированный ИИ на раз будет вычислять договорные матчи, что букмекеры (и не только они) смогут использовать в своих целях.
                                                    0
                                                    Буки имеют полный картбланш — кроме самой игры они могут резать ставки, отменять исходы, банить игроков, рубить часть вилки и еще много-много чего для борьбы с теми, кто начинает выигрывать.
                                                    Может ли ИИ давать прогнозы качественее, чем даже профессиональные игроки? — Скорее всего да. Может ли ИИ обыграть букмекера? — 100% нет
                                                      +1
                                                      Буки имеют полный картбланш — кроме самой игры они могут резать ставки, отменять исходы, банить игроков, рубить часть вилки и еще много-много чего для борьбы с теми, кто начинает выигрывать.

                                                      На самом деле нет. Ни один вменяемый букмекер не будет этого делать — борятся с теми, кто нарушает правила.
                                                      Есть те, кто случайно много выигрывают, есть те, кто на жизнь зарабатывают стабильно выигрывая. Букмекеры их знают, даже иногда учитывают их ставки в расчётах. Это же отличная реклама. Букмекеру вообще всё равно, кто выигрывает — надо просто сбалансировать и взять свою маржу.
                                                        0
                                                        Вы живете в розовом мире :)
                                                        Масштабы проблемы на столько большие, что в UK есть целое движение игроков, которое пытается на законодательном уровне запретить такие вещи букмекерам
                                                          0
                                                          Есть и движение сторонников плоской земли. Это ещё не значит что они правы или что смогут чего-то добиться.
                                                          Там где я работал пользовательское соглашение тоже позволяло такое делать. Почему — потому что букмекер обязан предотвращать отмывание денег или ставки на договорняк, потому сейчас проще отменить ставку, чем платить потом штрафы.
                                                          Если это будет принято законодательно, то букмекерам будет только проще, ведь можно больше не тратить деньги на такой контроль и не рисковать штрафами.
                                                          При этом мы никогда не отменяли сделки честных пользователей (когда у нас не было веских оснований считать иначе). Выигрывающих постоянно отслеживали, это полезный хинт для букмекера, но спокойно давали им выиграть. В моей стране я не видел в газетах ни одной истории необоснованной отмены выигрыша, а ведь отмены были. Это значит, что отменялись такие ставки, о которых клиенты не хотели упоминать.
                                                            0
                                                            Я так понимаю, вы представитель букмекерской компании. Скажите честно, вы не отбиваете вилочные ставки? Вот только честно )
                                                              0
                                                              Не представитель. Сотрудник. Бывший.
                                                              Что имеется в виду под «отбиваете?». Если «отменяем» — честно, нет, не отменяем.
                                                              Букмекеры следят за вилочными коеффициентами (вот не помню была ли нотификация в софте, но как-то отслеживали точно). А вот знать, что пользователь поставил вилку, мы не можем.
                                                              Ещё раз, нас интересовал баланс ставок и маржа. Я даже пробовал описать, почему вилочные ставки это не плохо для букмекера, но получилось долго. Расписать?
                                                                0
                                                                Если не затруднит, было бы неплохо!
                                                                  0
                                                                  Ок, только попрошу не пинать за корявые термины, потому что я работал девелопером в англоязычной команде немецкоязычного букмекера, а Вам отвечаю на русском :)
                                                                  Итак, допустим играют Реал-Бавария в финале ЛЧ — ничья невозможна. Допустим букмекер посчитает вероятности 50/50 и поставит 1.85:1.85, допустим получит 100к евро на каждую из команд, таким образом при любом исходе прибыль 15к. В реальности будет скажем 120к на Реал и 80к на Баварию, тогда при победе Баварии букмекер выиграет 52к, при победе Реала проиграет 22к. Эти циферки (52 и 22) букмекер видит вживую на экране, его задача пытаться найти баланс между максимизацией прибыли и минимизацией убытков.
                                                                  Он может поменять коеффициенты так, чтобы ставить на Баварию стало интереснее, чем на Реал — скажем 1.5:2.4. Тогда на Реал продолжат ставить, но уже допустим 20к, а на Баварию всем станет интереснее и поставят 50к. Теперь при победе Реала букмекер уже выигрывает 18к, но ценой уменьшения выигрыша при победе Баварии до всего 3к (это в сумме с тем, что ставили до того).
                                                                  Конечно на практике изменения куда меньше, это просто пример чтобы очевиднее. И никто не будет гнаться за плюсами любой ценой, иначе можно растерять маржу совсем и выйти на убытки при любом исходе, лучше принять небольшой риск.
                                                                  Почему букмекер ориентируется на эти числа? Во первых, лучше гарантированно немного заработать, чем рисковать — то есть как минимум не рисковать проиграть недопустимо много. С другой стороны иногда букмекер может ошибаться с оценкой команд, и толпа подскажет. Или ошибается толпа, а ведь букмекер не играет против исхода матча а берёт маржу с толпы.

                                                                  Вилки бывают двух видов — внутри одной конторы и между конторами. Внутри конторы — вот эти могут отменять, это да. Но у нас это было невозможно, потому что коеффициенты рассчитывала программа а не букмекер, то есть они были согласованы по всем предлагаемым зависимым пари (например, кто забъет следующий гол и кто выиграет). А в рамках одного пари ещё и были проверки поверх, которые заблокировали бы такое даже если модель вдруг рассчитала, причём даже не на чистую вилку а на предложения ниже маржи. То есть в 21 веке чтобы такое произошло, должен быть какой-то эпик фейл — хотя допускаю что такое бывает.
                                                                  Между конторами — вот это часто. Есть сайты, которые такое отслеживают и предлагают. На практике у нас была проблема, что основная аудитория немцы, а они поставят на своих всегда, и был перекос ставок. А конкурент держит рынок в Испании и имеет обратную проблему. Так как задача букмекера получить желаемое распределение ставок и снять маржу, иногда можно и вилку с конкурентом предложить. В таком случае быстро придут ставки на нужную опцию и можно выйти в плюс по всем опциям. И букмекеру всё равно, почему эти ставки поставлены и кто получит выигрыш.
                                                                  Тут важно, что букмекер следит за ставками, и обычно знает о вилках (наши знали). Но при этом букмекер но не может отличить кто просто играет а кто поставил вилку. Да и какая разница, если букмекер всё равно выиграл?

                                                                  С практической точки зрения для игроков зарабатывать на вилках между букмекерами практически невозможно. Во-первых, надо иметь счета везде. И Вы не хотите нести деньги в мутные места, а надёжных букмекеров с учётом ограничений по странам немного. Во-вторых Вам надо поставить ставку сразу на двух-трёх сайтах. Как я писал выше, обычно стоит задержка на принятие ставки. То есть вилка может быть потому, что кто-то забил гол, букмекер А уже поменял коеффициент а Б ещё нет. Но пересчитает в эту задержку и отклонит Вышу ставку, а на А она уже принята с проигрышным для Вас коеффициентом. В-третьих вилка будет именно на уровне 2.01:2.01, а максимальная ставка ограничена, потому на 100 долларов Вы получите 50 центов выигрыша. Потом заплатите налоги. То есть сыграть надо раз двести, а за это время пару раз случится «во-вторых» :)

                                                                  Таким образом для букмекеров «вилочники» это либо лёгкая добыча, либо недорогой арбитраж.

                                                                  На чём реально можно зарабатывать на жизнь — на хорошем знании спорта, находя события где «толпа ошибается» играть против них. Таких игроков отслеживают и букмекеры в реалтайме видят куда они ставят — это хорошая подсказка букмекеру. Они тоже букмекеру выгодны — обычно их немного, и это отличная реклама.
                                                      +2
                                                      У Microsoft есть математическая модель TrueSkill для игроков xbox. Может попробовать для реальных игроков применить?
                                                        0
                                                        Существует поговорка: можно медведя научить на велосипеде ездить, вот только пользы для него не будет.
                                                        Интересно, а эта модель TrueSkill самим игрокам буковским принесёт пользу или только букам :)
                                                          0
                                                          Чтобы что-то новое сделать — надо пробовать разные варианты.

                                                          А польза от букмекеров сомнительная в принципе. По крайнем мере я не знаю примеров пользы.
                                                            +1
                                                            > польза от букмекеров сомнительная в принципе
                                                            Ну, я имел в виду пользу тем, кто пользуется услугами буков, а не пользу для них самих.
                                                            Согласен, что они — паразитирующая прослойка, как, впрочем, представители очень многих областей выкачивания денег из «нужное подставить». Т.е. те области, которые не созидают, а являются чистыми посредниками, делающие деньги из воздуха. Их впеолне можно заменить не просто ИИ, а чем-то с зачатками ИИ или просто с жёстким алгоритмом далеко не самым изощрённым. Тут же ума не надо (в этой области деятельности).
                                                              0
                                                              А польза от букмекеров сомнительная в принципе. По крайнем мере я не знаю примеров пользы.

                                                              А какая польза от, скажем, Ди Каприо? Это сфера развлечений, и если мы принимаем, что ставки на спорт это приемлемое развлечение, то букмекеры приносят очевидную пользу развлекая людей. Если нет — то есть и такие страны, где просто запрещено, там и букмекеров нет.

                                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                        Самое читаемое