Можно ли использовать кластеризацию при отсутствии размеченных данных для предположения классов товаров?
Что проверяют
Понимаете ли вы разницу между «нашли группы похожих товаров» и «узнали классы товаров». Кластеризация даёт первое, второе появляется только после интерпретации человеком. Следом обычно спрашивают, как выбрать число кластеров и как проверить, что группы осмысленные.
Как отвечать
Да, можно, но как способ получить гипотезы о классах и ускорить разметку, а не как готовый классификатор. Каркас:
- представление товара: сырые признаки вроде цены почти не группируют товары по смыслу. Лучше эмбеддинги названия и описания (модели семейства sentence-transformers), картинок (CLIP-подобные модели), плюс нормализация числовых признаков;
- алгоритм:
KMeansбыстрый, но требует заранее задать k и ищет шарообразные кластеры примерно равного размера.HDBSCAN(есть в scikit-learn с версии 1.3) сам определяет число кластеров и отправляет выбросы в шум, что для каталога честнее. Иерархическая кластеризация даёт дерево, которое удобно сопоставлять с многоуровневым каталогом; - снижение размерности: UMAP или PCA перед кластеризацией эмбеддингов размерности 384-768 часто улучшает результат, t-SNE годится только для картинки;
- внутренние метрики: силуэт, Davies-Bouldin, Calinski-Harabasz помогают сравнить варианты, но ничего не говорят о том, совпадают ли кластеры с бизнес-категориями;
- интерпретация: для каждого кластера смотрят 20-30 ближайших к центру товаров и частые слова, эксперт даёт имя или сливает кластеры.
Сильный финал ответа: разметить несколько сотен товаров по результатам кластеризации, обучить на них обычный классификатор, а неуверенные случаи отправлять на ручную проверку (active learning). Так кластеризация становится стартом полуавтоматической разметки.
Где спотыкаются
Считают номер кластера меткой класса. Кластер «товары за 500 рублей» математически хороший, но категории у него нет.
Подают в KMeans one-hot категорий и цену без масштабирования. Расстояния тогда определяет один признак с самым большим разбросом.
Выбирают k по «локтю» и на этом останавливаются. Хорошее по метрике число кластеров не обязано совпадать с числом категорий, которое нужно бизнесу.