Использование KNN для классификации инвентаря (физических товарных позиций) – это лучший способ?

Вопрос или проблема

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

Всего 1245 товаров

Информация о каждом товаре:

  1. Средневзвешенная цена
  2. Общее количество проданных единиц
  3. Общая выручка
  4. Минимальное количество продаж за транзакцию
  5. Максимальное количество продаж за транзакцию
  6. Минимальная цена продажи
  7. Максимальная цена продажи
  8. Количество уникальных транзакций

Правильно ли я думаю, что KNN является хорошим вариантом, и если да, то как мне определить количество кластеров?

Итак, ваш вопрос касается эффективности KNN для классификации товаров на основе перечисленных выше характеристик.

Как вы, возможно, уже знаете, KNN является методом нелинейного кластерного анализа, который создает K кластеров с минимальным внутрикластерным стандартным отклонением. Этот метод может быть особенно полезен, когда вы знаете, сколько групп K вам нужно. Также он особенно удобен, если у вас нет меток для категорий для всех примеров.

В то же время этот метод не является детерминированным, что означает, что результаты кластеризации могут различаться после каждого выполнения.

Из этой информации вы можете получить лучшее представление о том, будет ли KNN полезен для этой задачи.

Обучение: Вы можете использовать метрику расстояния для вычисления расстояния между всеми наблюдениями по признакам ваших наблюдаемых переменных (средневзвешенная цена, общее количество проданных и т.д.). Для каждого наблюдения или строки или образца i точка с наименьшим расстоянием от этого наблюдения является ближайшим соседом. Точка со вторым наименьшим расстоянием – это второй ближайший сосед и так далее.

Предсказание: Вы можете найти ближайших соседей для новых данных, вычисляя их расстояния до каждой точки в обучающих данных, как указано выше. Затем предсказанная метка присваивается обычно путем выбора наиболее распространенной метки среди k ближайших соседей тестовых данных. Таким образом, классификация k-NN:

from sklearn.neighbors import KNeighborsClassifier

knn = KNeighborsClassifier(algorithm='auto',
                           metric="minkowski", # выберите метрику расстояния
                           metric_params=None,
                           n_neighbors=5, # возьмите метку большинства из 5 ближайших соседей
                           p=2, # гиперпараметр, необходимый для метрики расстояния 'minkowski'
                           weights="uniform")

knn.fit(train_data, train_labels)

# Найдите предсказанный класс тестовых данных:
knn.predict(testset_data)

Ответ или решение

При использовании KNN (k-ближайших соседей) для классификации запасов (физических товарных единиц) важно учитывать несколько ключевых факторов, чтобы определить, является ли этот метод оптимальным для вашей задачи.

Характеристики KNN

  1. Необъективность: KNN — это алгоритм, который основывает свою работу на расстоянии между точками. Он не создает модели, а исследует наиболее близкие точки в пространстве характеристик. Это делает KNN менее предсказуемым, поскольку результаты могут варьироваться при различных запусках, особенно с учетом случайного выбора тренировочных данных.

  2. Количество соседей: Одним из важнейших гиперпараметров KNN является количество соседей k. Выбор k критичен — если k слишком мал, ваш алгоритм будет чувствителен к выбросам и шуму, если слишком велик, он может сгладить различия между классами. Выбор оптимального значения k обычно осуществляется с помощью методов кросс-валидации, где вы можете протестировать различные значения k и определить их эффективность по таким метрикам, как точность или F1-мера.

  3. Расстояние: Выбор метрики расстояния (например, евклидово или манхэттенское) также влияет на результаты. В вашем случае может быть полезно протестировать различные метрики и выбрать ту, которая дает лучшие результаты для ваших данных.

Подготовка данных

Для работы с KNN следует также обратить внимание на предварительную обработку данных:

  • Масштабирование: Если ваши данные находятся в разных масштабах (например, цена и количество), необходимо нормализовать или стандартизировать данные, так как KNN чувствителен к масштабам входных переменных.
  • Обработка пропусков: Убедитесь, что у вас нет недостающих значений в ваших характеристиках, так как это может повлиять на вычисление расстояний.

Альтернативы KNN

Хотя KNN может быть хорошим выбором для вашей задачи, стоит рассмотреть и другие методы классификации или кластеризации:

  • Алгоритмы кластеризации: такие как K-Means, DBSCAN или иерархическая кластеризация могут быть более подходящими для группировки товаров без заданных меток классов.
  • Методы с учителем: Если у вас есть какие-либо метки классов для ваших товаров, стоит рассмотреть использование более мощных моделей, таких как деревья решений, случайные леса или градиентные бустированные модели.

Заключение

Таким образом, KNN — это жизнеспособный вариант для вашей задачи классификации товаров. Тем не менее, для достижения наилучших результатов важно провести тщательную экспертизу параметров, таких как выбор k и метрика расстояния. Также рекомендуется протестировать альтернативные методы и сравнить их производительность, прежде чем делать окончательный выбор. Не забывайте о важности предварительной обработки данных, чтобы обеспечить высокое качество входной информации для алгоритма.

Оцените материал
Добавить комментарий

Капча загружается...