为呼叫中心模型创建预测(数据挖掘中级教程)

现在您已经了解了关于班次、操作员人数、呼叫和服务等级之间的交互,您将准备创建一些可用于业务分析和规划的预测查询。首先您将在探索模型上创建一些预测来测试某些假设。接下来,您将通过使用逻辑回归模型创建大容量预测。

本课程假定您已经熟悉如何使用预测查询生成器。有关如何使用预测查询生成器的常规信息,请参阅创建 DMX 预测查询

使用神经网络模型创建预测

下面的示例演示如何使用为探索阶段创建的神经网络模型进行单独预测。单独预测是试用不同的值以在模型中查看效果的好办法。在此方案中,如果六个经验丰富的操作员值夜班,您将预测该夜班的服务等级(未指定星期几)。

通过使用神经网络模型创建单独查询

  1. 在 Business Intelligence Development Studio 中,打开包含要使用的模型的解决方案。

  2. 在数据挖掘设计器中,单击**“挖掘模型预测”**选项卡。

  3. 在**“挖掘模型”窗格中单击“选择模型”**。

  4. **“选择挖掘模型”**对话框将显示挖掘结构列表。展开挖掘结构可查看与该结构相关联的挖掘模型列表。

  5. 展开挖掘结构 Call Center Default,选中神经网络模型 Call Center - LR。

  6. 从**“挖掘模型”菜单中选择“单独查询”**。

    将显示**“单独查询输入”**对话框,该对话框中的各列映射到挖掘模型中的各列。

  7. 在**“单独查询输入”**对话框中,单击 Shift 行,然后选择 midnight。

  8. 单击 Lvl 2 Operators 行,键入 6。

  9. 在**“挖掘模型预测”**选项卡的下半部分,单击网格的第一行。

  10. 在**“源”列中,单击向下键,然后选择“预测函数”。在“字段”**列中,选择 PredictHistogram

    此预测函数的可用参数的列表将自动显示在**“条件/参数”**框中。

  11. 将 ServiceGrade 列从**“挖掘模型”窗格中的列列表拖到“条件/参数”**框。

    列的名称自动作为参数插入。可以选择任何可预测属性列以便放入此文本框。

  12. 单击预测查询生成器上角的**“切换到查询结果视图”**按钮。

预期结果包含对于给定这些输入的每个服务等级可能的预测值,以及对每个预测的支持值和概率值。您可以随时返回设计视图,更改输入或添加更多输入。

通过使用逻辑回归模型创建预测

尽管您可以使用神经网络模型创建预测,神经网络模型却更常用于探索复杂关系。如果您已经知道与业务问题相关的属性,您就可以使用逻辑回归模型来预测在某些属性中进行更改的效果。逻辑回归是一种统计方法,常用于基于独立变量中的更改进行预测:例如,它用于财务计分中,以便基于客户人口统计信息来预测客户行为。

在本任务中,您将学习如何创建将用于预测的数据源,然后进行预测来协助回答一些业务问题。

生成用于大容量预测的数据

在本课中,首先您将创建可用于进行大容量预测的源数据的聚合视图,然后将该数据加入到预测查询的挖掘模型中。有多种方式可提供输入数据:例如,您可以从电子表格中导入人员配备级别,或以编程方式提供值。在这里,您将使用数据源视图设计器创建命名查询。该命名查询是一个自定义 T-SQL 语句,为每个班次创建聚合,如最多的操作员数、接收到最少的呼叫数或生成的平均问题数。

