使用机器学习模型(scikit或statsmodels)回答业务问题

时间:2017-05-18 10:59:28

标签: python machine-learning statistics regression data-science

感谢您的帮助。

这感觉就像一个愚蠢的问题,我可能会过于复杂化。一些背景信息 - 我最近刚刚学习了Python中的一些机器学习方法(scikit和一些statsmodels),如线性回归,逻辑回归,KNN等。我可以在pandas数据框中预处理数据并转换分类数据到0和1&。我也可以将它们加载到模型中(比如scikit learn中的逻辑回归)。我知道如何训练和测试它(使用CV等),以及一些微调方法(gridscore等)。但这都是预测新数据结果的范围。我主要专注于学习构建模型以预测新的X值,并测试该模型以确认准确性/精确度。

但是,现在我无法识别并执行其他类型的问题,即回归模型可以回答的步骤,例如:

为什么客户服务电话上个月有所下降? 我们应该使用这种促销模式还是其他模式?

假设我们拥有所有变量/预测变量集,我们如何使用任何受监督的机器学习模型确定这两个问题,或者仅使用statsmodels包中的统计模型。

希望这是有道理的。我当然可以详细介绍一下。

2 个答案:

答案 0 :(得分:0)

  

上个月为什么客户服务电话会停止?

这取决于您必须分析和探索数据的数据类型和功能。其中一个基本的事情是查看功能和目标变量之间的相关性,以检查是否可以识别任何可能与呼叫掉线相关的功能。因此,探索不同的统计数据可能比预测模型更能回答这个问题。

在您开始使用预测模型之前,分析和探索数据始终是一个很好的做法,因为根据您选择的预测模型,通常需要改进数据(缩放,删除异常值,丢失数据等)。

  

我们应该使用此促销模式还是其他模式?

可以根据您为此数据设计的回归或任何其他预测模型来回答此问题。如果您可以提供促销模型的输入功能,这些模型将帮助您预测该功能的销售/结果。

答案 1 :(得分:0)

您的问题可能被视为过于宽泛,因为您提出的问题实际上是"我应该建模什么?"也就是说,我会尝试提出一些关于你提出的问题的想法,以防它被证明是有帮助的。

将您的第一个假设作为样本: "为什么客户服务电话上个月下降?"

首先,这假设您有一种您想要理解的现象(较低的客户服务电话)。在开发任何模型时,您应该确保您提出的问题在理论上可以由模型来回答。在这种情况下,措辞可能是:我们拥有良好信息的哪些因素导致上个月客户服务呼叫减少(与之前的某个时间段相比)。

措辞不尽如人意,但指出了问题:该模型是一种量化潜在问题答案的工具。

此时,您需要了解为什么可以包含或排除模型中的信息。理论是最好的指南,即使是松散的指南。客户来电是什么功能?售出的单位数量?生产质量?清晰的单位提供的说明?此外,其中一些是其他问题的功能:单位数量是一年中的时间,营销,一般销售趋势等的函数。

假设您已经识别并可以捕获您认为与感兴趣的结果相关的功能:客户服务电话。此外,假设您已经存储,清理,处理它们,并准备好数据集并等待。

如上所述,您希望解释您已经看到的结果(通话中断)。你有无数的模型选择;类型/风格的选择完全取决于您想知道的内容。你提出问题的方式,似乎你可能对因果关系感兴趣。这很难做到,因为总有一些变量无法捕获,这可能会影响你捕获(混淆)的内容,但并非不可能。回归模型(线性,逻辑,一般最大可能性,GLM,2SLS等等)通常都很好,完全不需要进行大部分ML中的常规训练/测试步骤。 (虽然,正如我在某处读到的那样 - 引用任何人? - 说,没有预测就没有解释。)从这些模型得到的系数可以告诉你哪些功能与服务调用的增加/减少相关(我不会说"因为这需要一些非常具体的条件。This might be a good starting point for you.

或者,您可能只是想了解我已捕获的那些功能,这是服务呼叫量最具预测性的#34;在这种情况下,您有一个更直接的预测模型案例,你只是在寻找一个非常好的预测模型。当然,这些并不是相互排斥的。如果某些事情是因果关系,那么它在预测模型中往往很重要(当然,因果影响可能很小)。

最终,您应该熟悉系数的解释,并且模型的结果表明与感兴趣的响应变量的关系。这将有助于提供关于每个模型可以对感兴趣的现象说些什么的正确想法。