Я пытаюсь создать алгоритм случайного лесного машинного обучения по производительности некоторых предметов розничной торговли. Я использую R Studio для этого. В моем наборе данных у меня есть смесь как числовых, так и категориальных переменных. Моя проблема в том, что одна из моих категориальных переменных «Поставщик» имеет более 53 факторов (166, если быть точным), поэтому используемый мной пакет randomForest не позволяет мне его использовать. Набор данных выглядит следующим образом:
Месяц Год Поставщик ItemName UnitsSoldTY UnitsSoldLY Ценовая категория Количество магазинов
Я считаю, что переменная «Поставщик» будет очень важна для модели. Чтобы обойти ограничение в 53 фактора для категориальной переменной, я хотел бы разбить столбец «Поставщик» на три столбца. Тем не менее, я бы хотел, чтобы первый столбец содержал 33% лучших поставщиков по UnitsSold по всему набору данных. Во втором столбце будут средние 33% поставщиков по UnitsSold, а в третьем столбце будут нижние 33% поставщиков по UnitsSold. Таким образом, готовый продукт для трех столбцов будет выглядеть примерно так:
TopSupplier MidSupplier LowSupplier Месяц Год ItemName ...
ПоставщикА Другое Другое
Другой поставщикB Другой
Другой Другой поставщикC
Какие-нибудь советы или предложения о том, как это сделать?
Я попробовал заявление ifelse, но, похоже, не могу понять, как ранжировать поставщиков по всему набору данных, а затем включить это в качестве фактора, по которому поставщик попадает в какой столбец.
Я бы хотел, чтобы конечный результат имитировал вторую таблицу, которую я включил выше. Переменная «Поставщик» будет разбита на три столбца. В первом столбце будут содержаться только поставщики, которые составляют 33% «UnitsSold» из всего набора данных. Второй столбец будет иметь средние 33%, а третий столбец будет иметь нижние 33%.