Python / ML: Какие методы использовать для мультиклассовой классификации для категоризации продукта? - PullRequest
5 голосов
/ 11 февраля 2020

В рассоле ...

У меня есть набор данных с> 100 000 наблюдений; Столбцы наборов данных включают CustomerID , VendorID , ProductID и CatNMap . Вот как это выглядит:

enter image description here

Как видно, значения, представленные в первых 3 столбцах (CustomerID, VendorID, ProductID) представляют уникальные числовые сопоставленные значения и не имеет смысла, если представлен на плоскости x, y (, что исключает использование большого количества методов классификации ); В последнем столбце есть строки с категориями, назначенными клиентами. Теперь здесь - это та часть, которую я не понимаю и не знаю, как к ней приблизиться ...

Цель: - предсказать CatNMap ценности для клиентов в будущем, однако, на мой взгляд, имеющиеся у меня функции бесполезны, правда? Теперь, если они есть, какой метод я могу использовать как CatNMap столбец имеет> 7000 уникальных значений; Кроме того, как любой метод будет относиться к категоризации будущих товаров, если, скажем, для одного и того же продукта существует 2 или более разных категорий, назначенных разными покупателями? Нужно ли вводить NN для этого?

Все ответы приветствуются!

Ответы [ 2 ]

2 голосов
/ 14 февраля 2020

Насколько я понимаю, ваша цель - предсказать CatNMap (ваши выходные данные) на основе первых 3 столбцов (ваши входные данные как элементы).

Как вы сказали ранее, (CustomerID, VendorID, ProductID) являются 3 категориальными переменными , что означает, что значение, которое они могут иметь, относится не к количеству, а к категории. Таким образом, два последовательных значения могут не иметь ничего общего с их действительным значением. На мой взгляд, то же самое происходит с вашим выводом CatNMap.

Сказав это, есть несколько способов обработки категориальных переменных. На моем опыте, для вашей проблемы я бы попробовал One Hot Encoding для всех ваших данных (CustomerID, VendorID, ProductID, CatNMap). Более того, если вы сочтете это возможным, возможно, стоит попробовать использовать вложения для ProductID, CatNMap вместо OneHotEncoding.

Что касается того, какой алгоритм использовать, то определенно стоит попробовать обучите модели Random Forest и Multi Layer Perceptron и сравните их после некоторой настройки.

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

0 голосов
/ 20 февраля 2020

функции кажутся непредсказуемыми для выходных данных, даже если они являются прогнозирующими, 70 000 классов нуждаются в массивных наборах данных для обучения, я думаю, что проблема не будет решена с помощью традиционных методов, давайте подумаем о некоторых идеях

...