K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

K-медіанна кластеризація і асиметричне вимірювання відстаней

Як правило, стандартної кластеризації по k-середніх евклідова відстань буває цілком достатньо, але тут ми зіткнулися з невеликими проблемами, які часто зустрічаються при кластеризації даних, що мають великий розкид (роздрібна чи це торгівля, класифікація чи текстів чи біоінформатика).

Використання k-медіанної кластеризації

Перша очевидна проблема полягає в тому, що ваші кластерні центри виражені десятими частками від одиниці, при тому, що вектор угод кожного покупця - точний нуль або одиниця. Що насправді означає 0,113 для угоди? Я хочу, щоб кластерні центри висловлювали або вчинення правочину, або її відсутність!

Якщо трохи змінити алгоритм кластеризації, щоб він використовував тільки величини векторів угод покупців, то він вже буде називатися кластеризацией по k-медианам, а не по k-середніх.

А якщо ви не хочете змінювати евклідовим відстаням, то все, що вам потрібно - це додати бінарне умова (bin) в «Пошуку рішення» для всіх кластерних центрів.

Але якщо кластерні центри тепер бінарні, то як використовувати евклідова відстань?

Переходимо до відповідного виміру відстаней

Переключившись з k-середніх на k-медіани, люди зазвичай перестають користуватися евклідовим відстанню і починають використовувати щось під назвою Манхеттенський відстань, або метрика міського кварталу.

Незважаючи на те, що відстань від точки А до точки В вимірюється по прямій, таксі на Манхеттені доводиться переміщатися по мережі прямих вулиць, де можливі руху лише на північ, південь, захід або схід. Тому, якщо на рис. 2-13 ви бачили, що відстань між танцюристом-школярем і його кластерним центром дорівнює приблизно 4,47, його Манхеттенський відстань дорівнюватиме 6 метрам (4 метри вниз + 2 метра вбік).

У термінах бінарних даних, таких як дані про продажі, Манхеттенський відстань між кластерним центром і купівельним вектором - це просто число невідповідностей. Якщо у кластерного центру 0 і у мене 0, то в цьому напрямку відстань буде 0, а якщо зустрічаються 0 і 1, тобто числа не збігаються, то в цьому напрямку відстань дорівнює 1. Складаючи їх, ви отримуєте загальну відстань, яке є просто числом розбіжностей.

Чи справді Манхеттенський відстань грає в рішенні ключову роль?

Що значить «покупець здійснив операцію»? Це означає, що він дійсно хотів придбати цей товар!

Що значить «покупець не здійснив операцію»? Чи означає це, що він не хотів цей товар настільки, наскільки хотів той, який купив? Чи однаково сильні позитивний і негативний сигнали? Може, він і любить шампанське, але вже тримає запас в підвалі. Може, він просто не бачив вашу розсилку за цей місяць. Є маса причин, чому хтось чогось не робить, але лише кілька - чому дії відбуваються.

Іншими словами, варто звертати увагу на замовлення, а не на їх відсутність.

Є химерне слівце - «асиметрія» даних. Одиниці цінніші, ніж нулі. Якщо один покупець збігається з іншим за трьома одиницям, то це більш важливе збіг, ніж з третім покупцем за трьома нулях. Що впадає в очі - так це мала кількість цінних одиниць в даних - ось вони, «розріджені дані»!

Вам потрібен розрахунок асиметричного відстані. А для змінних даних в бінарному коді на кшталт цих замовлень вина існує безліч непоганих варіантів.

Найбільш, мабуть, широко використовуваний метод підрахунку асиметричного відстані для даних формату 0-1 називається відстанню по косинусу.

Відстань по косинусу - це не так страшно, незважаючи на тригонометрію

Найпростіший спосіб пояснити, що таке відстань по косинусу - це проаналізувати поняття «близькість по косинусу».

Розглянемо пару двовимірних бінарних векторів (1,1) і (1,0). У першому векторі були замовлені обидва товари, в той час як у другому тільки перший. Ви можете уявити ці вектори в просторі і побачити, що кут між ними - 45 градусів (рис. 2-41). Діставайте транспортир - перевіримо.

Можна сказати, що їх близькість дорівнює косинусу 45 градусів, що становить 0,707. Але чому?

Виявляється, косинус кута між двома бінарними замовленнями - це:

Число збігів замовлень в двох векторах, розділене на твір квадратних коренів кількості замовлень першого і другого векторів

