Мое предложение было бы пойти на MinMaxScaler
Одной из основных причин является то, что ваши функции, такие как цена, не могут иметь отрицательных значений, и, как вы упомянули, они могут быть редкими.
Из документации:
Мотивация использовать это масштабирование включает устойчивость к очень маленьким
стандартные отклонения функций и сохранение нулевых записей в разреженных
данные.
В то же время, если ваша числовая переменная имеет огромную дисперсию, выберите RobustScaler или StandardScaler .
Вам не нужно масштабировать функции с горячим кодированием.
Для BoW важно сохранить разреженность данных. Если вы примените StandardScaler, вы потеряете разреженность. Вы обязательно должны пойти на MinMaxScaler.
Другой вариант - использовать TfidfVectorizer , который по умолчанию выполняет нормализацию l2.