我在SoF上阅读了很多有关Python 2.7和3.6之间速度差异的信息。但是我的问题更多是关于两个版本之间的性能。
我用于文档聚类:TF-IDF + KMeans和得分轮廓来评估我的聚类的同质性。
通过从Python 3.6切换到Python 2.7,我的轮廓分数提高了 +0.20!
**有人可以解释吗? **谢谢!
代码:
tfidf = TfidfVectorizer(
stop_words=my_stopwords_str,
max_df=0.95,
min_df=5,
token_pattern=r'\w{3,}',
max_features=20)
tfidf.fit(data_final.all_text)
data_vect = tfidf.transform(data_final.all_text)
num_clusters = 15
kmeans = KMeans(n_clusters=num_clusters, init='k-means++',
max_iter=300).fit(data_vect_lsa)
kmeans_predict = KMeans(n_clusters=num_clusters, init='k-means++', max_iter=300).fit_predict(data_vect_lsa)
silhouette_score(data_vect, labels = kmeans_predict, metric='euclidean')
Python 2.7的输出是:
0.58234789374593758
Python 3.6的输出为:
0.37524101598378656
答案 0 :(得分:1)
再试一次。仅仅一个样本是不够的。
K均值以随机设置开始,并且可能仅找到局部最优值。
多次运行会看到不同的结果是很普遍的。