如何使用 ML 管道中的新数据点和类测试/训练实时数据模型

数据挖掘 机器学习 分类 k-均值 数据科学模型 python-3.x
2022-03-03 17:12:30

首先,对于文本分类问题,如果我已经在 2 个类上训练了模型并且它给出了很好的准确性。现在,当我实时使用模型时,有一个来自完全不同的业务团队的全新课程,我需要使用经过训练的模型并测试这些数据。在这里,显然模型会产生更差的结果,而且预处理或任何其他数据清理可能会大不相同。所以,问题是 - 唯一可能的方法是再次重新训练模型吗?

其次,在细分问题中,方法是使用 K-Means 聚类和分组客户。在实时环境中,我们如何处理新数据点?我们如何知道数据点属于哪个组?因为模型已正确标准化/标准化,然后进行了拟合。对于新的数据点,不能指望同样的情况。我们如何处理这个?

1个回答

在这两种情况下,您都需要知道已经训练好的模型不是写在石头上的。特别是第二个问题“需要”改变模型。

更详细地说,您通常在谈论在线学习许多机器学习算法都有在线版本。例如,在这里,您会看到第二个问题的 K-means 在线版本。但总的来说,在线学习只不过是使模型适应数据一个接一个样本的情况(就像你的问题一样)。因此,对于基本用法,您可以简单地以常规方式分别调整您的模型。这不能完全在线,但有时间间隔,您可以使用尚未分配给任何集群的新数据点重新训练模型。对于完全在线的算法,您可以参考上面的链接并开始研究。

对于第一个问题,我有一个元问题。你怎么知道你有一个全新的课本?所以首先你需要检测到变化,然后做出相应的反应。为了检测新类的存在,我建议查看 ML 算法的 logit。例如,如果它是一种概率方法,您可以查看分配给任何当前类的概率,并说是否全部小于阈值,并且根据当前词汇表的新文档的词汇表外单词的数量是否高于阈值,我创建了一个新类。不是最先进的,但对于基本用法,我认为它会起作用。如果需要进行大的更改,则与以非常在线的方式进行预处理没有太大关系。根据类,预处理应该是简单和通用的或非常具体的。第一个不需要更改,第二个需要来自新类的一堆样本来确定。