Как использовать перекрестную проверку с пользовательской оценкой в ​​sklearn?

В Java, когда оператор «==» используется для сравнения двух объектов, он проверяет, ссылаются ли объекты на одно и то же место в памяти. Другими словами, он проверяет, являются ли имена двух объектов в основном ссылками на одно и то же место в памяти.

Класс Java String фактически переопределяет реализацию equals () по умолчанию в классе Object и переопределяет этот метод, чтобы он проверял только значения строк, а не их местоположения в памяти. Это означает, что если вы вызываете метод equals () для сравнения двух объектов String, то, пока действительная последовательность символов равна, оба объекта считаются равными.

Оператор == проверяет, являются ли две строки точно одним и тем же объектом.

Метод .equals() проверяет, имеют ли две строки одно и то же значение.

-1
задан user3480922 17 January 2019 в 10:13
поделиться

2 ответа

Как предлагается в нескольких комментариях, эта ошибка связана с тем, что self.processor нельзя глубоко клонировать.

Итак, обходной путь для этой ошибки - удалить шаг предварительной обработки из этого класса и переместить его как независимый шаг предварительной обработки или внутри самого конвейера.

0
ответ дан user3480922 17 January 2019 в 10:13
поделиться

Я бы предложил иметь препроцессор внутри самого конвейера. Cross_val_score будет пытаться скопировать параметры оценщика, он сломается, когда оценщик не может вернуть параметры при вызове get_params().

Я не уверен, является ли ваш параметр конвейера конвейером Sklearn, потому что объект конвейера не повторяется.

0
ответ дан ai_learning 17 January 2019 в 10:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: