使用离散变量和连续变量对数据集进行聚类


33

我有一个数据集X,它有10个维度,其中4个是离散值。实际上,这四个离散变量是有序的,即较高的值表示较高/更好的语义。

这些离散变量中的2个是分类的,对于每个这些变量,例如11到12的距离与5到6的距离是不相同的。虽然较高的变量值实际上意味着较高,但比例尺是不一定是线性的(实际上,它并没有真正定义)。

我的问题是:

  • 将通用的聚类算法(例如K-Means然后是高斯混合(GMM))应用于包含离散变量和连续变量的数据集,这是一个好主意吗?

如果不:

  • 我应该删除离散变量并只关注连续变量吗?
  • 我是否应该更好地离散化连续数据并为离散数据使用聚类算法?

3
您需要找到一个好的距离度量(通常是群集中最困难的任务):如果您可以找到一个能够正确,准确地描述您的数据项有(或没有)相似的距离度量,那么您应该不会有任何问题。
安德鲁

谈到这两个分类变量,您实际上将它们描述为序数。现在,其余2个“普通”变量又如何呢?它们与那些有何不同?
ttnphns 2012年

它们也是离散的,但它们都具有有意义的距离函数,即它们是基于间隔的(如果我不搞乱基于间隔的定义)。
ptikobj

Answers:



7

过去,我不得不处理这种问题,我认为可能有两种有趣的方法:

  • 连续化:使用整数序列转换符号属性。有几种方法可以完成此操作,本文将介绍所有方法。您可以尝试NBF,VDM和MDV算法。

  • 离散化:将连续属性转换为符号值。同样,许多算法,并在此良好的演讲将是这篇文章。我相信最常用的方法是Holte的1R,但最好的确定方法是对照EWD,EFD,ID,LD或NDD等算法查看ROC曲线。

一旦将所有要素都放在同一空间中,它将成为常见的群集问题。

在连续化还是离散化之间进行选择取决于您的数据集和功能的外观,因此很难说,但我建议您阅读我提供给您的关于该主题的文章。


4

K-means显然没有任何意义,因为它计算均值(无意义)。GMM也是如此。

您可能要尝试使用具有适当距离函数的基于距离的聚类算法,例如DBSCAN。

主要的挑战是找到距离函数!

尽管您可以将不同的距离函数放入k均值,但它仍将计算平均值,这可能没有多大意义(并且可能会使离散值的距离函数陷入混乱)。

无论如何,首先要专注于定义什么是“相似”。然后用这个定义类似集群!


2

如果您num_of_samples x num_of_samples愿意使用size的距离矩阵,也可以使用random forests

单击此处以标题为的参考文件Unsupervised learning with random forest predictors

这个想法是通过shuffling原始数据集中的值创建一个综合数据集,并训练一个分类器来将两者分开。在分类期间,您会得到一个inter-sample distance matrix,可以在上面测试您喜欢的聚类算法。


-2

将采用的混合方法:1)使用分类技术(C4.5决策树)将数据集分为2类。2)完成后,保留分类变量并继续使用连续变量进行聚类。


我听不懂你的建议。哪两个课程,对您有什么帮助?
KarthikS 2015年

我认为Swapnil Soni需要说的是,一旦我们使用分类技术将其分为两类。然后,我们可以将分类输出的标签用作二进制变量。因此,不是所有分类变量,而是指示性二进制变量,然后您的聚类算法可以继续处理数据(由所有连续加1个二进制变量组成)。我的解释可能是错误的。
Tusharshar

很好!
Swapnil Soni 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.