Оценка кластеризации зерна
В предыдущем упражнении вы определили по графику инерции, что оптимальное количество кластеров для данных о зерне равно 3. Действительно, образцы зерна относятся к трём разным сортам: «Кама», «Роза» и «Канадская». В этом упражнении вы разобьёте образцы зерна на три кластера и сравните полученные кластеры с реальными сортами с помощью таблицы сопряжённости.
Массив samples с образцами зерна и список varieties с указанием сорта для каждого образца уже доступны. Библиотека Pandas (pd) и класс KMeans импортированы заранее.
Это упражнение является частью курса
Обучение без учителя на Python
Инструкции к упражнению
- Создайте модель
KMeansс именемmodelи3кластерами. - Используйте метод
.fit_predict()объектаmodel, чтобы обучить модель на данныхsamplesи получить метки кластеров. Метод.fit_predict()эквивалентен последовательному вызову.fit()и.predict(). - Создайте DataFrame
dfс двумя столбцами:'labels'и'varieties', используя соответственноlabelsиvarietiesв качестве значений столбцов. Этот шаг уже выполнен за вас. - Примените функцию
pd.crosstab()кdf['labels']иdf['varieties'], чтобы подсчитать, сколько раз каждый сорт зерна совпадает с каждой меткой кластера. Сохраните результат в переменнуюct. - Нажмите «Отправить ответ», чтобы увидеть таблицу сопряжённости!
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create a KMeans model with 3 clusters: model
model = ____
# Use fit_predict to fit model and obtain cluster labels: labels
labels = ____
# Create a DataFrame with labels and varieties as columns: df
df = pd.DataFrame({'labels': labels, 'varieties': varieties})
# Create crosstab: ct
ct = ____
# Display ct
print(ct)