Рубрики
Без рубрики

[Учебное пособие] К-означает кластеризацию с Sklearn в одной строке

Если есть один алгоритм кластеризации, вам нужно знать – независимо от того, являетесь ли вы компьютерным ученым, ученым по данным или эксперт по обучению машин – это алгоритм K-означает. В этом руководстве из моих книг Python One-Listers вы узнаете общую идею и когда и как его использовать в одной строке Python … [Учебник] K-означает кластеризацию с Sklearn в одной строке Подробнее »

Автор оригинала: Chris.

Если есть один алгоритм кластеризации, вам нужно знать – независимо от того, являетесь ли вы компьютерным ученым, ученым по данным или эксперт по обучению машин – это алгоритм K-означает. В этом руководстве из моей книги Python одноклассники , вы узнаете общую идею и когда и как его использовать в одной строке кода Python, используя Sklearn библиотека.

Маркировано против некислых тренировок

Вы можете знать о контролируемом обучении, где Данные тренировки «помечены» , I.e. Мы знаем выходное значение каждого входного значения в тренировках. Но на практике это не всегда так. Что, если у вас есть «неразрешенные» данные? Особенно во многих приложениях аналитики данных нет такой вещи, как «оптимальный выход». Прогноз не является целью здесь – но вы все еще можете сгореть полезные знания из этих неразмерных наборов данных.

Например, предположим, что вы работаете в запуске, который обслуживает различные целевые рынки с различными уровнями дохода и возрастами. Ваш босс говорит вам найти определенное количество целевых «личности», которые лучше всего соответствуют вашим различным целевым рынкам.

Пришло время узнать о том, чтобы «Безспермированное обучение» с Немеченные тренировочные данные Отказ В частности, вы можете использовать методы кластеризации для определения «среднего персонала клиента», который обслуживает ваша компания.

Вот пример:

Визуально вы можете легко увидеть три типа персонажа с различными типами доходов и возрастов. Но как найти эти алгоритмически? Это область алгоритмов кластеризации, таких как широкопопулированный алгоритм K-означает.

Нахождение кластерных центров

Учитывая наборы данных и целое число k, алгоритм k k находят k кластеров данных, такие что разница между центром кластеров K Cluster данных данных в каждом кластере) и данные в кластере K минимальны.

Другими словами, мы можем найти разные личности, запустив алгоритм K-означает на наборах наборах данных:

Кластерные центры (черные точки) очень хорошо соответствуют общим данным. Каждый кластерный центр можно рассматривать как один клиент Persona. Таким образом, у нас есть три идеализированные личности:

  • 20-летний заработок за 2000 долларов,
  • 25-летняя заработка 3000 долларов и
  • 40-летний заработок 4000 долларов.

И великое состоит в том, что алгоритм K-означает, что эти кластерные центры полностью автоматизированы – даже в пространстве большого размера (где для людей было трудно визуально найти персонажа).

В качестве небольшой стороны примечание: алгоритм K-означает «Количество кластерных центров K» в качестве ввода. В этом случае мы используем знания домена и «волшебным образом», определенные k = 3 Отказ Есть Более продвинутые алгоритмы которые находят количество кластерных центров автоматически.

K-означает алгоритм обзор алгоритма

Итак, как работает алгоритм K-означает? В двух словах он выполняет следующую процедуру:

  1. Инициализировать случайные кластерные центры (центроиды).
  2. Повторить до конвергенции
    • Назначьте каждую точку данных на его ближайший кластерный центр.
    • Пересматривайте каждый кластерный центр на центр всех точек данных, назначенных ему.

KMAINS код с использованием Sklearn

Как мы можем сделать все это в одной строке кода? К счастью, библиотека Scikit-Learn в Python уже очень эффективно реализовала алгоритм K-означает.

Итак, вот фрагмент кода один вкладыш, который делает K-означает кластеризацию для вас:

## Dependencies
from sklearn.cluster import KMeans
import numpy as np


