Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import pandas as pd
- from sklearn.preprocessing import StandardScaler
- from sklearn.cluster import KMeans
- import seaborn as sns
- import matplotlib.pyplot as plt
- # определим функцию отрисовки графиков попарных признаков для кластеров
- def show_clusters_on_plot(df, x_name, y_name, cluster_name):
- plt.figure(figsize=(10, 10))
- sns.scatterplot(
- df[x_name], df[y_name], hue=df[cluster_name], palette='Paired'
- )
- plt.title('{} vs {}'.format(x_name, y_name))
- plt.show()
- # читаем данные
- travel = pd.read_csv('/datasets/tripadvisor_review_case.csv')
- print(travel.shape)
- # обязательная стандартизация данных перед работой с алгоритмами
- sc = StandardScaler()
- X_sc = sc.fit_transform(travel)
- # задаём модель k_means с числом кластеров 3
- km = KMeans(n_clusters = 3)
- # применяем алгоритм к данным и формируем вектор кластеров:
- # прогнозируем кластеры для наблюдений (алгоритм присваивает им номера от 0 до 2)
- labels = km.fit_predict(X_sc)
- # сохраняем метки кластера в поле нашего датасета
- travel['cluster_km'] = labels
- # выводим статистику по средним значениям наших признаков по кластеру
- print(travel.groupby('cluster_km').mean())
- # отрисуем графики для пары признаков "соки" и "религия"
- show_clusters_on_plot(travel,
- 'Average user feedback on juice bars',
- 'Average user feedback on religious institutions',
- 'cluster_km')
- # отрисуем графики для пары признаков "соки" и "рестораны"
- show_clusters_on_plot(travel,
- 'Average user feedback on juice bars',
- 'Average user feedback on restaurants',
- 'cluster_km')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement