如果我有一个稀疏数据集,其中每个数据由一个1000元素的向量描述,该向量的每个元素可以是0或1(有很多0和一些1),您知道任何距离函数可以帮助我对它们进行聚类吗?在这种情况下,像欧几里得距离这样的东西是否方便?我想知道是否有一个简单方便的距离度量可以用于这种情况,以尝试我的数据。
谢谢
谢谢
这个问题没有一个答案。最佳实践取决于领域。
一旦您确定了相似度度量方法,聚类通常通过平均或查找中心点来完成。有关算法示例,请参见以下聚类二进制数据的论文:
有关相似性测量方法的想法,请参见在线“二进制字符串相似性测量工具”。他们提到:Sokal-Michener、Jaccard、Russell-Rao、Hamann、Sorensen、antiDice、Sneath-Sokal、Rodger-Tanimoto、Ochiai、Yule、Anderberg、Kulczynski、Pearson's Phi、Gower2、点积、余弦系数、汉明距离等相似度度量方法。他们还引用了以下论文:
- Luke, B. T.,二进制对象聚类
- Lin, D.,相似性的信息论定义。
- Toit,du S.H.C.; Steyn,A.G.W.; Stumpf,R.H.;图形探索性数据分析;第3章,第77页,1986年;Springer-Verlag。
(我个人喜欢余弦系数。还有KL散度及其Jensen距离等方法。)
请看用于稀疏文本向量的距离函数,如余弦距离,以及用于比较集合的Jaccard距离。
如果它确实是许多0和一些1,您可以尝试对第一个或最后一个1进行聚类 - 参见http://aggregate.org/MAGIC/#Least 最不显著的1位