Как получить проверочный набор для определения класса?
Добрый вечер.
Подскажите, пожалуйста, как обычно получают проверочный набор для классификации, если это учебная задача.
У меня есть набор данных со значениями и классом.
В коде, по которому я пытаюсь изучить модель используется два набора. Один делится на тренировочный и валидационный(X_train, x_valid, y_train, y_valid). А второй загружается как тестовый- без значений класса(X_test, y_test).
Я вот не понимаю как я могу сформировать набор подобный тестовому, чтобы проверить модель по моим данным.
xmoonlight, Да мне скрывать нечего. Вот, копия того ответа:
Не путайте валидационный набор с тестовым.
То, что вы называете "тестовым" обычно - это набор, используемый в соревнованиях, когда участники строят модель, а потом организаторы откртывают некоторые данные, неизвестные ранее и смотрят, какую точность модель на этих данных дала. Лучшие получают плюшки. Все.
В реальных ситуациях нет у вас ничего, кроме датасета, который вы собрали и разметили. О каждой точке известны его Х и Y. И вам надо построить некоторую модель и верить, что она сработает и на других данных, которых у вас пока нет. А как это сделать?
Идут на хитрость. Берут весь датасет, делят его на две части - учебную и тестовую. Учат модель на учебной, а проверяют - не тестовой. Получили хорошие результаты на тестовой - верят, что и на неизвестных данных модель будет работать хорошо. Ведь когда она училась на учебных данных алгоритм ничего не знал о том, какие будут тестовые.
Иногда эту схему усложняют. В разных вариантах - например, делают кросс-валидацию, когда описанную выше процедуры повторяют множество раз, каждый раз меняя разбиение датасета на учебную и тестовую подвыборки. Иногда - сначала делят на две части, а потом одну из них - как правило большую - используют как датасет и делают там валидацию или кросс-валидацию. А когда убеждаются, что модель получилась достойная "контрольным выстрелом" на ранее отложенной части окончательно убеждаются в ее (модели) работоспособности.
Выберайте, что вам действительно надо. И главное - зачем.
dmshar, То есть я могу разбить весь набор на тренировочную и тестовую. Тренировочную опять поделю на тренировочный и тестовый? Тестовую возьму со столбцом класс, но без значений классов, и по ней проверю модель.
Так можно? Или вообще не так?
Еще раз. Выделять тестовую выборку надо всегда.
Иногда ограничиваются обучением модели и ее проверкой. Тогда вам достаточно сразу поделить выборку на две части. Как вы их назовете - это не важно.
Иногда делают более сложную процедуру. С кросс валидацией. Тогда выборку сначала делят на две части, меньшую откладывают для окончательного заключения о работоспосбности, а с большей работают по процедуре кроссвалидации.
Просто делать однократную валидацию с последующим тестированием особого смыла нет.
Заметьте, что само по себе "тестирование" и "однократная валидация" ничем не отличаются. В обоих случаях вы уже используете готовую модель. Для этого берете данные "без столбца Y" и заставляете модель предсказать значения. Потом полученные таким образом значения сравниваете со значениями из столбца Y и делаете заключение и качестве вашей модели при работе на данных, которые она не видела в момент обучения.
Тестирование отличается от реальной работы модели только тем, что у вас нет с чем сравнивать результат (ну пока вы каким-то образом это значение не получите, во временнЫх рядах - например - пока не дождетесь определенного временнОго момента) и вам остается только верить в ее правильность.