生成大容量预测查询的输入数据

  1. 在解决方案资源管理器中,右键单击**“数据源视图”,然后选择“新建数据源视图”**。

  2. 在数据源视图向导中,选择 Adventure Works DW2008R2 作为数据源,然后单击**“下一步”**。

  3. 在**“选择表和视图”页上,单击“下一步”**但不选择任何表。

  4. 在**“完成向导”**页中,键入名称 Shifts。

    该名称将作为数据源视图的名称显示在解决方案资源管理器中。

  5. 右键单击空设计窗格,然后选择**“新建命名查询”**。

  6. 在**“创建命名查询”**对话框中,对名称键入 Shifts for Call Center。

    该名称将仅作为命名查询的名称显示在数据源视图设计器中。

  7. 将以下查询语句粘贴到对话框下半部分的 SQL 文本窗格中。

    SELECT DISTINCT WageType, Shift, 
    AVG(Orders) as AvgOrders, MIN(Orders) as MinOrders, MAX(Orders) as MaxOrders,
    AVG(Calls) as AvgCalls, MIN(Calls) as MinCalls, MAX(Calls) as MaxCalls,
    AVG(LevelTwoOperators) as AvgOperators, MIN(LevelTwoOperators) as MinOperators, MAX(LevelTwoOperators) as MaxOperators,
    AVG(Issues) as AvgIssues, MIN(Issues) as MinIssues, MAX(Issues) as MaxIssues
    FROM dbo.FactCallCenter
    GROUP BY Shift, WageType
    
  8. 单击“确定”。.

  9. 在设计窗格中,右键单击表 Shifts for Call Center,然后选择**“浏览数据”**以预览 T-SQL 查询返回的数据。

  10. 右键单击选项卡 Shifts.dsv (Design),再单击**“保存”**以保存新数据源视图定义。

预测每个班次的服务标准

现在您已经为每个班次生成了一些值,您将使用那些值作为您生成的逻辑回归模型输入,来生成多个预测。

使用新 DSV 作为预测查询输入

  1. 在数据挖掘设计器中,单击**“挖掘模型预测”**选项卡。

  2. 在**“挖掘模型”窗格中单击“选择模型”**,从可用模型列表中选择 Call Cetner – LR。

  3. 从**“挖掘模型”菜单中取消选中“单独查询”选项。将警告您单独查询输入将丢失。单击“确定”**。

    **“单独查询输入”对话框将替换为“选择输入表”**对话框。

  4. 单击**“选择事例表”**。

  5. 在**“选择表”对话框中,从数据源列表中选择 Shifts。在“表/视图名称”列表中,选择 Shifts for Call Center(可能会自动选择),然后单击“确定”**。

    更新**“挖掘模型预测”**设计图面可显示 Analysis Services 基于输入数据和模型中列的名称和数据类型创建的映射。

  6. 右键单击其中一条联接线,然后选择**“修改连接”**。

    在此对话框中,您可以确切看到映射了哪些列以及未映射哪些列。该挖掘模型包含 Calls 列、Orders 列、Issues 列和 LvlTwoOperators 列,这些列可以映射到您基于源数据中上述列创建的任何聚合中。在此情况下,您将映射到平均值。

  7. 单击 LevelTwoOperators 旁边的空单元,然后选择 Shifts for Call Center.AvgOperators

  8. 单击 Calls 旁边的空单元,然后选择 Shifts for Call Center.AvgCalls,然后单击**“确定”**。

创建每个班次的预测

  1. 在**“预测查询生成器”下半部分的网格中,单击“源”**下的空单元,然后选择 Shifts for Call Center。

  2. 在**“字段”**下的空单元中选择 Shift。

  3. 单击网格中的下一个空行并重复实数过程来为 WageType 添加另一行。

  4. 单击网格中的下一个空行。在**“源”列中,选择“预测函数”。在“字段”列中,选择“预测”**。

  5. 从**“挖掘模型”窗格中将 ServiceGrade 列向下拖动到网格中,并将其放到“条件/参数”单元中。在“别名”**字段中,键入 Predicted Service Grade。

  6. 单击网格中的下一个空行。在**“源”列中,选择“预测函数”。在“字段”**列中,选择 PredictProbability

  7. 从**“挖掘模型”窗格中将 ServiceGrade 列向下拖动到网格中,并将其放到“条件/参数”单元中。在“别名”**字段中,键入 Probability。

  8. 单击**“切换到查询结果视图”**可查看预测。

