Зараз у мене є лише час на дуже коротку відповідь, але я спробую розширити це згодом.
Що ви хочете зробити - це кластеризація , оскільки ви хочете виявити деякі мітки для своїх даних. (На відміну від класифікації, де ви мали б мітки принаймні для деяких даних, а ви хочете позначити решту).
Для того, щоб виконати кластеризацію для своїх користувачів, вам потрібно мати їх як певні точки в абстрактному просторі. Потім ви виміряєте відстані між точками і скажете, що точки, які знаходяться "поруч", є "подібними" і позначите їх відповідно до місця в цьому просторі.
Вам потрібно перетворити ваші дані у те, що схоже на профіль користувача, тобто: ідентифікатор користувача, а потім вектор чисел, що представляють особливості цього користувача. У вашому випадку кожна функція може бути "категорією веб-сайту" або "категорією товару", а кількість може бути сумою доларів, витрачених на цю функцію. Або, звичайно, особливістю може бути поєднання Інтернету та продукту.
Як приклад, давайте уявимо профіль користувача, який має лише три функції:
- долари, витрачені в "технічних" веб-сайтах,
- долари, витрачені на "модні" продукти,
- і долари, витрачені на "агресивні" відеоігри на "сімейно орієнтовані" веб-сайти (хто знає).
Для того, щоб створити ці профілі, вам потрібно зіставити наявні у вас "категорії" та "ключові слова", які є занадто великими, у функції, які ви вважаєте релевантними. Погляньте на моделювання теми або семантичну подібність, щоб зробити це. Після того, як ця карта буде побудована, вона зазначає, що всі долари, витрачені на веб-сайти з ключовими словами "гаджет", "електроніка", "програмування" та X іншими, повинні бути об'єднані в нашу першу функцію; і так далі.
Не бійтеся "нав'язувати" риси! Вам потрібно буде уточнити їх і, можливо, повністю змінити їх, як тільки ви кластеруєте користувачів.
Коли у вас є профілі користувачів, перейдіть до їх кластеризації, використовуючи k-засоби або все, що ви вважаєте цікавим. Яку б техніку ви не використовували, вам буде цікаво отримати "представницьку" точку для кожного кластеру. Зазвичай це геометричний "центр" точок у цьому кластері.
Накресліть ці "представницькі" точки, а також побудуйте схему порівняння їх з іншими кластерами. Використання радарної діаграми тут дуже корисно. Де б не було помітною особливістю (щось у представнику, що є дуже помітним, а також є дуже помітним у порівнянні з іншими кластерами), це хороший кандидат, який допоможе вам позначити кластер якоюсь привабливою фразою ("ботаніки", "модниці" , "агресивні мами" ...).
Пам'ятайте, що проблема кластеризації - це відкрита проблема, тому немає "правильного" рішення! І я думаю, що моя відповідь вже досить давня; також перевірити нормалізацію профілів та фільтруючих залишків.