Точность оценки различна при использовании таблицы с разделением по сравнению с полностью отдельной таблицей (CreateML, Swift) - PullRequest
4 голосов
/ 31 марта 2019

Я создаю табличную модель классификации, используя CreateML и Swift. Набор данных, который я использую, содержит около 300 элементов и около 13 различных функций. Я пробовал тренировать / тестировать свою модель двумя способами, и у меня были удивительно очень разные результаты :

1) Случайное разделение моей таблицы данных об обучении и оценке из исходного полного набора данных:

let (classifierEvaluationTable, classifierTrainingTable) = classifierTable.randomSplit(by: 0.1, seed: 4)

Я немного поигрался с числом деления .1 и числом четырёх, но результаты повсюду: точность оценки может быть 33% или 80% в некоторых случаях. (Я получил 78% точности обучения, 83% точности проверки, 75% точности оценки в этом случае.)

2) Я вручную взял 10 элементов из исходного набора данных и поместил их в новый набор данных для последующего тестирования. Затем я удалил эти предметы из набора данных из 300 предметов, который использовался для обучения. Когда я проверил эти 10 элементов, я получил 96% точность оценки . (Я получил точность обучения 98%, точность проверки 71%, точность оценки 96% в этом случае.)

Мне интересно, почему такая большая разница? Какое чтение следует рассматривать как более реалистичное и заслуживающее доверия? Могу ли я что-то сделать с любой моделью, чтобы улучшить точность и достоверность? ТАКЖЕ: я не понимаю, что означают различные измерения точности и как я должен их интерпретировать (обучение, проверка, оценка)?

Спасибо.

1 Ответ

3 голосов
/ 08 апреля 2019

Значение точности обучения / проверки состоит в том, что если последняя ниже, чем первая, ваша модель переоснащается, то есть слишком сильно адаптирована к тренировочному набору и не может правильно обобщать.

Таким образом, ваш 1-й случай принесхороший результат, а 2-й - плохой результат.

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

Во 2-м случае ваша модель сильно переоснащается, и 10 предметов были взяты из тренировочного набора, поэтому они существенно не отличаются, что, очевидно, дает вам высокую точность оценки.Так что это был довольно бесполезный тест.

Непонятно, откуда вы взяли данные для проверки точности оценки в первом случае.

TL; DR: первый случай - хороший результат, второй -плохой результат.Если тестирование на новых данных дает слишком низкую точность оценки, возможно, данные качественно отличаются.

И все же можно сказать по-другому: если точность проверки ниже точности обучения, ваша модель количественно плоха (переоснащение);если ваша точность оценки низкая, ваша модель качественно плоха / не подходит для данных, для которых вы собираетесь ее использовать.

...