为什么在python 2.7中比3.6更好的性能(轮廓得分)?

时间:2018-11-12 14:16:06

标签: python python-3.x python-2.7 cluster-analysis

我在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    

1 个答案:

答案 0 :(得分:1)

再试一次。仅仅一个样本是不够的。

K均值以随机设置开始,并且可能仅找到局部最优值。

多次运行会看到不同的结果是很普遍的。