Страница 2 из 5

Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 03:06
Igen
 Скрытый текст
Программист из меня, конечно, никудышний. Да и верстальщик так себе, ну да ладно.

Подумалось мне давеча, пересматривая тему "Зачем лиге такие матчи?", а может имеет смысл программно проверить все, что там пишется? По поводу рендома, влияния расстановок, удачи итд.
Все мы при определении логичности матча в первую очередь ориентируемся на полоски силы, а потом уже на всякие второстепенные факторы. Этими факторами могут быть - моментные спецухи, расстановка, сильный игрок, тактика, усиливающие замены, рендом и другие. Что из них сыграло в каждом конкретном матче никто не скажет. Поэтому имеет смысл рассматривать их все вместе.
В-общем, наваял скриптик.
Он сравнивает полоски силы, и если результат матча им не соответствует - оценивает в плюс удачливую команду и в минус неудачливую. В зависимости от отношения сил оценивает разными баллами.
На примере, играют команды с соотношением сил в матче 54% на 46%. Если выигрывает первая команда матч считается логичным и никак не оценивается. Если ничья, то первая команда получает - 8%, а вторая +8%. Если выигрывает вторая команда, то она получает +16%, а первая -16%.
Схему расчета буду дорабатывать. Все таки важен и итоговый счет, потому что если первая команда обыграла вторую команду со счетом 4-0, то явно ей матч должен оцениться в плюс, а по текущей схеме никак не оценится.
Такая статистика собирается по всем матчам команды и делается вывод насколько этой команде "везет", то есть насколько удачно эта команда пользуется группой второстепенных факторов (моментные спецухи, расстановка, сильный игрок, тактика, усиливающие замены, рендом и другие).

Собственно вот скрипт - НЕ РАБОТАЕТ
Сразу прошу извинения, если будет глючить или некорректно работать. Все таки я не очень программист. Надеюсь, что будет нормально работать.
Скорость работы - матчи одной команды за сезон приблизительно обсчитывает 15 секунд. То есть если вы захотите обсчитать с 30 по 40 сезон, то будьте готовы ждать 2-2,5 минуты.

Немного о получающихся результатах.
Прогнал все Кайманские команды Д1 за 5 сезонов. Наилучший показатель за сезон +1,49%. Наихудший -2,51%.
У моей команды +0,96%, -0,6%. Суммарный +0,38%.
То есть если в сезон выше 1% то это достаточно высокий показатель удачи, ниже -1% - соответственно наоборот.

У двух команд (не)признанного гуру ПетрВита достаточно высокие показатели. Средний за 5 сезонов у Депортес +1,22% (очень высокий), Куадизия +0,73%(тоже немаленький). А у третьей команды Машук средний за 5 сезонов -0,48% (отрицательный).
Приблизительные ориентиры дал, пользуйтесь.

ЗЫ. Естественно буду дорабатывать программу.
ЗЫ2. Самый нелогичный матч, который мне пока попался вот - http://www.virtualsoccer.ru/viewmatch.p ... _id=240170
В -34,55% оценился.


UPD 14-02-2017 14:30. Добавлена возможность расчета без товарищеских матчей и матчей автосоставами


Текущая версия - НЕ РАБОТАЕТ

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 19:04
tequila
Я давно подозревал, что во ВСОЛе действует система кармы. Если сегодня выиграл при минус 1000, не стоит радоваться, ведь скоро сработает закон равновесия Вселенной и ты получишь привет в обратку :grin: Судя по тому, что матчи с +5+10% и -5-10% достаточно регулярны, а в итоге в сумме все команды укладываются в плюс/минус 1-2%, то Система генерации во ВСОЛе определённо имеет признаки кармического воздаяния. Главное - в среднем все примерно в нуле)

Кроме того, заметил, что команда, находящаяся в начале восхождения имеет тенденцию в общий "плюс", т.к. иногда получает плюшки с матчей против сильных соперников, а слабых попросту нет; в то время как команда, находящаяся в топе Федерации, наоборот, не имеет соперников свыше, поэтому чаще плюшки раздаёт более слабым, поэтому имеет общий "минус". Собственно, это некоторым образом укладывается в систему баффов/дебаффов, поверхностно озвученную администрацией ранее.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 19:21
Igen
Psyrakt писал(а):http://www.virtualsoccer.ru/viewmatch.php?day=12632&match_id=514525 - считает самым удачным матчем за 39 сезон. Хорошо бы внести в скрипт исключения в виде технических побед (если это возможно).
Спасибо за ссылку, теперь знаю как технические выглядят. Обязательно уберу.

