我正在设计一种可以检测国际象棋游戏中作弊的算法。
我有一个被版主标记为作弊的玩家数据库,以及一些游戏级别的特征,例如黑白棋的移动时间和移动精度(由国际象棋引擎确定)。
让我们指定一个简单的回归:
cheatflag ~ whiteMoveTime + blackMoveTime + whiteMoveAccuracy + blackMoveAccuracy
假设cheatflag 是一个因子级变量,如果没有作弊者,则为0,如果白色是作弊者,则为1,如果黑色是作弊者,则为2。
问题是 whiteMoveTime 和 whiteMoveAccuracy 等变量的预测值关键取决于谁在作弊。如果白人作弊,则这些变量的系数应该与黑人作弊时的系数不同。据我所知,运行大多数黑盒算法将得出所有作弊情况的平均系数,而无需了解变量的层次性质。
这个问题带有某种条件假设的贝叶斯风格——如果黑棋作弊,那么这些变量很重要;如果白人作弊,这些变量很重要,依此类推。
我该如何处理这个问题?