gpt4 book ai didi

machine-learning - scikit-learn:使用 DBSCAN 对文本文档进行聚类

转载 作者:行者123 更新时间:2023-11-30 08:21:33 30 4
gpt4 key购买 nike

我正在尝试使用 scikit-learn 来对文本文档进行聚类。总的来说,我找到了解决办法,但我在具体问题上遇到了问题。我发现的大多数示例都说明了使用 scikit-learn 和 k-means 作为聚类算法进行聚类。在我的设置中采用这些带有 k 均值的示例原则上是有效的。但是,k-means 不适合,因为我不知道簇的数量。从我到目前为止读到的内容来看——如果需要,请在这里纠正我——DBSCAN 或 MeanShift 似乎更适合我的情况。 scikit-learn 网站提供了每种聚类算法的示例。现在的问题是,使用 DBSCAN 和 MeanShift 我都会遇到我无法理解的错误,更不用说解决了。

我的最小代码如下:

docs = []
for item in [database]:
docs.append(item)

vectorizer = TfidfVectorizer(min_df=1)
X = vectorizer.fit_transform(docs)

X = X.todense() # <-- This line was needed to resolve the isse

db = DBSCAN(eps=0.3, min_samples=10).fit(X)
...

(我的文档已被处理,即停用词已被删除,并且已应用 Porter Stemmer。)

当我运行此代码时,在实例化 DBSCAN 并调用 fit() 时出现以下错误:

...
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/dbscan_.py", line 248, in fit
clust = dbscan(X, **self.get_params())
File "/usr/local/lib/python2.7/dist-packages/sklearn/cluster/dbscan_.py", line 86, in dbscan
n = X.shape[0]
IndexError: tuple index out of range

单击 dbscan_.py 中引发错误的行,我注意到以下行

...
X = np.asarray(X)
n = X.shape[0]
...

当我直接在代码中使用这些行进行测试时,我收到相同的错误。我真的不知道 np.asarray(X) 在这里做什么,但在命令 X.shape = () 之后。因此,X.shape[0] 炸弹——之前,X.shape[0] 正确地引用了文档的数量。出于好奇,我从 dbscan_.py 中删除了 X = np.asarray(X)。当我这样做时,某些东西正在大量计算。但几秒钟后,我收到另一个错误:

...
File "/usr/lib/python2.7/dist-packages/scipy/sparse/csr.py", line 214, in extractor
(min_indx,max_indx) = check_bounds(indices,N)
File "/usr/lib/python2.7/dist-packages/scipy/sparse/csr.py", line 198, in check_bounds
max_indx = indices.max()
File "/usr/lib/python2.7/dist-packages/numpy/core/_methods.py", line 17, in _amax
out=out, keepdims=keepdims)
ValueError: zero-size array to reduction operation maximum which has no identity

简而言之,我不知道如何让 DBSCAN 工作,也不知道我可能错过了什么。

最佳答案

看起来支持 DBSCAN 的稀疏表示 as of Jan. 2015

我将 sklearn 升级到 0.16.1,它在文本上对我有用。

关于machine-learning - scikit-learn:使用 DBSCAN 对文本文档进行聚类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25217065/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com