通常,足球经理游戏中的玩家具有市场价值.经理们根据这些市场价值出售他们的球员.他们认为:"哦,玩家价值3,000,00,所以我会尝试卖掉他3,500,000".
所有球员都有三个基本素质:
基于这些值,我计算了当前的市场价值.但我想根据最后一段时间内的玩家转移动态计算市场价值.我怎么能这样做?
我有上面提到的质量和最后一段时间的球员转移可供计算.
我该怎么计算呢?我是否必须根据质量对最后转移的球员进行分组,并简单地采用平均转会价格?
我希望你能帮助我.
替代文字http://i31.tinypic.com/2iglr3d.png
注意:玩家=物品/商品,经理=用户
我的建议:定义一个距离函数,它取两个玩家的统计数据并返回一个距离值.既然你有两者之间的距离(对应于它们之间的相似性),你可以使用K-means算法来找到类似玩家的集群.
对于每个群集,您可以采用多个值来帮助您计算所谓的"市场价格"(如平均值或中值).
这是一个非常简单的例子,说明如何计算两个玩家之间的距离函数:
float distance(Player player1, Player player2){
float distance = 0.0;
distance += abs(player1.strength - player2.strength) / strengthRange;
distance += abs(player1.maxStrength - player2.maxStrength) / maxStrength;
distance += abs(player1.motivation - player2.motivation) / motivationRange;
distance += abs(player1.age - player2.age) / ageRange;
return distance;
}
Run Code Online (Sandbox Code Playgroud)
现在你有了距离函数,你可以应用k-means算法:
将每个玩家随机分配到群集.
现在计算每个集群的质心.在您的情况下,质心坐标将是(力量,maxStrength,动机,年龄).例如,要计算质心强度坐标,只需平均群集中所有玩家的强度.
现在将每个玩家分配到最近的质心.请注意,在此步骤中,某些玩家可能会更改其群集.
重复步骤2和3,直到收敛,换句话说,直到步骤3中没有玩家更改其群集.
现在您拥有了集群,您可以计算出类似玩家的平均价格.
| 归档时间: |
|
| 查看次数: |
1234 次 |
| 最近记录: |