如何提高DBSCAN的准确率?

时间:2021-05-27 23:11:22

标签: python cluster-analysis dbscan

我有 4 种不同类型的 200 个文档。 200 个文档在一个数据框中存储了文本信息。

我使用此代码创建了一个语料库。

corpus=[]
for i in range(0,len(df_kyc)):
    review=re.sub('[^a-zA-Z]',' ', df_kyc['remove_new_line'][i])
    review=review.lower()
    review=review.split()
    ps=PorterStemmer()
    review=[ps.stem(word) for word in review if not word in set(stopwords.words('English'))]
    review=' '.join(review)
    corpus.append(review)
vectorizer=TfidfVectorizer()
X=vectorizer.fit_transform(corpus)
neigh=NearestNeighbors(n_neighbors=2)
nbrs=neigh.fit(X)
distances,indicies=nbrs.kneighbors(X)

distances_1=np.sort(distances,axis=0)
distances_2=distances_1[:,1]
plt.rcParams['figure.figsize']=[30,20]
plt.plot(distances_2)
def increment(length=100,start=0,increment=0.1):
    x=start
    for i in range(length):
        yield round(x,2)
        x+=increment
plt.yticks([a for a in increment(15)])

MIN_SAMPLES=3
EPS=1.18
model=DBSCAN(eps=EPS,min_samples=MIN_SAMPLES)
y=model.fit_predict(X) 

情节如下。 enter image description here

我使用了 EPS=1.18,但它返回了 3 个不准确的集群。 enter image description here

我不知道如何改进这段代码以使其准确和。有什么建议吗?

谢谢

0 个答案:

没有答案