Определение оптимального числа кластеров
В этом упражнении вы используете метод «локтя», чтобы найти оптимальное число кластеров — то значение, при котором уменьшение суммы квадратов ошибок становится незначительным. Это важный шаг: он позволяет получить математическую оценку числа кластеров, с которой можно начать тестирование. Вы переберёте несколько значений k и для каждого из них запустите алгоритм KMeans, а затем построите график зависимости ошибок от k, чтобы найти «локоть» — точку, в которой снижение ошибок замедляется.
Модуль KMeans загружен из sklearn.cluster, библиотека seaborn — как sns, а модуль matplotlib.pyplot — как plt. Также загружен масштабированный набор данных wholesale_scaled_df в виде pandas DataFrame.
Это упражнение является частью курса
Машинное обучение для маркетинга на Python
Инструкции к упражнению
- Создайте пустой словарь
sse. - Обучите алгоритм
KMeansдля значений k от 1 до 11 и сохраните ошибки в словареsse. - Добавьте заголовок к графику.
- Постройте точечный график, где по оси X отложены ключи, а по оси Y — значения, и отобразите его.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create empty sse dictionary
sse = {}
# Fit KMeans algorithm on k values between 1 and 11
for k in ___(1, 11):
kmeans = ___(n_clusters=___, random_state=333)
kmeans.___(wholesale_scaled_df)
sse[k] = kmeans.inertia_
# Add the title to the plot
plt.___('Elbow criterion method chart')
# Create and display a scatter plot
sns.pointplot(x=list(sse.___()), y=list(sse.___()))
plt.___()