# 建模

### 建模概述

数据准备主要是面向模型而准备，当您制定了项目实施方案时，基本已确定分析思路和计划使用的算法。那么完成数据准备后，水到渠成的开始建模。

建模时通常会执行多次迭代。通常，数据挖掘人员会使用默认参数运行多个模型，然后再对这些参数进行微调或回到数据准备阶段以便执行所选模型所需的操作。仅使用一个模型且仅执行一次就能圆满地解答组织的数据挖掘问题，这样的情况几乎不存在。这就是数据挖掘如此有趣的原因，可以使用多种方法来考虑某个已知的问题。

### 选择建模技术

尽管可能已经知道哪种类型的建模方式可以尝试，但现在还无法确定使用哪个模型是最好的。通常，将会基于下列因素确定最适用的模型：

**可用于挖掘的数据类型。**例如，感兴趣的字段是字符型还是数值型？

**数据挖掘目标。**是否能挖掘出令用户感兴趣的购买模式？或者是否需要生成一个得分，例如用于表明会员再次购买的的倾向？

**应用要求。**模型是否准确并且稳定？

### 模型测试设计

一个好的模型不仅要准确更要稳定。为了最终测试模型的优劣，需要提前设计一个测试标准。主要包含两个部分：

-   -   -   描述模型的“优异性”标准：模型的优异性可以通过多种方法度量。对于监督式模型，例如决策树模型和逻辑回归模型，优异性的度量方法通常是估计特定模型的错误率。对于非监督式模型，例如聚类模型，度量方法可以包括易于解释、部署或所需处理时间等标准。
        -   定义将要对其测试这些标准的数据。通常使用分区节点将数据分成训练集和测试集，训练集用于训练模型，测试集用于测试模型。另外，采用交叉验证方法测试模型的稳定性。

记住，模型构建操作是一个迭代的过程。这意味着通常需要测试多个模型的结果才能决定使用和部署哪些模型。

### 构建模型

现在我们可以开始进行训练模型，通常我们对预判出的最好的前三种模型分别进行建模，从三种模型中分别训练出最优的模型。

为了跟踪处理多个模型的过程，请确保记录下每个模型所使用的设置和数据。这可以在与其他人讨论这些结果后者测试模型时提供帮助，并且还可以在需要时 重新跟踪步骤。在模型构建过程的最后阶段，将获得三类将在数据挖掘决策时使用的信息：

-   -   -   参数设置：包括记录的生成最佳结果的参数；
        -   生成的实际模型；
        -   模型结果说明，包括在执行模型并探索其结果时发生的性能和数据问题。

### 评估模型

得到的模型是否有效，不仅要看模型的准确度，更要看模型的稳定性。可以根据之前的测试设计测试模型，以确保我们得到的三个模型都是最优的。同时还要安排测试工程师审核整个建模过程，保证建模的合理性，包括再次确认模型中是否引入了不合理的变量以及字段取值是否失衡。根据我们的经验，如果您建模的准确度达到 95%以上，那基本是错误的或者无效的，商业中的数据几乎不可能包含所有重要的影响因素。比如，定义百货会员是否流失使用的是会员最近一次交易据今的时间间隔，我们定义了一个阀值，也就是会员多久没来算是流失，那么流失字段和该字段存在直接关系，如果建模的过程中引入了该字段，将可能导致模型预测准确度为 100%的现象。还比如，流失字段中不流失会员的比例是多少，如果是 99%，那如果模型全部判为不流失，模型整体的准确度将会是 99%，但是对我们真正关心的对流失客户的预测能力却为 0。