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

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

Недавно я изучал алгоритмы кластеризации, которые используются помимо K-Means, а также инструменты уменьшения размерности помимо PCA. Я наткнулся на Gaussian Mixture и Bayesian Gaussian Mixture как на альтернативу обычному алгоритму кластеризации K-Means. Я также столкнулся с UMAP для уменьшения размерности в одном из блокнотов Kaggle, и при дальнейшем изучении он показался мне действительно крутым, а иногда даже более полезным и лучшим, чем PCA [особенно для визуализации].

Моя первоначальная идея анализа/проекта заключалась в том, чтобы разделить игроков на основе различных ролей, которые они играют, в зависимости от статистики, которую они производят в игре. Я решил использовать всю статистику по раундам, так как они не зависят от количества раундов, сыгранных игроком.
(причина игнорирования других функций [Max Kills, total K, D, A и т. д.] заключалась в том, чтобы игроки с большим количеством совпадений не имели несправедливого преимущества в процессе кластеризации).

Во-первых, я начал с того, что удалил из VLR данные обо всех игроках, которые играли в VCT Champions 2022 [что может быть лучшим способом установить контрольные показатели].

После разбора я сначала вручную выбрал функции, которые были абсолютно нейтральными и не зависели от количества раундов, которые играет человек. Таким образом, статистика за раунд была благом для проекта, однако «K: D» был исключением из функций за раунд, поскольку я чувствовал, что его все еще можно поддерживать независимо от количества раундов, которые играет человек.

Итак, окончательные особенности, которые я выбрал, были:
K:D- Kill-Death Ratio
ADR- средний урон за раунд
APR- количество передач за раунд
KPR- убийство за раунд
FKPR- первое убийство за раунд< br /> FDPR-первая смерть за раунд

Некоторые характеристики, такие как KAST% и ACS, не были выбраны, поскольку они должны быть производными характеристиками от базовых, и мне казалось, что они не будут соответствовать текущей модели, которую я имею в виду.

Теперь, прежде чем замарать руки с неконтролируемой моделью, я передал данные в масштабирующий конвейер, состоящий из двух масштабирующих модулей:
Power Transformer: преобразуйте данные в один, имеющий сходство с гауссовым распределением вероятностей, поскольку оно настоятельно рекомендуется для используемой нами модели.
Надежный масштабатор: нормализуйте данные, чтобы сделать их более удобными [по отношению к составителям] для использования и работать над.

Выходные данные, полученные из конвейера, теперь готовы для EDA.

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

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

Я обучил модель для 4 выходных кластеров, чтобы [предпочтительно] получать дуэлянтов, контроллеров, стражей и Инициаторы все разделены.
[но как часто жизнь дает вам то, что вы ищете «легко»?]

Выходные кластеры, которые я получил, были, мягко говоря, очень неожиданными и странными. В результате получилось 4 немаркированных набора групп с некоторыми профессиональными именами в них, и я почувствовал, что пришло время проконсультироваться с профессиональными аналитиками по этому поводу. После обсуждения кластеров с некоторыми профессиональными аналитиками и самостоятельного мозгового штурма я придумал ярлыки для загадочных групп, а именно:
Кластер 0: Дуэлянты / Первичные оперативники< br /> Класс 1: Поддержка Flex
Класс 2: Несите Flex/недуэлянтов, которые умеют фраговать
Класс 3: Второстепенные дуэлянты

Эти групповые метки не были точными метками, которые удовлетворили бы всех игроков в группе, а были метками, которые удовлетворяли режим игроков.

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

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

Я удалил данные индийского квалификационного турнира GXR-India Invitational, чтобы сравнить их с предварительно обученной неконтролируемой моделью.

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

И вуаля! Модель предсказания творила чудеса.

Я смог разделить индийского игрока на указанные выше группы на основе международных стандартов игроков, что дало некоторые [очень важные] идеи:

  1. В индийских квалификациях было много дуэлянтов (37%), это количество настолько велико, что даже игроки, которые должны были быть второстепенными дуэлянтами, попадают в категорию дуэлянтов на основании их статистики. Это более или менее понимание, которое можно скорректировать, и в этом нет особого беспокойства.
  2. Согласно модели, в индийских квалификациях было только 2 узнаваемых вторичных дуэлянта, это следует учитывать, поскольку игроки не могут оценить разницу между дуэлянтами и вторичными дуэлянтами.
  3. Модель указала только на 2 керри флексов, т.е. не дуэлянтов, которые умели фраговать. Это тревожный фактор, игроки поддержки, которые остаются пассивными или всегда поддерживают, иногда могут привести к тому, что дуэлянты будут чувствовать сильное давление фрагов.
  4. Многие международные профессионалы принадлежали к категории гибкой поддержки, что довольно очевидно, поскольку вы не можете ожидать, что все будут фрагить все время в игре, но все же, если есть определенная группа людей, я бы рекомендовал активизировать свою игру будут люди, принадлежащие к этой группе.
    Опять же, есть много igl, принадлежащих к этой группе, поэтому, если вам удобно играть свою роль, данные — это всего лишь глава. книги.

Говоря с точки зрения системы рекомендаций, ту же модель можно использовать для рекомендации игрокам, какую роль они должны играть [если они еще не играют эту роль] в сравнении с профессионалами, но информация, необходимая для того же, доступна только для профессиональные матчи [записанные VLR или RIB], модель будет творить чудеса для людей, которые хотят получить результаты от своих схваток / мопсов, но отсутствие информации от них затрудняет что-либо рекомендовать на данный момент (если только вы не достаточно увлечены, чтобы считать их вручную или нанять специалиста по данным, чтобы автоматизировать это за вас).
[Да, даже на tracker.gg нет всей необходимой информации]

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

Прежде чем я закончу статью, я хотел бы поблагодарить @siehcasts и @Malav[Rexdreams] за их время, потраченное на мозговой штурм о странных группах профессиональных игроков без ярлыков, а также поблагодарить @Sushant[Ominous], который сделал аналогичный проект, который натолкнул меня на мысль использовать алгоритм кластеризации.

Вы можете связаться со мной в моем Twitter или LinkedIn.

Если вам интересен уродливый код, вы можете найти его на моем GitHub.