## Data (Work (h) / Salary ($))
X = np.array([[35, 7000], [45, 6900], [70, 7100],
              [20, 2000], [25, 2200], [15, 1800]])


## One-liner
kmeans = KMeans(n_clusters=2).fit(X)


## Result & puzzle
cc = kmeans.cluster_centers_
print(cc)

Python Puzzle: Какая вывод этого кода фрагмент?

Попробуйте угадать решение, не понимая каждого синтаксического элемента!

(В следующих абзацах я дам вам результат этого кода головоломки. На мой взгляд, обучение на основе головоломки является одним из лучших способы приобрести основы программирования. Вот почему я написал книгу « Coffee Break Python », чтобы узнать Python быстрее – и соответствовать изучению в любом ежедневном расписании.)

Объяснение кода

В первых строчках мы импортируем модуль KMAINS из Sklearn .Cluster Package. Этот модуль принимает сам кластеризацию. Кроме того, нам нужно импортировать Numpy Библиотека, потому что модуль KMAINS работает на Numpy Armays.

Данные двумерные. Это коррелирует количество рабочих часов с зарплатой некоторых работников. Есть шесть точек данных в этом наборе данных сотрудников:

Цель состоит в том, чтобы найти два кластерных центра, которые подходит для этих данных.

## One-liner
kmeans = KMeans(n_clusters=2).fit(X)

В одноиналке мы явно определяем количество кластерных центров, используя аргумент функции n_clusters Отказ Во-первых, мы создаем новый объект KMAINS, который обрабатывает для нас алгоритм. Мы просто называем методом экземпляра Fit (x) Чтобы запустить алгоритм K-означает на наших входных данных X . Объект KMAINS теперь содержит все результаты. Все, что осталось, это получить результаты от его атрибуты Отказ

cc = kmeans.cluster_centers_
print(cc)

Итак, каковы кластерные центры и какой вывод этого кода-фрагмента?

В графике вы можете видеть, что два кластерных центра (20, 2000) и (50, 7000). Это также результат одноклассника Python.

Python One-Liners Книга

Python Programmemers улучшит свои навыки информатики с этими полезными одноклассниками.

Python One-listers научит вас читать и писать «одноклассники»: краткие заявления полезных функций, упакованных в одну строку кода. Вы узнаете, как систематически распаковать и понимать любую строку кода Python и писать красноречие, мощно сжатый Python, как эксперт.

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

Используйте структуры данных для решения проблем реальных проблем, например, использование булевой индексации для поиска городов с загрязнением выше среднего Используйте Numpy Основы, такие как массив, форма, ось, тип, вещание, расширенная индексация, нарезка, сортировка, поиск, агрегация и статистика Рассчитайте базовую статистику многомерных массивов данных и алгоритмы K-означает для безоговорочного обучения Создайте более усовершенствованные регулярные выражения с помощью группировки и названных групп, отрицательные LookAeads, сбежавшие символы, пробелы, наборы символов (и наборы отрицательных символов) и жадные/негридические операторы Понимать широкий ассортимент темы компьютерных наук, включая анаграммы, палиндромы, сверты, перестановки, факториалы, простые числа, цифры фибоначчи, обфускации, поиск и алгоритмическую сортировку

К концу книги вы узнаете, как писать Python в его самых утонченных, и создавать краткие, красивые куски «Python Art» в простой строке.

Получите свой Python One-Liners сейчас !!

Куда пойти отсюда?

В этой статье вы узнали, как запустить популярный алгоритм K-означает в Python – используя только одну строку кода.

Я знаю, что это может быть трудно понять фрагменты Python Code. Каждый кодер постоянно оспаривается затруднением кода. Не позволяйте никому не сказать вам иначе.

Чтобы сделать обучение Python меньше боли, я создал курс Python Cheat Lists, где я отправлю вам краткое, свежий чит-лист каждую неделю. Присоединяйтесь к моим курсу Python бесплатно!

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.