我的R程序如下:
hcluster <- function(dmatrix) {
imatrix <- NULL
hc <- hclust(dist(dmatrix), method="average")
for(h in sort(unique(hc$height))) {
hc.index <- c(h,as.vector(cutree(hc,h=h)))
imatrix <- cbind(imatrix, hc.index)
}
return(imatrix)
}
dmatrix_file = commandArgs(trailingOnly = TRUE)[1]
print(paste('Reading distance matrix from', dmatrix_file))
dmatrix <- as.matrix(read.csv(dmatrix_file,header=FALSE))
imatrix <- hcluster(dmatrix)
imatrix_file = paste("results",dmatrix_file,sep="-")
print(paste('Wrinting results to', imatrix_file))
write.table(imatrix, file=imatrix_file, sep=",", quote=FALSE, row.names=FALSE, col.names=FALSE)
print('done!')
Run Code Online (Sandbox Code Playgroud)
我的输入是距离矩阵(当然是对称的).当我执行上面的程序时,距离矩阵大于大约数千条记录(几百条没有发生),它给了我错误信息:
Error in cutree(hc, h = h) :
the 'height' component of 'tree' is not sorted
(increasingly); consider applying as.hclust() first
Calls: hcluster -> …Run Code Online (Sandbox Code Playgroud) 所以我使用快速集群和SciPy进行凝聚聚类.我可以做到dendrogram聚类的树形图.我可以fcluster(Z, sqrt(D.max()), 'distance')为我的数据获得一个非常好的聚类.如果我想手动检查树形图中的区域,例如k = 3(簇),然后我想检查k = 6(簇),该怎么办?如何在树形图的特定级别获得聚类?
我看到所有这些函数都有公差,但我不明白如何从容差转换为集群数.我可以通过链接(Z)手动构建聚类,并逐步拼凑聚类,但这对大型数据集来说并不实用.
我想按主题对大量(100K到1M +)的小型互联网文章(推文,博客文章,新闻等)进行分类.为了实现这一目标,我一直在寻找标记的培训数据文档,我可以用它来构建分类器模型.为了使这篇文章最有用,以下是我发现的一些可能的来源:
a)www.freebase.com/internet/website/category?instances=
b)wikipedia-miner.cms.waikato.ac.nz(用于访问维基百科数据的工具包)
c)en.wikipedia.org/wiki/Wikipedia:Database_download
d)wiki.dbpedia.org/About(属于类别的SKOS格式主题关键字)
e)互联网搜索大型文章集,然后进行聚类和手动策划
问题1:是否有其他可提供标签培训文件的互联网资源?给定主题上的关键字集,尤其是加权集也很有用
理想情况下,我想构建一个分类器,该分类器将返回分层类别,并且随着更多兴趣/数据变得可用,可以在以后添加子主题细节.
问题2:是否存在分层结构(也可能是可扩展的)主题建模/分类框架?一个代码示例将特别受欢迎
非常感谢
路透社语料库第1卷(在RCV1-v2上搜索)它是从1990年代后期开始的大约80万路透社文章被人类分类为主题,行业和地区类别
一个学术联盟(LDC)分发各种语料库,包括由纽约时报编制的约1.5M标签文件:http: //catalog.ldc.upenn.edu/LDC2008T19
hierarchical-clustering nltk training-data topic-modeling scikit-learn
我正在寻找具有"基础事实"标签的聚类数据集,用于某些已知的自然聚类,最好具有高维度.
我在这里找到了一些好的候选人(http://cs.joensuu.fi/sipu/datasets/),但只有Glass和Iris数据集有点标签.我还发现了一些生成高斯数据集(SynDECA)的代码.我想要的主要原因是比较一些聚类方法的距离度量.使用外部(外在)评估标准很困难,因为其中许多偏向于欧氏距离; 而且有很多可供选择.
谢谢!
benchmarking cluster-analysis machine-learning hierarchical-clustering dataset
我参加了一些Django poroject,我们使用地理数据(使用GeoDjango).我按照AWS docs中的描述安装了PostGis.
我们在地图上有很多点(标记).我们需要对它们进行聚类.
我找到了一个库anycluster.这个库需要在Postgre数据库上安装名为kmeans-postgresql的PostgreSQL扩展.
但我的数据库位于Amazon RDS上.我无法通过SSH连接到它以安装扩展程序...
有谁知道如何在我的Amazon RDS数据库上安装kmeans-postgresql扩展?
或者你可以告诉我其他聚类方法?
django postgresql hierarchical-clustering k-means amazon-rds
我有四个用户之间的相似度矩阵.我想做一个凝聚聚类.代码是这样的:
lena = np.matrix('1 1 0 0;1 1 0 0;0 0 1 0.2;0 0 0.2 1')
X = np.reshape(lena, (-1, 1))
print("Compute structured hierarchical clustering...")
st = time.time()
n_clusters = 3 # number of regionsle
ward = AgglomerativeClustering(n_clusters=n_clusters,
linkage='complete').fit(X)
print ward
label = np.reshape(ward.labels_, lena.shape)
print("Elapsed time: ", time.time() - st)
print("Number of pixels: ", label.size)
print("Number of clusters: ", np.unique(label).size)
print label
Run Code Online (Sandbox Code Playgroud)
标签的打印结果如下:
[[1 1 0 0]
[1 1 0 0]
[0 0 1 2]
[0 0 2 1]] …Run Code Online (Sandbox Code Playgroud) 我使用我的域文本语料库生成了一个100D word2vec模型,例如合并常用短语(good bye => good_bye).然后我提取了1000个所需单词的向量.
所以我有一个1000 numpy.array像这样:
[[-0.050378,0.855622,1.107467,0.456601,...[100 dimensions],
[-0.040378,0.755622,1.107467,0.456601,...[100 dimensions],
...
...[1000 Vectors]
]
Run Code Online (Sandbox Code Playgroud)
和单词数组如下:
["hello","hi","bye","good_bye"...1000]
Run Code Online (Sandbox Code Playgroud)
我在我的数据上运行了K-Means,我得到的结果很有意义:
X = np.array(words_vectors)
kmeans = KMeans(n_clusters=20, random_state=0).fit(X)
for idx,l in enumerate(kmeans.labels_):
print(l,words[idx])
--- Output ---
0 hello
0 hi
1 bye
1 good_bye
Run Code Online (Sandbox Code Playgroud)
0 =问候1 =告别
但是,有些词语让我觉得层次聚类更适合这项任务.我尝试过使用AgglomerativeClustering,不幸的是......对于这个Python nobee来说,事情变得复杂,我迷路了.
我如何聚类我的向量,所以输出将是一个树形图,或多或少,就像在这个维基页面上找到的那样?

python numpy machine-learning hierarchical-clustering word2vec
使用聚类算法时,您始终必须指定关闭参数。
我目前正在使用 scikit learn 的凝聚聚类,我能看到的唯一关闭参数是集群的数量。
agg_clust = AgglomerativeClustering(n_clusters=N)
y_pred = agg_clust.fit_predict(matrix)
Run Code Online (Sandbox Code Playgroud)
但是我想找到一种算法,您可以在其中指定集群元素内的最大距离,而不是集群数量。因此,该算法将简单地聚集集群,直到达到最大距离。
有什么建议吗?
我想通过它们的字符串键值 ( description)之一对 Javascript 对象进行聚类。我已经尝试了多种解决方案,并希望获得有关如何解决问题的一些指导。
我想要什么:假设我有一个对象数据库。可能有很多(可能有数千个,也可能有数万个)。我需要能够:
categoryId每一个分配一些(代表它们所属的集群)。我还没有尝试解决问题 #2,但这是我尝试解决问题 #1 的方法。
具有 Levenshtein 距离(单链接)的层次聚类- 这里的问题是性能,结果令人满意(我使用了hierarchical-clustering来自 的库npm)但在 150 左右我将不得不等待大约一分钟。不会为数千人工作。
TF-IDF,矢量化 + k-means - 性能很棒。它将轻松通过 5000 个对象。但结果肯定是关闭的(可能是我的实现中的一个错误)。我使用(natural库 fromnpm来计算 TF-IDF 和node-kmeans)。
Bag-of-Words + k-means - 我现在正在尝试实现这个,还没有任何运气。
对于#2,我想过使用朴素贝叶斯(但我还没有尝试过)。
有什么建议?如果对象只是聚集在一起就好了。如果我可以提取组聚类所依据的标签(如从 TF-IDF 中提取),那就更好了。
我有一个相当大的数据集(1841000*32 矩阵),我希望运行分层聚类算法。sklearn.cluster 中的 AgglomerativeClustering 类和 FeatureAgglomeration 类均给出以下错误。
---------------------------------------------------------------------------
MemoryError Traceback (most recent call last)
<ipython-input-10-85ab7b694cf1> in <module>()
1
2
----> 3 mat_red = manifold.SpectralEmbedding(n_components=2).fit_transform(mat)
4 clustering.fit(mat_red,y = None)
~/anaconda3/lib/python3.6/site-packages/sklearn/manifold/spectral_embedding_.py in fit_transform(self, X, y)
525 X_new : array-like, shape (n_samples, n_components)
526 """
--> 527 self.fit(X)
528 return self.embedding_
~/anaconda3/lib/python3.6/site-packages/sklearn/manifold/spectral_embedding_.py in fit(self, X, y)
498 "name or a callable. Got: %s") % self.affinity)
499
--> 500 affinity_matrix = self._get_affinity_matrix(X)
501 self.embedding_ = spectral_embedding(affinity_matrix,
502 n_components=self.n_components,
~/anaconda3/lib/python3.6/site-packages/sklearn/manifold/spectral_embedding_.py in _get_affinity_matrix(self, X, Y)
450 …Run Code Online (Sandbox Code Playgroud) python hierarchical-clustering python-3.x scikit-learn opencv3.0
python ×4
scikit-learn ×4
algorithm ×2
k-means ×2
amazon-rds ×1
benchmarking ×1
dataset ×1
django ×1
nlp ×1
nltk ×1
numpy ×1
opencv3.0 ×1
postgresql ×1
python-3.x ×1
r ×1
scipy ×1
word2vec ×1