K-means - очень популярный алгоритм кластеризации, и это то, что мы собираемся изучить сегодня.
Кластеризация K-средних - это алгоритм обучения без учителя.
'K' в K-средних - это свободный параметр, в котором перед запуском алгоритма вы должны сообщить алгоритму, какое значение 'K' вы ищете. .
В этой статье сегодня мы собираемся решить конкретный набор данных, в котором у вас есть возраст и доход разных людей. Теперь, объединяя эти наборы данных в разные группы, мы попытаемся выяснить некоторые характеристики этих групп.
А теперь приступим.
Импорт библиотек
Первое, что вам нужно сделать, это импортировать все необходимые библиотеки.
Загрузить данные
Теперь попробуем загрузить данные из файла CSV. Вы должны загрузить или сохранить его в своей локальной системе или на диске.
Здесь read_csv - это метод, который помогает загрузить файл данных. И head () представляет первые 5 строк данных.
После того, как я запустил эту ячейку, вы увидите первые 5 ячеек наборов данных, начиная с 0 до 4.
Нанесите это на диаграмму рассеяния
Поскольку наборы данных достаточно просты, я попытаюсь нанести их на диаграмму рассеяния. Здесь я просто построю график зависимости возраста от дохода.
Вы можете увидеть три кластера. Итак, в данном конкретном случае выбрать «K» довольно просто.
Импорт алгоритма K-средних и Fit and Predict
Итак, давайте укажем наш «K», который здесь равен 3.
Здесь я собираюсь подогнать и спрогнозировать фрейм данных, исключая столбец имени. Поскольку столбец name является строкой и не очень полезен в этом числовом вычислении.
Итак, этот оператор запустил алгоритм K-средних для возраста и дохода. И он рассчитал кластер в соответствии с нашими критериями.
Вы можете увидеть 3 кластера, включая 0, 1 и 2.
Разделить 3 кластера на 3 разных фрейма данных
Я выделил эти три фрейма данных тремя разными цветами: зеленый, красный, черный.
Диаграммы рассеяния выглядят нормально, но я думаю, что есть проблема с зелеными и черными кластерами. Вы можете видеть, что они неправильно сгруппированы.
Вы знаете, почему возникла эта проблема?
Потому что у нас неправильное масштабирование. Диапазон оси X довольно узок, а наша ось Y масштабируется от 40 000 до 160 000.
Итак, если вы не масштабируете свои функции должным образом, вы можете столкнуться с этой проблемой, и поэтому нам нужно выполнить некоторую предварительную обработку и использовать масштабатор min-max. И только тогда мы сможем безупречно запустить наш алгоритм.
Предварительная обработка с использованием скейлера min-max
Итак, у нас есть корректно масштабированные характеристики столбцов возраста и дохода.
Теперь, если вы нанесете их на диаграмму рассеяния, они будут идеально структурированы.
КУДОС… !!! Мы сделали это.
Обучите данные
Теперь следующий шаг - снова использовать алгоритм k-средних для обучения нашего масштабного набора данных.
Теперь будет весело…!
Теперь давайте изобразим эти данные на диаграмме рассеяния.
Теперь вы видите, что у меня очень красивый кластер. Они выглядят очень красиво сформированными. Не правда ли?
Участок локтя
Давайте рассмотрим методы графика локтя. Наборы данных, которые я использовал здесь, просты, но когда вы пытаетесь решить реальные проблемы, вы столкнетесь с набором данных, который будет содержать много данных и функций. И это будет сложно изобразить на диаграмме рассеяния, и это будет просто беспорядочно.
И тогда вам будет интересно, что мне теперь делать ???
Не волнуйся!
Вы можете использовать свой метод построения графика локтя.
Давайте определим наш диапазон K. Допустим, от 1 до 10.
Для K в диапазоне k я просто перебираю от 1 до 9, а затем для каждой итерации я буду создавать новую модель с кластеры = k. Тогда я смогу использовать функцию fit.
Я постараюсь уместить свой фрейм данных, но в моих данных есть столбец имени. И я не хочу использовать эту колонку. Я избегал этой колонки здесь.
Здесь sse означает сумму квадратичной ошибки. В этом случае я буду использовать параметр под названием инерция, который даст вам сумму квадратов ошибок.
Давайте изобразим это на красивую диаграмму.
Вы можете видеть, что моя точка локтя находится в тройке, и вот что произошло. У меня наконец-то 3 кластера.
На данный момент это сделано…!
Теперь вы продолжаете пробовать разные слова и играть с ними. Если у вас есть какие-либо вопросы по этой статье, дайте мне знать в разделе комментариев.