如何在没有标签的情况下将特征分为两类?

数据挖掘 机器学习 数据挖掘 nlp
2022-03-01 14:37:06

我有一个包含近 200 个特征的大数据集。但是,我没有这些数据的类别标签。我想根据这些特征将这些数据分为两类。我知道,当我们没有类标签时,我们必须使用一些聚类方法。但是,由于我没有任何标签,我只是想知道如何衡量模型的准确性。

请让我知道我应该遵循的最合适的方法?

如果需要,我很乐意提供有关我的功能集的更多详细信息 :)

3个回答

如您所知,聚类是无监督学习算法。由于您不知道集群的数量,因此很难找到可能的最佳分离(集群的数量)。有一篇关于验证聚类技术的非常好的论文发表。本文定义了 3 个标准来验证您的集群。你可以看看那个。

此外,下面的链接为您提供了一些 R 中用于集群验证的代码。如果你愿意,你也可以试试这个——

http://www.sthda.com/english/articles/29-cluster-validation-essentials/97-cluster-validation-statistics-must-know-methods/

你必须使用无监督学习

之后,为了测量模型的准确性,您应该使用集群质量 内在外在指标。计算每个集群中数据的相似度(内在度量),以及不同集群中数据之间的相异度(外在度量)。一个好的聚类会抛出在每个聚类中具有很大相似性而在聚类之间具有很大差异的数据。

应用没有标签的机器学习称为无监督学习正如您所指出的,这些方法肯定比监督学习更难训练和评估。我会警告说,200 个特征是相当多的,你拥有的特征越多,维度就越高,因此复杂度就越高。无监督学习技术不太适合高度复杂的数据。

通常,无监督学习假设您的数据被分成个单独的类。每个都有不同的分布。您将选择的模型将尝试估计描述每个类的分布参数。kk

你可以做些什么来衡量你的模型的适合度您可以尝试在集群内实例的相似性和不同集群中实例之间的差异之间找到适当的平衡。簇内点之间的距离(簇内距离)应该最小化。而不同集群中的实例之间的距离应该最大化。