根据百分比值应用随机生成器

时间:2019-02-08 13:12:30

标签: python machine-learning

我有一个电子表格,其中包含来自Pro Evolution Soccer的7,000个球员统计信息,我想根据他的位置获取每个属性的每个值的发生率。

类似的东西:

Striker - Attack = 99: 1.3%; 98: 1.8%; 97: 3.5%;...

CenterBack - Attack = 99: 0.002%; 98: 0.003%; 97: 0.006%;...

然后,我将基于此参数创建一个随机播放器生成器。

  • 所以我的问题是,我怎么会发生这种情况?
  • 我认为这是一个机器学习应用程序,我错了吗?
  • 然后,使用此参数,有一种方法可以生成随机但具有百分比概率的东西?

2 个答案:

答案 0 :(得分:2)

直接回答您的问题:当您想知道某个分布的百分位数时,可以使用numpy

import numpy as np
strikerAttackValueList=np.random.randint(0,100,1000)#example of stats list    
percentile50=np.percentile(strikerAttackValueList,50)

但这既是数学统计问题,又是编码问题。

第一步是检查Pro Evolution Soccer中的值如何分配。这可以是正常的,均匀的..(https://en.wikipedia.org/wiki/List_of_probability_distributions,具有一定的平均值和标准偏差。 要知道这一点,请导入您想要学习的统计信息并执行以下操作:http://www.insightsbot.com/blog/WEjdW/fitting-probability-distributions-with-python-part-1

然后,要生成随机玩家统计信息,您可以使用random或numpy(例如,假设均匀分布在0到100之间):

import random
strikerAttackValue=random.randint(0,100)
print(strikerAttackValue)

import numpy as np
strikerAttackValue=np.random.randint(0,100)
print(strikerAttackValue)

答案 1 :(得分:1)

如果您想直接采样,我认为np.random.choice可以解决问题:

import numpy as np

# generate some stats (ie your soccer values)
np.random.seed(1)
soccer_stats = np.random.normal(0, 1, size=100)

# sample from them
sampled_stat = np.random.choice(soccer_stats)
print(sampled_stat)
  

-0.8452056414987196

查看np.histogram,以观察要从中采样的分布。 collections.Counter非常适合查看非数字数据的分布(也许是您的足球运动员的姓名?)