почему лучшая производительность (силуэт) в python 2.7, чем 3.6? - PullRequest
0 голосов
/ 12 ноября 2018

Я много читал на 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 голосов
/ 12 ноября 2018

Попробуйте еще раз.Одной выборки недостаточно.

K-означает, начинается со случайной установки и может найти только локальный оптимум.

Довольно часто можно увидеть разные результаты при многократном запуске.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...