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
- import warnings
- warnings.filterwarnings("ignore")
- # определим функцию отрисовки графиков попарных признаков для кластеров
- 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 до 4)
- labels = km.fit_predict(X_sc)
- # сохраняем метки кластера в поле нашего датасета
- travel['cluster_km'] = labels
- # выводим статистику по средним значениям наших признаков по кластеру
- 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