Добавлено спустя 2 минуты 26 секунд:
tequila писал(а):Кроме того, заметил, что команда, находящаяся в начале восхождения имеет тенденцию в общий "плюс", т.к. иногда получает плюшки с матчей против сильных соперников, а слабых попросту нет; в то время как команда, находящаяся в топе Федерации, наоборот, не имеет соперников свыше, поэтому чаще плюшки раздаёт более слабым, поэтому имеет общий "минус". Собственно, это некоторым образом укладывается в систему баффов/дебаффов, поверхностно озвученную администрацией ранее.

Все верно. И это неправильно.
У сильной команды по текущей схеме совсем мало шансов получить матчи в плюс, поскольку матчей с более сильными почти нет. А у слабой наоборот, больше.
В версии два, где будет учитываться разница, это будет решено. Я готовлю ее.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 19:56
Offworld
http://www.virtualsoccer.ru/viewmatch.p ... _id=184797 +28%
http://www.virtualsoccer.ru/viewmatch.p ... _id=138330 -22%
Среднее 0,76%. Это с учётом того, что в чемпе уже давно лень юзать тактики

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 20:22
Lexx
Интересная программка. Её полезность вызывает вопросы, но пищу для размышлений подбросила. Мне нравится.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 14 фев 2017, 20:46
Neledva
Подпишусь !

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 15 фев 2017, 01:14
Igen
Отчет о проделанной работе.
Как я уже говорил, неверно оценивать второстепенные факторы команды(условно называемые "удачей") только по ее победам/ничьям при уступании в голой силе. Можно привести десятки примеров почему так неправильно.
Допустим, одна команда выиграла 1-0 в матче с оставанием в полосках сил 47% на 53%.
Другая же команда при 50% на 50% выиграла со счетом 3-1.
Какой счет более нелогичный? Все скажут - первый! А математика скажет нам обратное, второй команде "повезло" больше. Вероятность результата второго матча при таком соотношении сил меньше, чем вероятность результата первого матча.
В текущей версии программы за первый матч команда получит +12% в карму, а за второй ничего.
По справедливости нужно за первый матч дать +8%, а за второй +10%.
Почему? Рассказываю.
Прогнал 10000 матчей этого сезона через скрипт, разделив их по категориям - "ничья", "победа в 1 мяч", "победа в 2 мяча" итд. Для каждой категории посчитал среднее значение отношения сил в матче
Получились такие данные
Ничья - 50% к 50%
Разница в 1 мяч - 54,7% к 45,3%
Разница в 2 мяча - 60,3% к 39,7%
Разница в 3 мяча - 66,3% к 33,7%
Разница в 4 мяча - 72,0% к 28,0%
Разница в 5 мяч - 74,5% к 25,5%
И нашелся всего один матч из десяти тысячи с разностью в 6 мячей с соотношением 80% к 20%
Последним трем доверия нет из-за малого количества данных, их лучше рассчитать теоретически, а первые четыре вполне корректны, с погрешностью не более 0,2%.

В приведенном выше примере команда в первом матче выиграла 1-0 в матче с оставанием в полосах сил 47% на 53%.
Смотрим разницу между 47% и средней силой в процентах для выигрыша с разницей 1 мяч, то есть 54,7%. Разница составляет 7,7%. Именно на столько команда выступила лучше положенного.
Другая же команда при 50% на 50% выиграла со счетом 3-1.
Смотрим разницу между 50% и средней силой в процентах для выигрыша с разницей 2 мяча, то есть 60,3%. Разница составляет 10,3%. Именно на столько эта команда выступила лучше положенного.

Это и есть механика расчета версии 1.2.1

