我有一堆句子,我想使用 scikit-learn 谱聚类对它们进行聚类。我已经运行了代码并没有问题地得到结果。但是,每次我运行它时,我都会得到不同的结果。我知道这是启动的问题,但我不知道如何解决它。这是我在句子上运行的代码的一部分:
vectorizer = TfidfVectorizer(norm='l2',sublinear_tf=True,tokenizer=tokenize,stop_words='english',charset_error="ignore",ngram_range=(1, 5),min_df=1)
X = vectorizer.fit_transform(data)
# connectivity matrix for structured Ward
connectivity = kneighbors_graph(X, n_neighbors=5)
# make connectivity symmetric
connectivity = 0.5 * (connectivity + connectivity.T)
distances = euclidean_distances(X)
spectral = cluster.SpectralClustering(n_clusters=number_of_k,eigen_solver='arpack',affinity="nearest_neighbors",assign_labels="discretize")
spectral.fit(X)
数据是句子的列表。每次代码运行时,我的聚类结果都会有所不同。如何使用光谱聚类获得一致的结果。我对 Kmean 也有同样的问题。这是我的 Kmean 代码:
vectorizer = TfidfVectorizer(sublinear_tf=True,stop_words='english',charset_error="ignore")
X_data = vectorizer.fit_transform(data)
km = KMeans(n_clusters=number_of_k, init='k-means++', max_iter=100, n_init=1,verbose=0)
km.fit(X_data)
感谢您的帮助。