Почему моя точность cross_val_score () очень высокая, а точность моего теста очень низкая? - PullRequest
0 голосов
/ 24 марта 2020

При использовании KerasWrapper я получаю очень высокую точность обучения: выше 95%

X_train, X_test, y_train, y_test = train_test_split(train_data, train_labels, shuffle=True, test_size=0.3, random_state=42)

estimator = KerasClassifier(build_fn=build_model(130, 130, 20000), epochs=2, batch_size=128, verbose=1)
folds = KFold(n_splits=3, shuffle=True, random_state=128)
results = cross_val_score(estimator=estimator, X=X_train, y=y_train, cv=folds)

Однако моя точность прогноза совсем не велика. Это классический c случай переоснащения?

prediction = cross_val_predict(estimator=estimator, X=X_test, y=y_test, cv=folds)

metrics.accuracy_score(y_test_converted, prediction)
# accuracy is 0.03%

Как мне повысить точность тестирования? Спасибо

1 Ответ

0 голосов
/ 24 марта 2020

Это классический c случай переоснащения?

Это не - просто ваш процесс неправильный.

cross_val_predict не предназначен для применения к test data, как вы делаете здесь. Низкая точность, вероятно, связана с тем, что вы пытаетесь переучить свою модель в каждом сгибе тестового набора данных, который намного меньше, чем ваш тренировочный.

Правильная процедура - приведите в свой оценщик тренировочные данные, получите прогнозы на тестовом наборе, а затем рассчитайте точность теста, например:

estimator.fit(X_train, y_train)
y_pred = estimator.predict(X_test)
metrics.accuracy_score(y_test, y_pred)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...