【发布时间】:2019-04-15 06:49:41
【问题描述】:
我在 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
【问题讨论】:
-
如果没有更多细节(最好包括代码),很难回答这个问题。
-
感谢您的建议,我编辑我的帖子!
-
TfidfVectorizer和KMeans来自哪个库?一般来说,要寻找的东西可能是除法——除法运算符/的行为在 Python3 中整数从下限变为真除法,如果代码中某处有两个整数的隐藏除法,这可能解释了数值差异 -
很可能,这取决于您使用的库。什么版本?另一件事,尝试显式设置随机种子。
标签: python python-3.x python-2.7 cluster-analysis