Вопрос или проблема
Я пытаюсь создать CatBoostClassifier, используя catboost_spark. В обычном пакете Catboost такие параметры, как learning_rate, loss_function, num_leaves и т.д., можно включить при создании экземпляра CatBoostClassifier. Когда я пытаюсь сделать это для версии catboost_spark, возникает ошибка “неожиданный аргумент ключевого слова”. Я вставил ошибку ниже. Есть ли способ включить эти параметры при создании экземпляра класса, или есть другой способ их включения?
`—-> 8 model = catboost_spark.CatBoostClassifier(learning_rate=configs[‘catboost’][‘learning_rate’])
Файл ~/anaconda3/envs/python3/lib/python3.10/site-packages/pyspark/init.py:135, в keyword_only..wrapper(self, *args, **kwargs)
133 raise TypeError(“Метод %s требует аргументы ключевых слов.” % func.name)
134 self._input_kwargs = kwargs
–> 135 return func(self, **kwargs)
TypeError: CatBoostClassifier.init() получил неожиданный аргумент ключевого слова ‘learning_rate’`
Я попробовал несколько различных параметров, и все они дали ту же ошибку “неожиданный аргумент ключевого слова”.
Ответ или решение
Вы столкнулись с ошибкой "unexpected keyword argument" при попытке инициализации CatBoostClassifier
из библиотеки catboost_spark
, потому что структура параметров для CatBoostClassifier
в catboost_spark
отличается от той, что используется в стандартной библиотеке CatBoost.
В то время как стандартный пакет CatBoost принимает такие параметры, как learning_rate
, loss_function
, num_leaves
, и другие при создании экземпляра CatBoostClassifier
, catboost_spark
имеет несколько иной подход.
Для создания классификатора CatBoost в среде Spark, параметры должны быть указаны несколько иначе. Здесь нет необходимости передавать их напрямую в конструктор. Вместо этого, надо использовать метод set_params()
, чтобы задать настройки после создания экземпляра классификатора.
Вот пример, как можно это реализовать:
from catboost_spark import CatBoostClassifier
# Создаем экземпляр CatBoostClassifier
model = CatBoostClassifier()
# Устанавливаем параметры
model.set_params(
learning_rate=configs['catboost']['learning_rate'],
loss_function='Logloss', # или другой метод, который вы хотите использовать
num_leaves=31 # например
)
Также стоит отметить, что вы должны убедиться, что используете совместимую версию catboost_spark
, которая поддерживает необходимые вам параметры. Рекомендуется ознакомиться с документацией catboost_spark
, чтобы получить актуальную информацию о доступных параметрах и их использовании.
Если у вас есть другие вопросы или возникнут дополнительные проблемы, не стесняйтесь задавать их!