下表显示了每个班次的示例结果。

班次

WageType

预测服务等级

概率

AM

假日

0.165

0.377520666

midnight

假日

0.105

0.364105573

PM1

假日

0.165

0.40056055

PM2

假日

0.165

0.338532973

AM

工作日

0.165

0.370847617

midnight

工作日

0.08

0.352999173

PM1

工作日

0.165

0.317419177

PM2

工作日

0.105

0.311672027

预测呼叫时间对服务等级的影响

您为每个班次生成了一些值,并将这些值用作逻辑回归模型的输入。但是,假定业务目标是将挂断率保持在 0.00-0.05 的范围内,但结果并不令人满意。

因此,根据原始模型(该模型显示了响应时间对服务等级的巨大影响),业务团队决定运行一些预测,评估缩短响应呼叫的平均时间是否会提高服务等级。例如,如果您将呼叫响应时间缩减到当前响应时间的 90%,甚至 80%,会出现什么情况?

创建计算每个班次平均响应时间的数据源视图 (DSV) 很容易。还可以轻松添加包含表示目标值的时间的列。然后可以将该 DSV 用作模型输入。

下表显示将三个不同响应时间用作预测查询的输入时该预测查询的结果。该查询还返回预测值的概率,以便您可以评估缩短响应时间将影响服务等级的可能性。

在下表中,第一组数值表示预测的服务等级,第二组数值(在括号内)表示该预测值的概率。从这些结果中可以得出结论,将响应时间减少到 90% 还是值得尝试。

班次

WageType

班次的平均响应时间

减少 90% 的响应时间

减少 80% 的响应时间

AM

假日

0.165 (0.366079388)

0.05 (0.457470875)

0.05 (0.610514425)

AM

工作日

0.05 (0.341218694)

0.05 (0.475767776)

0.05 (0.60083244)

午夜

假日

0.165 (0.337801273)

0.05 (0.413774655)

0.05 (0.545764101)

午夜

工作日

0.05 (0.378241537)

0.05 (0.471615415)

0.05 (0.545614362)

PM1

假日

0.165 (0.457871243)

0.165 (0.376892925)

0.05 (0.359440286)

PM1

工作日

0.08 (0.299182047)

0.08 (0.363761441)

0.08 (0.40686473)

PM2

假日

0.105 (0.325921785)

0.05 (0.392121793)

0.05 (0.521558758)

PM2

工作日

0.105 (0.436051591)

0.105 (0.342589832)

0.05 (Y)

除了通过数据源视图提供输入值之外(如此处所示),您还可以通过编程方式计算输入并将其提供给模型。通过循环访问所有可能的值,您可以找到在保证每个班次目标服务级别的前提下,响应时间最小减少量。

可以在此模型上创建多种其他预测查询。例如,您可以预测要达到某服务级别或要响应一定数目的传入呼叫所需的操作员人数。因为您可以在逻辑回归模型中包括多个输出,所以很容易试用不同的独立变量和结果,而无需创建许多单独的模型。

备注

Excel 2007 数据挖掘外接程序提供的逻辑回归向导很容易回答一些复杂问题,如针对一个特定班次,要将服务等级提高到目标级别,需要多少名二级操作员。数据挖掘外接程序是免费下载的,并包含基于神经网络和/或逻辑回归算法的向导。有关更多信息,请参见下列链接:

结语

您已经学习了创建、自定义和解释基于 Microsoft 神经网络算法和 Microsoft 逻辑回归算法的挖掘模型。这些模型类型很精细,允许在分析中使用几乎无限种变化,因此会很复杂并难于掌握。数据源视图设计器中所提供的工具(如基于 Excel 的图表和数据透视表)支持算法检测到的最强趋势,并有助于您理解所发现的趋势。但是,若要充分理解模型的精髓,您最好探查模型提供的分析并在一定程度上审查您的数据,在自定义挖掘模型查看器和其他工具之间来回查看。这样做之后,您才能充分理解数据中的趋势。