Скрипт готов, он явно лучше первой версии, но нужно придать наглядности выводу результатов. Зачастую самыми удачными(неудачными) матчами он определяет вполне обыденные на наш взгляд матчи, типа того же выигрыша 3-1 при отношении 50% к 50%. Или проигрыша со счетом 0-1 при отношении полосок сил 35% к 65%. Нужно как-то совместить в выводе результатов человеческое восприятие и математический расчет. Как, я пока не знаю. Нам пофигу проиграли мы 0-1 или 0-3, и мы не считаем такие матчи край нелогичными, просто удивляемся и идем дальше и не говорим, гена-козел насыпал 0-3.
Но зато прослеживаются очевидные тенденции и вырисовывается влияние моментных спецух. В частности, на примере моей команды в новом скрипте отчетливо видно увеличение сезонной удачи по мере обрастания моментными. Еще более четко это видно на примере Мойзельвица.
В первой версии 36 сезон +1,44%, 37 сезон +0,23%, 38 сезон +0,23%, 39 сезон -0,66%, 40 сезон +0,18% (неясные прыгающие данные)
В второй версии 36 сезон +2,81%, 37 сезон +1,64%, 38 сезон +2,52%, 39 сезон +1,02%, 40 сезон +1,56% (прыгающие, но отчетливо положительные данные)
Нелогичность тоже более-менее стабильная, когда все матчи учитываются.

А ладно, выложу неготовое. Может кто-то что-то посоветует или заметит http://glad-bags.com.ua/vsol_luck2.php

ЗЫ. Технические поражения/победы убрал из обоих расчетов.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 15 фев 2017, 01:35
chenson
Подпишусь.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 15 фев 2017, 01:57
barsenal
Igen писал(а):А ладно, выложу неготовое. Может кто-то что-то посоветует или заметит http://glad-bags.com.ua/vsol_luck2.php
Спасибо за новую версию - сейчас уже намного более плавные результаты выходят. :super:
Жаль, что нельзя лайкнуть на этом форуме.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 15 фев 2017, 14:43
RAUL7
RAUL7 писал(а):Если честно, даже не знаю, как анализировать эти данные. Ну, вот выдал он мне самый плюсовый матч (+9,12): http://www.virtualsoccer.ru/viewmatch.p ... _id=247581 - победа в равной игре, коих в Лиге сотни каждый день. И самый минусовый (-18 с копейками) - http://www.virtualsoccer.ru/viewmatch.p ... _id=342879 - так тут я сам дурак, что сидел тупо в суперзащите... соперник даже в атаку выходил и вполне заслуженно мог меня обыграть (так и было бы скорее всего, если б он в обороне закрылся)...
Ну, минусовой матч у меня тот же остался, хотя я опять же не считаю, что он "нелогичный", а плюсовой поменялся как раз-таки из-за счета... но что в одной игре было минимальная победа в равном матче, что в новой игре победа в равном матче, но только на гол лучше разницу сделали... и тоже вроде как обычный матч, а он выдается, как "супер"-логичный...

Пока продолжаю скептицировать :grin:

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 15 фев 2017, 20:58
barsenal
RAUL7 писал(а):
RAUL7 писал(а):Если честно, даже не знаю, как анализировать эти данные. Ну, вот выдал он мне самый плюсовый матч (+9,12): http://www.virtualsoccer.ru/viewmatch.p ... _id=247581 - победа в равной игре, коих в Лиге сотни каждый день но что в одной игре было минимальная победа в равном матче, что в новой игре победа в равном матче, но только на гол лучше разницу сделали... и тоже вроде как обычный матч, а он выдается, как "супер"-логичный...
Плюсовой матч - не значит "супер"-логичный, это значит что твоей команде повезло, а сопернику нет. А приведенный тобой матч плюсовой, потому что преимущество в полосках было у соперника, а победил все-таки ты - более логичным исходом была бы ничья либо победа соперника.

Логичные матчи - это те, где везение около 0, то есть ничья между равными соперниками, или минимальная победа при преимуществе 54-46.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 16 фев 2017, 00:53
defs111
Занимательно. Спасибо!)

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 16 фев 2017, 01:23
Akar
tequila писал(а):Я давно подозревал, что во ВСОЛе действует система кармы. Если сегодня выиграл при минус 1000, не стоит радоваться, ведь скоро сработает закон равновесия Вселенной и ты получишь привет в обратку :grin: Судя по тому, что матчи с +5+10% и -5-10% достаточно регулярны, а в итоге в сумме все команды укладываются в плюс/минус 1-2%, то Система генерации во ВСОЛе определённо имеет признаки кармического воздаяния. Главное - в среднем все примерно в нуле)

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

