努力理解 R 中完整的预测模型过程

Strugling to understand complete predictive model process in R

我对这一切还很陌生,我对流程的逻辑有一点心理障碍。我正在尝试使用当前和已经流失的客户的数据库来预测客户流失。到目前为止我有

1) 获取当前客户和已流失客户的完整客户数据库以及客户服务变量等以用于预测。 2)将数据集运行domly 70/30拆分成train和test 3) 使用 R,我训练了一个 运行dom 森林模型来预测,然后使用混淆矩阵与实际状态进行比较。
4) 我 运行 该模型使用测试数据来检查识别流失者的准确性

我现在有点困惑。我现在要做的是获取我们所有的现有客户并预测哪些客户会流失。我是否做错了很多当前客户,我需要预测模型是否已经看到他们出现在训练集中时是否会流失?

我是否应该以某种方式使用不属于我需要对其进行预测的数据集的训练和测试集?

非常感谢您的帮助。

在我看来,您遇到了标准的训练-测试-验证集问题。如果我理解正确的话,您想测试您的模型(随机森林)对您拥有的所有数据的性能。

标准课堂方法确实是您已经做过的:拆分数据集,例如 70% 的训练和 30% test/validation 集,用训练集训练模型并用测试集测试。

测试(并预测所有数据)的更好方法是使用交叉验证来执行分析 (https://en.wikipedia.org/wiki/Cross-validation_(statistics))。交叉验证的一个示例是 10 折交叉验证:将数据分成 10 个相同大小的块,遍历所有块,并在每次迭代中使用剩余的 9 个块来训练模型并测试特定的模型阻止。

最终通过交叉验证可以更全面地了解模型的性能,以及数据库中所有客户的结果。交叉验证减少了由于随机选择测试集而导致的分析错误。

希望对您有所帮助!

据我了解你的问题,我觉得你想知道你是否通过在训练和测试集中使用重叠示例来做正确的事情。您首先需要了解您需要将训练集与测试集分开。由于你的模型参数是根据你的训练集计算出来的,对于测试集中类似的例子,模型会给你正确的预测,所以对于那些常见的训练和测试集例子,你的准确性肯定会受到积极影响,但事实并非如此正确的做法。您的测试集应始终包含以前未见过的示例,以便正确评估算法的性能。 如果您当前的客户(您要在其上测试您的模型)已经在训练集中,您可能希望在测试过程中将他们排除在外。我建议您根据一些唯一标识符(如果存在)(如客户 ID)在训练集客户和当前客户集之间进行检查,并将普通客户排除在新一批看不见的测试示例之外。