У нашому випадку два вектора (1,1) і (1,0) мають один збігається замовлення, так що в чисельнику буде 1, а в знаменнику - квадратний корінь з 2 (дві ув'язнені угоди), помножений на корінь з 1 укладеної угоди. В результаті маємо 0,707 (рис. 2-41).

Що примітного в цьому розрахунку?

• лічильник у формулі вважає тільки збіги угод, тобто він асиметричний і тому відмінно підходить до даного випадку;

• квадратного кореня з кількості угод по кожному вектору в знаменнику звертають нашу увагу на той факт, що вектор, в якому здійснені всі угоди - назвемо її нерозбірливо - набагато далі відстоїть від іншого вектора, ніж той, в якому здійснені ті ж угоди і не здійснені кілька інших. Вам потрібно збіг векторів, «смаки» яких збігаються, а не один вектор, що містить «смаки» іншого.

• для бінарних даних ця близькість знаходиться в проміжку між 0 і 1, причому у двох векторів не виходить 1, поки всі їхні замовлення не співпадуть. Це означає, що 1 - близькість по косинусу може використовуватися як міра відстані, яка називається відстанню по косинусу, яке також варіюється від 0 до 1.

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

А тепер все те ж саме, але в Excel

Прийшов час дати шанс проявити себе k-медіанної кластеризації за допомогою відстані по косинусу.

Кластеризація за допомогою відстані по косинусу також іноді називається сферичною по k-середніх. У розділі 10 ви побачите сферичні k-середні в R.

Будемо послідовні і продовжимо з k = 5.

Знову почнемо з копіювання листа 5мс і перейменування його, на цей раз в 5MedC. Так як кластерні центри повинні бути бінарними, потрібно видалити всі, що туди понаписував «Пошук рішення».

Єдині речі, які вимагають зміни тут (крім додавання бінарного умови в «Пошук рішення» для k-медіан), - це розрахунки відстаней в рядках з 34 по 38. Почніть з осередку М34, в якій знаходиться відстань між Адамсом і центром кластера 1.

Щоб порахувати збіги угод у Адамса і кластера 1, потрібно застосувати до цих двох стовпчиках SUMPRODUCT / СУММПРОИЗВ. Якщо у одного з них або в обох зустрічається 0, рядок залишається порожньою, але якщо у обох 1, то це збіг обробляється SUMPRODUCT / СУММПРОИЗВ і 1, помножена на 1, залишається 1.

Що стосується вилучення кореня з кількості угод, укладених в векторі, це просто SQRT // КОРІНЬ, накладений на SUM // СУМА вектора. Таким чином, рівняння відстані можна записати як

Зверніть увагу на «1» на початку формули, що відрізняє близькість по косинусу від відстані по косинусу. Також, на відміну від евклидова відстані, розрахунок відстані по косинусу не вимагає використання формул масиву.

Так чи інакше, коли ви вставите це в М34, слід додати перевірку на помилки на випадок, якщо кластерний центр виявиться 0:

Додавання формули IFERROR / ЕСЛІОШІБКА позбавляє вас від ділення на 0. І якщо з якоїсь причини «Пошук рішення» вибирає кластерний центр, що повністю складається з 0, ви можете припустити, що цей центр знаходиться на відстані 1 від усього іншого (1 як найбільшу значення бінарної змінної).

Потім ви можете скопіювати М34 вниз по стовпчику до М38 і змінити посилання стовпця H на I, J, K або L. Так само, як у випадку з евклідовим відстанню, ви використовуєте абсолютні посилання ($) у формулі, так що можете перетягувати її куди заманеться без шкоди для стовпця з кластерним центром.

Таким чином, ми отримали лист 5MedC (рис. 2-42), який поки абсолютно ідентичний листу 5мс, з яким ми працювали раніше.

Тепер, щоб знайти кластери, відкрийте «Пошук рішення» і змініть умова «<= 1» для Н2:L33 на бинарное.

Натисніть «Виконати». Ви можете відпочити півгодинки, поки комп'ютер шукає для вас оптимальні кластери. Ви відразу помітите, що все кластерні центри тепер - бінарні, так що у умовного форматування залишаються два відтінку, що сильно підвищує контраст.

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Рейтинг угод для 5-медіанний кластерів

По завершенні роботи «Пошуку рішення» у вас утворюється 5 кластерних центрів, і в кожному - купка одиничок, які вказують на угоди, бажані цим кластером. Мій «Пошук рішення» видав оптимальне об'єктивне значення 42,8, хоча ваше може серйозно відрізнятися (рис. 2-43).

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Давайте розберемося в цих кластерах, використовуючи метод підрахунку угод, яким ми користувалися для k-середніх. Для цього спершу необхідно скопіювати лист 5MC - TopDealsByCluster tab і назвіть його 5MedC - TopDealsByCluster.

Ваші кластери можуть трохи відрізнятися від моїх і по порядку, і за складом через еволюційного алгоритму, але, сподіваюся, відмінності будуть несуттєвими. Давайте пройдемося по кластерам і подивимося, як цей алгоритм розділив покупців.

Сортування кластера 1: схоже, це дрібнооптовий кластер (рис. 2-44).

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

У кластер 2 потрапили покупці, які купують тільки ігристі вина. Шампанське, просекко і ігристе домінують в перших 11 позиціях кластера (рис. 2-45). Цікаво відзначити, що підхід k-середніх не надто явно демонструє кластер любителів шипучого при k рівному 4 або 5.

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Кластер 3 - кластер франкофілів. П'ять найбільших оборудок - на французькі вина (рис. 2-46). Хіба вони не знають, що каліфорнійські вина краще?

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Що стосується кластера 4, то тут тільки великі угоди. І все найпопулярніші операції - з великою знижкою і ще не пройшли ціновий максимум (рис. 2-47).

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Кластер 5 знову опинився кластером піно нуар (рис. 2-48).

Так чистіше, чи не так? Це тому, що метод k-медіан, використовуючи асиметричний методи вимірювання відстаней на кшталт рівності косинусів, дозволяє кластерізіровать клієнтів, грунтуючись більше на їх перевагах, ніж на антипатіях. Адже нас цікавить саме це!

K-медіанна кластеризація і асиметричне вимірювання відстаней - багато цифр

Ось на що здатна міра відстані!

Тепер ви можете взяти прив'язки до цих п'яти кластерів, імпортувати їх назад в MailChimp.com як об'єднане поле в списку листів і використовувати ці значення для налаштування вашої маркетингової розсилки по кластерам. Це повинно допомогти вам краще підбирати покупців і управляти продажами.