Я построил модель машинного обучения с тензорным потоком и керасом, и когда я тестирую ее с помощью «оценки», я получаю довольно хорошие оценки.Но затем, когда я на самом деле хочу использовать модель, я использую «предвидеть», а затем она предсказывает много неправильных.
Здесь я должен добавить информацию, что для оценки я использовал некоторые данные, которые я не использовал дляобучение и когда я использую прогнозирование, он даже ошибочно получает данные, которые я использовал для обучения.
Поэтому мой вопрос заключается в том, выполняет ли «оценка» что-то принципиально иное, чем использование «прогнозирования» и вычисление баллов прогнозов.
Извините, если этот вопрос несколько глуп, но меня бесит, что я получаю такие хорошие оценки, но моя модель не работает.
Заранее спасибо:)
PS: я думаю, что весь мой код был бы немного излишним, но я хотел показать вам, как я оцениваю, может быть, я делаю ошибку здесь:
На данный момент у меня есть мои тестовые данные в словаре под названием test_set, гдеключи - это категории (выходные данные модели), а значения - входные данные для модели.
test_label = {}
for key in test_set:
test_set[key] = np.array(test_set[key]).reshape(-1,255)
test_label[key] = []
for entry in test_set[key]:
test_label[key].append(key)
test_label[key] = np.array(test_label[key]).reshape(-1,18)
for key in test_set:
model.evaluate(np.array(test_set[key]),test_label[key])
И это мой вывод:
1000/1000 [==============================] - 0s 124us/sample - loss: 0.0088
- binary_accuracy: 0.9970
1000/1000 [==============================] - 0s 72us/sample - loss: 0.0556 -
binary_accuracy: 0.9443
1000/1000 [==============================] - 0s 79us/sample - loss: 0.0556 -
binary_accuracy: 0.9444
1000/1000 [==============================] - ETA: 0s - loss: 0.0543 -
binary_accuracy: 0.912 - 0s 73us/sample - loss: 0.0543 - binary_accuracy:
0.9131
1000/1000 [==============================] - 0s 103us/sample - loss: 0.0045
- binary_accuracy: 0.9963
1000/1000 [==============================] - 0s 70us/sample - loss:
9.6615e-06 - binary_accuracy: 1.0000
1000/1000 [==============================] - 0s 79us/sample - loss: 0.0028 -
binary_accuracy: 0.9970
1000/1000 [==============================] - 0s 99us/sample - loss: 1.9372e-
05 - binary_accuracy: 1.0000
1000/1000 [==============================] - 0s 121us/sample - loss:
9.1933e-04 - binary_accuracy: 0.9993
1000/1000 [==============================] - 0s 82us/sample - loss: 0.0169 -
binary_accuracy: 0.9609
1000/1000 [==============================] - 0s 102us/sample - loss: 0.0098
- binary_accuracy: 0.9998
1000/1000 [==============================] - 0s 103us/sample - loss: 0.0561
- binary_accuracy: 0.9443
1000/1000 [==============================] - 0s 102us/sample - loss: 0.0495
- binary_accuracy: 0.9564
1000/1000 [==============================] - 0s 76us/sample - loss: 0.0590 -
binary_accuracy: 0.9444
1000/1000 [==============================] - 0s 83us/sample - loss: 0.0327 -
binary_accuracy: 0.9534
1000/1000 [==============================] - 0s 80us/sample - loss: 0.0303 -
binary_accuracy: 0.9561
1000/1000 [==============================] - 0s 86us/sample - loss: 0.0345 -
binary_accuracy: 0.9421
Так что я получаю довольно хороший scores для каждой категории, но затем, когда я перебираю некоторые данные и использую предикат для каждой записи, он вводит в некоторые категории каждую ошибочную запись.
Буду так рад, если кто-нибудь узнает что-то полезное.