算法或确定不公平模式的方法

huangapple go评论52阅读模式
英文:

Algorithm or Way to Determine Unfairness Pattern

问题

我想知道我能用什么样的算法或方法来检测游戏中是否有人故意输,然后使用备用账户来让他们的主账户轻松获胜。

我有一个按天分类的每个人记录的数据库。
如果一名玩家反复以不公平的分数或相同的分数(100 - 0)击败另一名玩家,那么另一名玩家就是故意输。

示例:

第1天

  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 100 - 68(玩家1对战玩家3)(玩家1获胜)
  • 100 - 68(玩家1对战玩家3)(玩家1获胜)

第2天

  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 12 - 100(玩家1对战玩家3)(玩家3获胜)
  • 100 - 0(玩家1对战玩家2)(玩家1获胜)

第3天

  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 100 - 0(玩家1对战玩家2)(玩家1获胜)
  • 52 - 100(玩家1对战玩家3)(玩家3获胜)

我们可以看到,玩家1反复以完美的100 - 0分击败玩家2,因此玩家2是故意输给玩家1。

我不知道如何开始或使用什么算法,如果有人能指导我正确的检测方向或给我任何想法,我将不胜感激!

谢谢。

英文:

I want to know what kind of algorithm or way that I can do to detect a pattern in a game if someone is intentionally losing and using an alternate account to give their main account free wins.

I have a database with the records of each person that is categorized by days.
If a player is repeatedly winning against another player with an unfair amount of points or repeated amount of the same score (100 - 0) then the other player is intentionally losing.

Example:

Day 1

  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 100 - 68 (Player_1 VS Player_3) (Player_1 Win)
  • 100 - 68 (Player_1 VS Player_3) (Player_1 Win)

Day 2

  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 12 - 100 (Player_1 VS Player_3) (Player_3 Win)
  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)

Day 3

  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 100 - 0 (Player_1 VS Player_2) (Player_1 Win)
  • 52 - 100 (Player_1 VS Player_3) (Player_3 Win)

As we can see that Player_1 has been repeatedly winning against Player_2 with a perfect score of 100 - 0 so therefore Player_2 is intentionally losing against Player_1

I do not have any idea on how to start yet or what algorithm to use, if someone can point me in the right detection or give me any ideas then it is greatly appreciated!

Thank you.

答案1

得分: 1

  1. 特征提取应该是您的第一步,我认为应考虑的特征包括:

    • 每位玩家的总比赛次数。
    • 每位玩家的胜负比例。
    • 每位玩家的平均得分。
    • 特定比赛结果的频率(例如,涉及特定玩家的100-0分数)。

    然后计算这些特征和您可能认为重要的任何其他特征。

  2. 现在,您应该选择您的异常检测方法,我认为有两个选项:

    • 统计方法,如z-分数。
    • 无监督机器学习算法,如孤立森林或单类SVM。

    您应该基于公平比赛和有意输掉的数据集来训练所选模型。如果您能够标记一些有意输掉的情况,对于监督学习将会很有帮助。

  3. 将训练好的模型应用于您的数据集,并找到适当的阈值来检测异常。

英文:
  1. Feature Extraction should be your first step, features to be considered in my opinion are:
  • Total number of matches played by each player.

  • Win/loss ratio for each player.

  • Average score for each player.

  • Frequency of specific match outcomes (e.g., 100-0 scores) involving a particular player.

    Then compute these features and any other features that you may think is important.

  1. Now you should choose your anomaly detection method, There are two options in my opinion:
  • Statistical methods such as z-score.

  • Unsupervised machine learning algorithms like Isolation Forest or One-Class SVM.

    You should train the chosen model both based on fair games and intentional loose data set. If you could label some intentional it would be great for supervised learning.

  1. Apply the trained model on your dataset and find the right thresholds for detecting anomaly.

huangapple
  • 本文由 发表于 2023年5月10日 12:14:50
  • 转载请务必保留本文链接:https://go.coder-hub.com/76214846.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定