Невозможно инициализировать Spark CatBoostClassifier с параметрами

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

Я пытаюсь создать 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, чтобы получить актуальную информацию о доступных параметрах и их использовании.

Если у вас есть другие вопросы или возникнут дополнительные проблемы, не стесняйтесь задавать их!

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

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