K-средства и квантование изображения [Часть 1]

Я случайно обсудил с моим коллегой университет, который он окончил, и я понял, что есть некоторые университеты, которые на самом деле используют систему выставления оценок, при которой студентам выставляются оценки на основе текущего распределения оценок студентов. не было установленной пороговой отметки для Отличия, Кредитоспособности, Пройдено или Неудачно. Это означает, что для того, чтобы получить отличия по всему университету, вам просто нужно было набрать больше баллов, чем у всех других студентов (или просто саботировать их усилия 😁).

Итак, давайте предположим, что у нас есть набор из 10 студентов, где их оценки были [1, 2, 3, 3, 4, 5, 6, 7, 7, 9]. Проблема здесь в том, как распределить студентов по четырем категориям: отличия, зачетные баллы, успешные и неуспешные.

Решение довольно простое, правда ?:

  • Отличие: [7, 7, 9]
  • Кредит: [5, 6]
  • Пройдено: [3, 3, 4]
  • Ошибка: [1, 2]

Но как решить эту проблему, когда около 100 учеников с разными оценками. Здесь нам на помощь приходит K Means. Но сначала предыстория того, что такое K Means.

Прежде чем мы поговорим о K-средних, не забудьте оставить один или несколько 👏 👏 для этой истории, особенно если вам нужна такая система оценок в вашей школе 🙂.

Что такое K-средства?

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

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

Как работает K-средство?

Он работает путем вычисления набора значений «K» (эти значения называются средними), которые будут использоваться для группировки каждого элемента в соответствующий кластер. Таким образом, «K» может быть любым целым числом и представляет количество групп или кластеров, которые мы ищем в списке элементов.

Пошаговый расчет K средних.

Итак, теперь мы собираемся применить K-средства для решения нашей проблемы классификации списка учащихся на отличия, зачетные баллы, успешные или неуспешные.

1. Определите необходимое количество кластеров - значение K.

В нашем случае здесь нам нужно четыре кластера (различие, кредит, успешный и неудачный). Итак, наша «К» равна 4.

2. Выберите произвольные точки «K» в диапазоне элементов в списке.

Следующее, что мы делаем, это выбираем 4 произвольные точки из кластера. С этого момента я буду называть эти точки центрами.

Итак, для наших списков оценок мы выбираем [1, 4, 5, 9] в качестве наших 4 центров.

Обратите внимание, что выбранные точки не обязательно распределять равномерно, их можно выбирать произвольно.

3. Рассчитайте расстояния от всех элементов до каждого центра «K».

Для каждого из центров мы вычисляем расстояние до всех точек.

Это даст результат:

  • [0, 1, 4, 4, 9, 6, 25, 36, 36, 64] для первого центра [1],
  • [9, 4, 1, 1, 0, 1, 4, 9, 9, 25] для второго центра [4],
  • [16, 9, 4, 4, 1, 0, 1, 4, 4, 16] для третьего центра [5], и
  • [64, 49, 36, 36, 25, 16, 9, 4, 4, 0] для четвертого центра [9].

ПРИМЕЧАНИЕ, что используемое расстояние представляет собой сумму квадратов разницы между центрами каждой точки. Это делается путем возведения в квадрат разницы между точкой и центром. например, для второго класса [2] и первого центра [1] расстояние составляет (2 - 1) ^ 2 = 1² = 1.

4. Классифицируйте каждый элемент по центру с кратчайшим расстоянием.

Таким образом, из результатов расстояний выше мы видим, что первый элемент находится ближе к центру [1], второй элемент также ближе к центру [1], но третий элемент ближе к центру [4].

Таким образом, на основе этих результатов расстояния мы можем классифицировать каждую ступень в списке по центрам, как показано ниже:

  • центр [1] - [1, 2]
  • центр [4] - [3, 3, 4]
  • центр [5] - [5, 6, 7, 7]
  • центр [9] - [9]

Для справки вот начальные оценки: [1, 2, 3, 3, 4, 5, 6, 7, 7, 9].

Итак, у вас есть все, что нужно для расчета кластеров «K» с использованием «K» -средств.

Основная цель K-средних - (минимальное внутрикластерное расстояние)

Всем ботанам, читающим этот пост, прежде чем вы начнете печатать. Позвольте мне закончить.

Основная цель K-средних - создать кластеры или, скорее, группы из списка элементов таким образом, чтобы элементы в группах фактически были наиболее близки друг к другу.

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

Применение K-средних

K-средства (и, как правило, алгоритмы кластеризации) могут применяться в разных контекстах. Некоторые из них включают:

  • Сегментация пользователей: как уже проиллюстрировано в приведенном выше примере, с помощью кластеризации можно легко сегментировать пользователей на основе их поведения или определенных атрибутов.
  • Квантование изображения: квантование изображения - это метод обработки изображения, который используется для сжатия изображения.
  • Поисковые системы: поисковые системы пытаются сгруппировать похожие объекты в один кластер, а разнородные объекты далеко друг от друга, используя кластеризацию.

Я попытался объяснить, что такое K Means и его полезность, в этом посте как можно проще, и я надеюсь, что вы смогли кое-что узнать. Во второй части этого поста мы рассмотрим практический пример применения кластеризации K-средств для выполнения квантования изображений с использованием Javascript / Java / Python или любого из ваших любимых языков программирования. Дайте мне знать, на каком языке программирования вы хотите, чтобы этот пост был написан в комментариях ниже.

Не забудьте поставить этому сообщению 👏 и поделиться им с друзьями.

ОБНОВЛЕНИЕ: вторую часть этого сообщения можно найти здесь. ‹***

Особая благодарность Wumi Oyediran и Oyewale Ademola за помощь в редактировании этого сообщения.