cross_val_score
в основном является удобной оболочкой для итераторов перекрестной проверки sklearn . Вы даете ему классификатор и весь набор (обучение + валидация), и он автоматически выполняет один или несколько раундов кросс-валидации, разбивая ваши данные на случайные обучающие / валидационные наборы, устанавливая набор тренировок и вычисляя счет на наборе валидации , См. Документацию здесь для примера и более подробного объяснения.
Причина, по которой clf.score(X_test, y_test)
вызывает исключение, состоит в том, что cross_val_score
выполняет установку на копии оценщика, а не оригинала (см. здесь clone(estimator)
в исходном коде здесь ). Из-за этого clf
остается неизменным вне вызова функции и поэтому неправильно инициализируется при вызове clf.fit
.
На самом деле вышеупомянутый ответ не был абсолютно корректен.
require 'singleton'
class Example
include Singleton
end
Также необходимо включать потребовать 'одноэлементный' оператор.
Используйте одноэлементный модуль:
class Clazz
include Singleton
end
См. http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html для большего количества информации.
Вы могли использовать модули для того же эффекта, которому я верю, хотя не "шаблон "одиночка"" у Вас может быть глобальное состояние тот путь (который является, каков одиночный элемент! Непослушное глобальное состояние!).