如何解决(甚至有效地思考)一个复杂的现实生活中的多元问题

数据挖掘 线性回归 数据分析
2022-02-14 00:26:43

在我的工作中,我们得到估计。

估算可能包括多达 12 种不同的成本类别(开发、法律旅行等),以从数十种不同的交付类别(TV Spot、广播、播客、才艺会议等)中产生任意数量的资产/可交付成果。每个估算将附带一个数量(简单整数计数),用于估算中所有成本的总和。我正在尝试为可交付成果得出一个体面/大致(不完美)的“每单位成本”模型或功能。 “我想制作 5 个视频和 4 个广播点和 6 个数字横幅……我预计这要花多少钱?”

问题是估算几乎总是包含多种类型的可交付成果,而且您​​不会乐于看到每个估算中的哪些成本适用于哪些可交付成果。有些成本似乎与可交付成果相匹配。例如,您可能对“视频”交付物和“视频制作”成本进行了估算,但您不能假设任何成本适用于特定交付物。您只需对估算有一个 TOTAL,以及您获得的每个可交付资产的计数。当然,制作视频的成本几乎总是高于制作照片的成本,所以我希望在许多样本中,我可以利用这些普遍性。但是有很多变数。

我们没有足够的样本(低于 10k)来构建神经网络,或者因为维度和特征集太宽了。出于同样的原因,我们不能有效地使用回归——样本量的维度太多。

所以我试图用代数来思考这个问题。是否有一个方程系统和/或矩阵方法,我可以使用数千个这样的估计来得出给定可交付类型的“每单位成本”?

我应该如何考虑这个问题,或者鉴于未知数的数量,这是一个死胡同吗?

例子:

Project 1
    ├── Estimate #1903  $16,443
    │   ├── Cost Breakdown
    │   │   ├── Animation & VFX:  $3,675
    │   │   ├── Audio & Music:  $3,235
    │   │   ├── Development:  $8,498
    │   │   └── Talent:  $1,036
    │   └── Deliverable Breakdown
    │       ├── Animation/Motion Graphics - 2D Animated Video
    │       │   └── Social --- 2 Orig.   
    │       ├── Audio/Record & Mix - VO Recording
    │       │   └── Audio --- 2 Orig.   
    │       ├── Design & Post Production - Retouched Image(s)
    │       │   └── Social --- 1 Orig.   
    │       └── Online Advertising - Static Banner
    │           └── Display --- 22 Orig.   
    └── Estimate #1907  $16,443 
        ├── Cost Breakdown
        │   ├── Animation & VFX:  $3,675
        │   ├── Audio & Music:  $3,235
        │   ├── Development:  $8,498
        │   └── Talent:  $1,036
        └── Deliverable Breakdown
            ├── Animation/Motion Graphics - 2D Animated Video
            │   └── Social --- 1 Orig.  
            ├── Audio/Record & Mix - VO Recording
            │   └── Audio --- 2 Orig.   
            ├── Design & Post Production - Retouched Image(s)
            │   └── Social --- 1 Orig.   
            └── Online Advertising - Static Banner
                └── Display --- 22 Orig.   
Project 2
    ├── Estimate #1013  $915,855
    │   ├── Cost Breakdown
    │   │   ├── Audio & Music:  $43,060
    │   │   ├── Editorial & Finishing:  $164,725
    │   │   ├── Miscellaneous:  $24,075
    │   │   ├── Services:  $9,280
    │   │   ├── Talent:  $59,457
    │   │   └── Video Production:  $615,258
    │   └── Deliverable Breakdown
    │       └── Live Action Production - Video
    │           ├── Native --- 3 Orig.
    │           ├── Social --- 4 Orig. 
    │           └── TV --- 4 Orig.  
    ├── Estimate #1063  $30,950
    │   ├── Cost Breakdown
    │   │   ├── Audio & Music:  $3,100
    │   │   ├── Editorial & Finishing:  $27,350
    │   │   └── Miscellaneous:  $500
    │   └── Deliverable Breakdown
    │       └── Live Action Production - Video
    │           ├── Social --- 4 Orig.
    │           └── TV --- 4 Orig.
    ├── Estimate #1064  $1,812
    │   ├── Cost Breakdown
    │   │   └── Audio & Music:  $1,812
    │   └── Deliverable Breakdown
    │       ├── Editorial & Finishing - Edited Animatic 
    │       │   └── Testing/Focus Group --- 3 Orig.   
    │       └── Live Action Production - Video
    │           ├── Native --- 02 Orig.
    │           ├── Social --- 4 Orig.
    │           └── TV --- 4 Orig.
    └── Estimate #1065  $27,675
        ├── Cost Breakdown
        │   ├── Audio & Music:  $4,000
        │   ├── Editorial & Finishing:  $23,175
        │   └── Miscellaneous:  $500
        └── Deliverable Breakdown
            └── Editorial & Finishing - Edited Animatic 
                └── Testing/Focus Group --- 3 Orig.
1个回答

我建议使用某种遗传算法。这个想法是为每个项目分配假设成本,然后检查假设与您拥有的数据的匹配程度。一个人代表一个“假设”,即成本分配:从随机假设开始,遗传算法可能能够收敛到一个解决方案。

不久前,我对类似问题给出了以下更详细的答案

显然,这个问题并不总是有唯一的解决方案,但如果您有兴趣找到一种可能的解决方案,您可以尝试一个简单的遗传算法模拟:

  • 每个单独的基因代表所有可能项目列表中的一个项目。
  • 每个基因/物品首先随机分配一个价格(基因表达)
  • 当对基因/物品应用突变时,其价格会随机略微修改。
  • 交叉导致“子基因”取其两个“父基因”的平均值作为值。

此设置意味着总体中的每个人都由分配了特定价格的所有项目组成。在每一代,通过将价格分配应用于实际数据,然后测量与实际价格相比的误差,对每个个体/分配进行评估。最后选择表现最好的前 N ​​个个体/任务作为下一代的父母。最终人口应该收敛到现实的价格分配。

我认为这是遗传算法的完美案例,因为对潜在价格分配的评估是一个非常简单的计算,因此在多代重复过程中没有重大的效率问题(与评估成本过高的许多问题相反) .