首页 > 解决方案 > 使用 K-means 聚类文本数据中的聚类 ID 作为监督学习模型的特征是不是一个坏主意?

问题描述

我正在构建一个模型,该模型将预测产品流经管道的交货时间。

我有很多不同的特性,一个是包含一些关于产品用途的单词的字符串(通常是缩写、应用程序的名称等)。我以前在做特征工程时根本没有使用过这个领域。

我在想最好对这些数据进行某种类型的聚类,然后使用聚类 ID 作为我的模型的特征,也许提前期与该字段中存在的信息类型相关。

这是我的思路)

1)清理和标记文本。

2) TF-IDF

3) 聚类

但仔细想想,这是不是一个坏主意?因为聚类是基于旧数据的,如果在新数据中引入新词,聚类算法将无法捕捉到,现在可能应该对数据进行不同的聚类。这是否意味着每当我想预测新数据点时,我都必须重新训练整个模型(k-means 模型,然后是监督模型)?有没有这方面的最佳实践?

是否有更好的方法来查找文本数据的聚类以用作监督模型中的特征?

标签: machine-learningnlpcluster-analysissupervised-learningfeature-engineering

解决方案


我理解首先使用无监督聚类算法亲自查看找到了哪些聚类的冲动。当然,如果这种方式对您的任务有帮助,您可以尝试一下。

但是由于您已经标记了数据,因此您可以在没有中间聚类的情况下传递产品描述。然后,您的监督算法将自行学习此功能是否以及如何帮助您的任务(当然需要进行预处理,例如删除停用词、清理、标记化和特征提取)。

根据您的文本描述,我还可以想象一些简单的序列嵌入可以用作特征提取。嵌入是例如 300 维的向量,它以一种方式描述单词,hp office printer并且canon ink jet应该彼此接近,但nice leatherbag应该远离短语。例如fasText-Word-Embeddings已经用英语训练过。要获得一个序列的单个嵌入,hp office printer可以采用三个向量的平均向量(有更多方法可以获取整个序列的嵌入,例如 doc2vec)。

但最终你需要运行测试来选择你的特性和方法!


推荐阅读