Я использую skilearn для обучения SVM. Я использую кросс-валидацию для оценки оценки и избегаю модели переопределения.Перекрестная проверка и выбор модели
Я разделил данные на две части. Данные поезда и данные испытаний. Вот код:
import numpy as np
from sklearn import cross_validation
from sklearn import datasets
from sklearn import svm
X_train, X_test, y_train, y_test = cross_validation.train_test_split(
iris.data, iris.target, test_size=0.4, random_state=0
)
clf = svm.SVC(kernel='linear', C=1)
scores = cross_validation.cross_val_score(clf, X_train, y_train, cv=5)
print scores
# Now I need to evaluate the estimator *clf* on X_test.
clf.score(X_test,y_test)
# here, I get an error say that the model is not fitted using fit(), but normally,
# in cross_val_score function the model is fitted? What is the problem?
При выполнении перекрестной проверки вы бы тренировать модель на '' X_train', y_train', а затем оценить его производительность на '' X_test', y_test'. Было бы нецелесообразно оценивать производительность вашего классификатора без предварительного обучения. –
@ali_m, Что делает cross_validation.cross_val_score()? Обычно он сначала тренирует режим. Я прекрасно понимаю и понимаю, что вы говорите. Для моего случая мне нужна ранняя остановка, чтобы избежать переобучения. Я разделил набор данных на 3 части для примера, поезд, действительный, тест. Я тренирую модель на части поезда после того, как я настраиваю ее на действительную часть. Как только я получу разумный поезд и действительную ошибку. Я тестирую его на тестовой части. Вот и все! – Jeanne