Руководство специалиста по данным, как выиграть в большинстве игр.

Это приквел к моей предыдущей статье Прогнозирование побед в League of Legends, в которой мы создали несколько моделей для прогнозирования исхода игры на основе нескольких внутриигровых функций. Эта статья и предыдущая основаны на наборе данных от Kaggle с более чем 9800 играми с высоким рейтингом.

Контекст

Если вы когда-либо играли в League of Legends, вы можете сказать, что многие игры напоминают подбрасывание монеты, но в большинстве случаев вы действительно можете что-то с этим сделать и выиграть! Давайте проведем некоторый исследовательский анализ этого набора данных и посмотрим, как вы можете (статистически) выиграть больше игр.

Функции в этом наборе данных запрашиваются на 10-й минуте каждой игры.

Предварительная обработка данных

Во-первых, нам нужно импортировать наш набор данных.

df = pd.read_csv('high_diamond_ranked_10min.csv')

Следуя предыдущей статье, где мы выбрали лучшие функции с помощью SelectKBest из Sci-kit Learn, мы можем пойти дальше и выбрать функции, которые больше всего влияют на исход игры.

best_features_list = ['blueWins','blueGoldDiff','blueExperienceDiff','blueAvgLevel','redAvgLevel','redKills','blueKills','blueAssists','redAssists','blueCSPerMin','redCSPerMin','blueFirstBlood','redFirstBlood','blueEliteMonsters','redEliteMonsters','blueDragons','redDragons']
new_df = df[best_features_list]

ЭДА

Теперь давайте найдем корреляции функции с независимой переменной, используя метод pandas .corr().

corr = new_df.corr()
print('Positive Correlations:')
print(corr.loc['blueWins'].sort_values(ascending=False)[1:6])
print('\n')
print('Negative Correlations:')
print(corr.loc['blueWins'].sort_values(ascending=True)[:5])

Как мы видим, положительные корреляции показывают особенности, которые имеют наибольшее значение для победы в игре (blueWins = 1), а отрицательные корреляции показывают особенности, которые наиболее важны для проигрыша в игре (blueWins = 0). Следующая гистограмма показывает предыдущую информацию более аккуратно.

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

Наша первая функция является самой важной, потому что она имеет самую высокую корреляцию, и это blueGoldDiff, разница в золоте между двумя командами. Это результат суммы золота Синей команды за вычетом общего золота Красной команды.

Как видно из предыдущей гистограммы, синяя команда выиграла около 72% игр, где к 10-й минуте у нее было золотое преимущество. Это довольно интуитивно понятно, потому что, если у вас больше золота, чем у вашей команды противника, вы можете быстрее покупать предметы, совершать больше убийств, увеличивать игру. Это говорит нам о том, что если вы лидируете в золоте к 10-минутной отметке, то в 72% случаев вы выиграете игру.

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

Наша следующая особенность — командные убийства. В среднем к 10-й минуте и в игре, в которой выигрывает Синяя команда, у Синей команды будет 7 убийств, а у красной команды — 5, как показано на следующей гистограмме.

Это связано с первой проанализированной нами особенностью — разницей в золоте, потому что, когда вы убиваете кого-то из противоборствующей команды, вы получаете золото в награду.

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

Первая кровь — важная особенность, потому что она дает вашей команде раннее преимущество, и в большинстве случаев убитому чемпиону противоборствующей команды придется тратить заклинание призывателя, такое как Телепорт, чтобы вернуться на линию, чтобы наверстать упущенное CS.

По статистике, если ваша команда получит первую кровь, у вас будет 60% шанс на победу в игре, что на 10% больше, чем стандартные 50%.

Заключение

Таким образом, обладание наибольшим количеством золота в команде — это то, что приносит вам победу в игре и позволяет вам продвигаться к победе как снежный ком. Есть несколько способов получить золото, например: получить первую кровь, получить плиты башни, избежать того, чтобы противоположная команда получила вашу, CSing и многое другое (бродить на другую сторону карты, чтобы убить саппорт 0/5 не является один из них).

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

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

Спасибо, что нашли время прочитать эту статью.