我在这方面远远超出了我的联盟,所以我希望有人能指出我正确的方向。我认为这是一个优化问题,但我对 scipy.optimize 及其与纸浆的匹配方式感到困惑。此外,矩阵数学让我难以置信。因此,这个问题确实让我放慢了速度,而无需问。
问题陈述:我有一个客户数据集。对于每个客户,我可以选择 3 个选项,或者一个都不选。所以有4个选项。同样对于每个客户,我都有一个数字分数,说明每个选择的“好”程度。您可以将这个值想象为the probability of the Choice to create a future sale。
# fake data for the internet
data = {'customerid':[101,102,103,104,105,106,107,108,109,110],
'prob_CHOICEA':[0.00317,0.00629,0.00242,0.00253,0.00421,0.00414,0.00739,0.00549,0.00658,0.00852],
'prob_CHOICEB':[0.061,0.087,0.055,0.027,0.022,0.094,0.099,0.072,0.018,0.052],
'prob_CHOICEC':[0.024,0.013,0.091,0.047,0.071,0.077,0.067,0.046,0.077,0.044]
}
# Creates pandas DataFrame
df = pd.DataFrame(data)
df = df.reset_index(drop=True).set_index(['customerid'])
Run Code Online (Sandbox Code Playgroud)
+------------+--------------+--------------+--------------+
| customerid | prob_CHOICEA | prob_CHOICEB | prob_CHOICEC |
+------------+--------------+--------------+--------------+
| 101 | 0.00317 | 0.061 | 0.024 |
| 102 | 0.00629 | 0.087 | 0.013 |
| 103 | 0.00242 | 0.055 | 0.091 |
| …Run Code Online (Sandbox Code Playgroud) 我正在尝试将假数据插入到该表中。它不能完全随机,因为行需要有意义。下面我来解释一下。
我的数据如下所示:
| 帐号 | 帐户状态 | 开始日期 | 结束日期 |
|---|---|---|---|
| C382861922 | 积极的 | 2016-05-25 | 没有任何 |
| C382861922 | 不活动 | 没有任何 | 没有任何 |
| C382861922 | 积极的 | 没有任何 | 没有任何 |
| C382861922 | 不活动 | 没有任何 | 2021-12-31 |
| C429768513 | 积极的 | 2015-12-27 | 没有任何 |
| C429768513 | 不活动 | 没有任何 | 没有任何 |
| C429768513 | 积极的 | 没有任何 | 没有任何 |
| C429768513 | 不活动 | 没有任何 | 没有任何 |
| C429768513 | 积极的 | 没有任何 | 没有任何 |
| C429768513 | 不活动 | 没有任何 | 没有任何 |
| C429768513 | 积极的 | 没有任何 | 没有任何 |
| C429768513 | 不活动 | 没有任何 | 2021-12-31 |
| C643625629 | 积极的 | 2016-07-24 | 没有任何 |
| C643625629 | 不活动 | 没有任何 | 没有任何 |
| C643625629 | 积极的 | 没有任何 | 2021-12-31 |
| C82157435 | 积极的 | 2016-10-22 | 没有任何 |
| C82157435 | 不活动 | 没有任何 | 2021-12-31 |
每个 AcctID 可以出现多次,但最容易解释我在做什么,仅举一个 AcctID 出现两次的例子:
| 帐号 … |
|---|