我有相当大的数据(1140万条记录和9个变量)。变量由顺序、标称和连续数据类型混合组成。因此,我选择Gower方法来计算相异矩阵来处理混合数据类型。然而,数据的大小太大而无法计算。然后,我发现了另一个有趣的方法,称为CLARA,它使用样本来计算聚类,然后将聚类分配给其他数据点。问题是我找不到合适的度量来计算混合数据类型的距离。换句话说,在clara in cluster package和clara_medoids in ClusterR package中都没有Gower选项(这是我在R中所能找到的所有clara )。
为什么CLARA中没有gower选项?我该怎么办?
我正在尝试对我的数据集应用分层聚类,该数据集由14039个用户向量组成。每个向量有10个特征,其中每个特征基本上是该用户标记的标签的频率。我正在使用Scipy api进行集群。现在我需要计算这14039个用户之间的成对距离,并将距离矩阵传递给链接函数。
import scipy.cluster.hierarchy as sch
Y = sch.distance.pdist( allUserVector,'cosine')
set_printoptions(threshold='nan')
print Y
但是我的程序在计算距离矩阵本身的时候给出了
我尝试对文本数据进行聚类,数据清晰,标记化等。我如何在Kmeans或其他聚类模型中输入相似度矩阵?
from gensim import corpora
from gensim import models
from gensim.models import Word2Vec, WordEmbeddingSimilarityIndex
from gensim.similarities import SoftCosineSimilarity, SparseTermSimilarityMatrix
documents = list(data['clear_response'])
te
如何对时间序列数据进行K-means聚类?当输入数据是一组点时,我知道这是如何工作的,但我不知道如何对具有1XM的时间序列进行聚类,其中M是数据长度。特别是,我不确定如何更新时间序列数据的聚类均值。
我有一组标记的时间序列,我想使用K-means算法来检查我是否会得到类似的标签。我的X矩阵将是N×M,其中N是时间序列的数量,M是上面提到的数据长度。
有人知道怎么做吗?例如,如何修改以使其适用于时间序列数据?此外,除了欧几里德距离之外,我还希望能够使用不同的距离度量。
为了更好地说明我的疑问,下面是我为时间序列数据修改的代码:
% Check if second input is centro
我想通过q-gram距离或简单的"bag距离“或Python中的Levenshtein距离来聚类大约100,000个短字符串。我计划填写一个距离矩阵(100,000选择2个比较),然后使用进行分层聚类。但我还没上路就遇到了一些记忆问题。例如,距离矩阵对于numpy来说太大了。
aa = numpy.zeros((100000, 100000))
ValueError: array is too big.
这看起来是合理的做法吗?或者,在这个任务中,我注定会出现内存问题?谢谢你的帮助。
我有一个距离矩阵,我想在对数据进行聚类时使用该距离矩阵。
我已经阅读了ELKI文档,它指出我可以在扩展AbstractNumberVectorDistanceFunction类时覆盖distance方法。
但是,distance类返回坐标。这很麻烦,因为距离矩阵只填充了距离值,我们使用索引来找到从index x到index y的距离值。以下是文档中的代码:
public class TutorialDistanceFunction extends AbstractNumberVectorDistanceFunction {
@Override
public double distanc