有人可以指导我如何在python中使用DBSCAN对Twitter数据进行聚类?我是DBSCAN的新手。另外,如何确定eps值和iloc或loc值。
import numpy as np
import pandas as pd
from sklearn.cluster import DBSCAN
from sklearn.preprocessing import StandardScaler
def clusterEvaluate(cluster):
count_cluster = np.bincount(cluster)
count_cluster = np.argmax(count_cluster)
same_clusters = np.count_nonzero(cluster == count_cluster)/np.size(cluster)
return same_clusters
dataset = np.loadtxt('tweetdata.csv') # not sure if this works
X = StandardScaler().fit_transform(dataset)
y_valid = dataset.iloc[:6].values()
dbscan = DBSCAN(eps= 0.5,min_samples=5,metric='euclidean')
y = dbscan.fit_predict(X)
cluster_labels = np.unique(y)
same_clusters = []
i = 0
for index in cluster_labels:
cluster = y_valid[y == index]
same_clusters.insert((i, clusterEvaluate(cluster)))
答案 0 :(得分:1)
您需要为此选择和适当的数据表示和距离函数。此外,可伸缩性会杀死你。
我认为它不会很好用。除了用不必要的复杂方式计算频繁的单词之外,我还能看到任何可以提供深刻见解的结果。 Twitter数据是一个婊子。消息太短了。像LDA这样的所有好方法都需要更长的文档。