SHARE
TWEET

Untitled

a guest Feb 26th, 2020 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import pandas as pd
  2.  
  3. from sklearn.preprocessing import StandardScaler
  4. from sklearn.cluster import KMeans
  5. import seaborn as sns
  6. import matplotlib.pyplot as plt
  7.  
  8. import warnings
  9. warnings.filterwarnings("ignore")
  10.  
  11. # определим функцию отрисовки графиков попарных признаков для кластеров
  12. def show_clusters_on_plot(df, x_name,y_name, cluster_name):
  13.     plt.figure(figsize = (10,10))
  14.     sns.scatterplot(df[x_name], df[y_name],
  15.            hue = df[cluster_name], palette = 'Paired'
  16.        )
  17.     plt.title('{} vs {}'.format(x_name, y_name))
  18.     plt.show()
  19.  
  20. # читаем данные
  21. travel = pd.read_csv('/datasets/tripadvisor_review_case.csv')
  22. print(travel.shape)
  23. # стандартизируем данные
  24. sc = StandardScaler()
  25. X_sc = sc.fit_transform(travel)
  26.  
  27. # задаём модель k_means с числом кластеров 3
  28. km = KMeans(n_clusters = 3)
  29. # прогнозируем кластеры для наблюдений (алгоритм присваивает им номера от 0 до 4)
  30. labels = km.fit_predict(X_sc)
  31.  
  32. # сохраняем метки кластера в поле нашего датасета
  33. travel['cluster_km'] = labels
  34.  
  35. # выводим статистику по средним значениям наших признаков по кластеру
  36. travel.groupby('cluster_km').mean()
  37.  
  38. # отрисуем графики для пары признаков "соки" и "религия"
  39. show_clusters_on_plot(travel, 'Average user feedback on juice bars', 'Average user feedback on religious institutions', 'cluster_km')
  40.  
  41. # отрисуем графики для пары признаков "соки" и "рестораны"
  42. show_clusters_on_plot(travel, 'Average user feedback on juice bars', 'Average user feedback on restaurants', 'cluster_km')
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top