美好的一天,我是数据科学的新手,所以我对此没有信心。为了提出这个问题,我将描述我的数据和方法。
数据
我不想分享具体的数据示例,因为我想尝试保持匿名。我有 2016 年到 2019 年之间事件的数据。每个事件都有大约 14 个特征(分类和数字)以及成功或失败的二进制标签。这些中的每一个都通过不同的转换器(规范化和单热编码)运行。
方法
我感兴趣的是知道事件成功的可能性有多大(不一定预测它们是否会成功)。
我尝试了训练/测试拆分,以找到最有效的算法。我对网格搜索中的数据进行了分层 k 折交叉验证,以调整超参数,并将logloss其用作我选择的度量。我在 Python 中实现这个,所以 Scikit-Learn 作为我的选择工具。我确定的算法是GradientBoostingClassifier.
问题
我现在感兴趣的是,当我审视 2020 年的事件时,我很好奇它们成功的可能性有多大。当我查看 2020 年的数据时,我拥有相同的 14 个特征(以相同的方式对其进行转换),并且我立即知道它们是成功还是失败。所以预测成功/失败并不有趣,也不是我想做的事。我可以使用我经过训练的模型轻松地在 2020 年的数据上生成概率,其中predict_proba包含sklearn.
问题
现在我的伙伴希望我将这个模型应用到 2016-2019 年的相同训练数据上。最初,这感觉像是一个很大的禁忌。你永远不会预测你自己的训练数据,因为它会有很大的偏差。但我不是在预测。这些感觉更像是一个传统的统计描述性问题,我在其中查看已知数据的性质并查看其行为方式。
再说一次,我对知道/预测某件事是否会成功或失败并不感兴趣(我们立即知道这一点)。我更感兴趣的是知道它是否成功(或失败)以及它这样做的可能性有多大。在这个问题中,有 5% 的机会成功与有 40% 的机会成功相比更有趣。
因此,根据标题,我的问题是,如果我的兴趣不是预测未来,而是评估成功与成功的可能性(并且仍然会产生有用的信息),您能否将经过训练的算法/模型应用于其自己的训练数据?