Кроме того, заметил, что команда, находящаяся в начале восхождения имеет тенденцию в общий "плюс", т.к. иногда получает плюшки с матчей против сильных соперников, а слабых попросту нет; в то время как команда, находящаяся в топе Федерации, наоборот, не имеет соперников свыше, поэтому чаще плюшки раздаёт более слабым, поэтому имеет общий "минус". Собственно, это некоторым образом укладывается в систему баффов/дебаффов, поверхностно озвученную администрацией ранее.

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

Барселона не может вылететь во второй дивизион, чтобы накопить сил - она там наоборот все силы растеряет. Опыт и мастерство футболистов зависит от того, где и с кем они играют. В реальном футболе был реальный пример - это высший дивизион СССР, который развалился по национальным чемпионатам. Чемпионат России остался сильным, неплохой чемпионат получился в футбольной и достаточно большой Украине, а все остальное, что выступало в высшем дивизионе, в своих чемпионатах быстро деградировало до их уровня.

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 16 фев 2017, 01:36
Igen
Чуть-чуть только доработал, совсем времени не было.

Теперь таблица как бы разделена на две части.

С левой стороны учитывается, то насколько команда выступает лучше своей силы, независимо от результата матча. И эта часть мало отношения имеет к удаче. Тут основным влияющим фактором является наличие моментных спецух, которые не учитываются в силе, но свое достаточно большое влияние оказывают.

А с правой стороны в добавленных столбцах как раз именно "удача". То есть то, насколько эти второстепенные факторы позволили команде лучше/хуже выступить. Там вместо неуместных "выиграл при отставании в силе", "ничья при отставании в силе" ввел новые графы "выиграл, когда должен был проиграть", "ничья, когда должен был выиграть", "проиграл, когда должна была быть ничья". Соответственно оценивающиеся количеством приобретенных/потерянных очков, из стандартного расчета 3 за победу, 1 за ничью, 0 за поражение. Столбец "Везение" - это набранные/потерянные очки разделить на количество матчей.
Конечно, тут тоже не чистая удача, тут моментные тоже оказывают немалое влияние. И вот определить это влияние и вычленить - текущая цель расчетов.

Добавлено спустя 47 минут 7 секунд:
Еще небольшое дополнение.
Теперь все матчи в графах "выиграл, когда должен был проиграть", "ничья, когда должен был выиграть", "проиграл, когда должна была быть ничья" итп можно просмотреть.

Добавлено спустя 8 часов 6 минут 38 секунд:
Все ссылки в новом окне открываются

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 16 фев 2017, 13:39
Selenid
а у меня минуса только :(

Re: Мне везет? Програмка для ВСОЛа

СообщениеДобавлено: 16 фев 2017, 14:13
TheSpecialOne
Akar писал(а):История из школьного детства хорошо запомнилась - надо было гонять по экрану точку произвольным образом. Как гонять - без разницы, произвольно, дело не в этом было. Первое желание начинающего программиста - ну ок, тогда случайным образом выкидываем вверх, влево, вправо, вниз и все, пусть бегает. Запустил - и точка со старта не сдвинулась. Ну т.е. она дергалась слегка туда-сюда, но движения серьезного в каком-бы то ни было направлении не было, точка в том же стартовом месте и оставалась. Сначала было непонимание, потом удивление, потом принятие действительности - так и должно быть, первое знакомство с теорией вероятностей!

Не совсем верная трактовка теории вероятностей. Ваша точка могла ощутиться в любом месте экрана с одинаковой вероятностью. Ваш пример это скорее совмещение классической теории вероятностей (которая применяется разве что в статистике) с теорией полураспада протона в квантовомеханической системе (именно там говорится о том, что через время t распадётся как минимум 50% от изначально взятых протонов, следовательно точка на экране это протон, а координаты точки через время t можно определить с вероятностью в 50%).