2

过去,我们一直使用“供应商”对历史业绩的总结来决定我们如何将新业务分配给每个供应商。

现在我们要做的是将汇总性能分解为较小的子集,例如地理、规模、年龄等,以便更好地分配我们分发给供应商的新业务。

例如,假设现在我有 3 个供应商和 9 个业务要分发。目前,我只是根据他们的业绩总结来分发业务。然而,这并没有考虑到他们在地理、大小、年龄等方面的每一个优势。

因此,假设供应商 A 非常擅长处理德克萨斯州的小型账户,而供应商 B 擅长处理佛罗里达州的大型账户。我想确保每个供应商都能得到他们擅长的东西,而不会得到他们不擅长的业务。

我们在数据库中拥有所有这些信息,但没有真正的算法或方法来提取它并根据我们的决定来决定我们向谁发放多少以及什么样的业务。我们一直在研究 SQL Server Analysis Services 来完成这项任务,但我们可以使用一些非常通用的指针来了解我们应该使用什么算法来完成这项工作。

有没有人碰巧知道一种旨在处理数据分割以做出更好预测的方法或算法?

4

6 回答 6

5

如果您有相当大量的历史数据要处理,您可以使用朴素贝叶斯分类器。使用帐户的特征作为输入,您可以训练一系列分类器来预测每个供应商的表现。

您选择的语言可能已经存在免费实现,尽管您需要阅读一些基本理论,以确保您正确使用它并让您了解哪些类型的输出是合理的。

于 2009-06-19T17:48:42.117 回答
3

朴素贝叶斯是一个不错的选择,但我也会考虑决策树。使用决策树的主要优点是:

  1. 人类很容易理解正在发生的事情并进行调整。
  2. 即使您只有一小部分数据可供训练,它也能很好地发挥作用。

但无论您决定什么,最困难的部分是将您的数据转换为某些属性。这既是为了针对特定算法进行定制,也是为了防止训练变得过于具体。

例如:您可能对指定年龄范围(0-10、11-20、...)更感兴趣,而不是数字作为数字。地理、城市等也是如此。

于 2009-06-19T18:18:17.250 回答
2

将通用数量转换为数值:(在编辑中添加)

您需要某种方法来从数据中获取质量指标(“好”的度量),并将其中很多东西转换为数字量。可能的指标可能是完成任务的时间(与初始估计相比,看看他们是否对此撒谎)、成本、成本与报价成本(检查他们是否给你真实的报价),以及某种与客户满意度相关的综合体到他们从事的项目。

先前合同的区域/区域可以编码为 GPS 坐标,其中 X,Y 为给定交易的区域中心(即“加利福尼亚”或“美国”以及该区域的宽度-x、宽度-y(误差范围). 要查看地理位置是否重要,您可以在新合同的给定距离内找到所有先前的业务(简单形式:只需检查所有先前交易的距离,具有大量数据的复杂形式:某种聚类算法或 3-d表面提取)。

然后,您对(先前业务交易的质量指标)进行加权平均,减去(当前期望的交易位置与先前的交易位置之间的距离)。复杂,但它会为您提供区域业务指标。

分析数据以提取意义

我建议您将数据转换为标准的 CSV 元组(公司 id、地区代码/坐标、帐户规模、绩效指标),然后进行统计回归和数值分析技术。你的目标是用一组方程描述公司在每个特征方面的表现。 主成分分析可以通过识别公司绩效的最重要特征来简化此过程。

软件选择:

老实说,这种分析完全是统计或数据挖掘软件的领域,而不是 SQL 分析引擎,因为它们是纯粹的统计和数学。如果您的指标和特征是数字的并且可以清楚地量化,那么 R、Matlab、Mathematica 等都是不错的选择。如果您的数据集非常大,您将希望投资于您可以获得的最强大的软件包。

挑选最佳候选公司:简单案例

将业务分配给最佳候选人的问题是一个经典的优化问题。如果变量和性能之间的关系是线性的,那么您就有了一个非常方便的案例。 线性规划技术旨在优化解决这类问题(假设您可以提取关系)。

挑选最佳候选公司:复杂案例

如果性能与特性方程是非线性的,则需要模糊逻辑来找到最佳解决方案。当有很多变量时,这将使用非常非常先进的算法来为业务找到一个非常好的(不一定是最好的)解决方案。根据经验,Mathematica 有一套一流的优化工具(基于遗传算法)用于非线性优化,Matlab 也有用于解决该问题的模糊逻辑/遗传算法。如需更多工具,请查看“全局非线性优化”。

于 2009-06-19T17:58:35.660 回答
0

一种方法是列出您感兴趣的所有特征,例如地理位置、账户规模、价格、交货时间......

然后根据每个特征对每个供应商进行评分,例如 1 到 10。

然后给每个特性一个优先级,也可以是1到10。

此优先级可以是一般的或针对每个作业。

然后,您“简单地”乘以每个所需特征的供应商分数 * 优先级。总分最高的人得到这份工作。

于 2009-06-19T17:55:11.127 回答
0

计算历史数据的方差。这可以用来“预测”你将来会看到什么。如果假设“未来将像过去一样”对您的流程有意义。它相当简单,许多 sql 服务器都提供内置函数来帮助进行计算。

于 2009-06-19T18:21:23.987 回答
0

回归分析是您所需要的,尤其是线性回归

于 2009-06-19T18:29:59.150 回答