Приложения неконтролируемых моделей машинного обучения

Предположим, вы владеете супермаркетом, который предлагает покупателям карты лояльности. Из этих карт вы получаете демографические данные клиентов. Вы также получаете данные об их расходах, которым вы присваиваете оценку на основе параметров, которые вы определяете на основе поведения клиентов.

Постановка задачи

Вы хотите понять клиентов по их различным атрибутам и сгруппировать их.

Исследовательский анализ данных

There are 200 rows and 5 columns in our dataset
df['Age'].hist();

There are 112 Female customers and 88 Male customers in teh dataset
ax = df['Gender'].value_counts().plot.bar()

df['Spending Score (1-100)'].hist(bins=[20, 40, 60, 80, 100]);

df['Annual Income (k$)'].hist();

df.isnull().sum()
CustomerID                0
Gender                    0
Age                       0
Annual Income (k$)        0
Spending Score (1-100)    0
dtype: int64

Краткое содержание

  • Возраст большинства клиентов от 20 до 40 лет.
  • Среди покупателей больше женщин, чем мужчин (112 и 88 соответственно).
  • В наборе данных нет пропущенных значений.

Посмотрим на тепловую карту

<AxesSubplot:>

Кластеризация

Кластер по двум функциям

Далее мы посмотрим, как эти данные разбросаны, используя приведенную ниже диаграмму рассеяния. После этого мы кластеризуем данные с помощью Kmeans и наносим результаты на график.

4    81
0    39
2    35
1    23
3    22
Name: Label, dtype: int64
df1_clusters.plot.bar();

Кластер по трем функциям

2    79
0    39
1    36
3    23
4    23
Name: Label, dtype: int64
df1_clusters.plot.bar();