gpt4 book ai didi

python - 有没有办法为随机数生成器中的样本分配概率?

转载 作者:太空宇宙 更新时间:2023-11-03 20:07:53 25 4
gpt4 key购买 nike

我有一个包含每月汇总的财务数据集。我知道每个指标的真实世界平均值。

我正在尝试使用 Python 构建一些虚拟交易数据。我不希望虚拟交易数据完全随机。我想根据我所拥有的现实世界平均值对其进行建模。

例如 - 如果从真实数据来看,每月总利润为 1000 美元,总交易数为 5 笔,则每笔交易的平均利润为 200 美元。我想创建围绕现实世界平均 200 美元建模的虚拟交易。我就是这样做的:

import pandas as pd
from random import gauss

bucket = []

for _ in range(5):
value = [int(gauss(200,50))]
bucket += value

transactions = pd.DataFrame({ 'Amount' : bucket})

现在,我面临的挑战是我也必须随机化标识符。

例如,我知道一共有三个买家。我们称它们为 A、B 和 C。这三个人已经完成了这 5 笔交易,我想在创建虚拟交易数据时随机分配它们。然而,我也知道 A 很可能比 B 和 C 进行更多的交易。为了使我的虚拟数据接近现实生活场景,我想在我的虚拟交易数据中为这些买家的出现分配概率。

假设我想要这样:

A:60% 外观B:20%外观C:20%外观

我怎样才能实现这个目标?

最佳答案

你问的不是概率。您希望 A 有 100% 的机会有 60% 的机会购买。同样,将字典作为输入,每个用户都有购买的概率。然后根据您的基础创建一个包含这些概率的列表,并从列表中随机选择一个买家。如下所示:

import random

#Buy percentages of the users
buy_percentage = {'A': 0.6, 'B': 0.2, 'C': 0.2}

#no of purchases
base = 100

buy_list = list()
for buyer, percentage in buy_percentage.items():
buy_user = [buyer for _ in range(0, int(percentage*base))]
buy_list.extend(buy_user)

for _ in range(0,base):
#Randomly gets a buyer but makes sure that your ratio is maintained
buyer = random.choice(buy_list)

#your code to get buying price goes below
<小时/>

更新:

或者,可以使用以下链接中给出的答案。我认为这个解决方案更好。
A weighted version of random.choice

关于python - 有没有办法为随机数生成器中的样本分配概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58872135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com