文档的无监督分类

数据挖掘 分类 聚类 无监督学习
2022-03-11 07:02:26

我正在尝试创建一个分类器,其中用户的“手动”工作较少。对于较少的手动工作,我的意思是不会像机器学习(监督)那样对训练集进行手动标记的初始阶段

我的数据集由不同类的实例组成。它们是为不同客户提供指定产品订单的文件。每个客户都有自己的模板。

例如我得到:

[Client A]
Image
Date: xxx  Order: 
Products:
Table

[Client B]
Date: xxx
Order
Image
Products:
table
Image

现在我正在对每个文档进行分类,检查是否存在由用户手动识别的指定特征(按区域和使用编辑距离)

这些类确实不同(在某些情况下),并且尝试像凝聚聚类这样的无监督分类器,类的拆分非常好。之后,使用TF/ICF之类的度量通常是那些获得更大值的特征(在我的例子中,我使用标记化和规范化的文本作为特征)是在我的手动分类中使用的那些。

我用于停止聚类迭代的标准是不同的(我有不同的配置),例如最大距离或最大聚类数。

之后,我认为当创建集群时,最后的用户将通过在每个集群中找到的最佳 TF/ICF(术语频率,逆集群频率)特征来标记每个集群,以识别类别。之后,集群将像“分类器”一样使用。我知道这种方法会导致分类更差,但这不是问题。

问题是当两个类非常相似时(例如,我得到的类的区别只是客户代码),它们真的很难拆分。

关于如何解决这个问题的任何想法?而且,有一种方法可以让我的算法找出通量中是否存在“新类”?

2个回答

如果每个类都有大量实例,则可以尝试使用基于密度的聚类方法,使用 DBSCAN 等算法。

如果您可以标记至少一些文档,则可以使用半监督学习。通常,在使用 SSL 进行集群时,需要为一些实例对指定“不能链接”和“必须链接”约束,这基本上是对一些实例进行标记。遵循这种方法的一种算法是 HMRF-KMeans(隐马尔可夫随机场 K-Means)。

由于缺乏声誉,我无法发表评论。您是否只使用“凝聚聚类”?

我认为 K-Means 聚类更适合您的使用。您可以使用 k-Means 检测到很少的差异。

如果需要使用“凝聚聚类”,您应该调整差异度量。