Разница между виджетами DataSampler и TestAndScore в Orange

Вопрос или проблема

Я пытаюсь разобраться в разнице между использованием data sampler для получения 70/30 разбиения на обучающую и тестовую выборки и непосредственным использованием виджета test and score для этого через случайное выборку. Мой рабочий процесс выглядит следующим образом

введите описание изображения здесь

Вот как выглядит мой test and score widget в случае без data sampler

введите описание изображения здесь

А вот как выглядит мой data sampler widget

введите описание изображения здесь

Я вижу очень разные результаты в матрице ошибок в конце между двумя подходами. Используя data sampler, я получаю гораздо лучшую модель, чем без него. Однако, если я напрямую пытаюсь использовать функцию train_test_split с LogisticRegression в scikit-learn с похожими гиперпараметрами, как в Orange (например, для solver, C, class_weights и т.д.), то мои результаты там гораздо ближе к тому, что я вижу в Orange без использования data sampler.

  • Может кто-то помочь мне понять, что я упускаю?

  • В чем разница между двумя виджетами в том, как я их использую?

  • Не соответствует ли 70% в DataSampler функции train_test_split в scikit-learn с train_size=0.7?

Проблему удалось выяснить, я неправильно настроил каналы между виджетами ‘data sampler’ и ‘test and score’, чтобы использовать только обучающие данные для тестирования. На самом деле, он должен быть настроен следующим образом –>

введите описание изображения здесь

Ранее у меня ‘Data Sample’ из ‘Data Sampler’ был сопоставлен как с ‘Data’, так и с ‘Test Data’ в виджете ‘Test and Score’. ‘Remaining Data’ – это то, что должно быть сопоставлено с ‘Test Data’, так как это набор данных ‘out of sample’ для тестирования.

Ответ или решение

Вопрос, который вы поднимаете, очень интересен и важен для понимания работы с данными в Orange. Давайте подробно рассмотрим отличия между виджетами Data Sampler и Test and Score.

1. Определение и назначение виджетов

  • Data Sampler:

    • Виджет «Data Sampler» используется для получения случайной выборки данных. Он позволяет разбивать исходный набор данных на подмножества (например, обучение и тестирование) по заданному проценту. Вы можете настроить размер выборки, который будет использоваться для обучения и тестирования, что позволяет вам контролировать, сколько данных будет отдано под обучение модели, а сколько – под тестирование.
  • Test and Score:

    • Виджет «Test and Score» применяется для оценки производительности модели. Он принимает набор данных и предназначен для выполнения кросс-валидации или тестирования на отложенной выборке. Вы можете указать, какие алгоритмы хотите протестировать, и получить различные метрики, такие как точность, полнота и F1-score, что позволяет сравнивать модели между собой.

2. Как они соотносятся в вашем рабочем процессе

Ваш рабочий процесс, как вы правильно заметили, имеет важные особенности:

  • Выборка данных: Когда вы используете «Data Sampler», вы фактически создаете две выборки: одну для обучения и другую для тестирования. Это важно, так как каждая выборка может содержать различные данные, что влияет на результаты оценки модели.
  • Каскадирование данных: Ваша ошибка состояла в том, что выходные данные от «Data Sampler» были настроены неправильно. Вы непосредственно использовали выборку для обучения и тестирования данных, вместо того, чтобы использовать «Remaining Data» для тестирования. Это может привести к тому, что модель будет тестироваться на данных, которые она уже видела во время обучения, что, в свою очередь, приведет к искажению результатов.

3. Различия в результатах

Несмотря на одинаковую процентное соотношение 70%/30% для обучающей и тестовой выборки, фактически результаты могут различаться:

  • При использовании Data Sampler вы обеспечиваете, что модель действительно обучается на одной выборке, а тестируется на совершенно другой, что дает ей возможность продемонстрировать свою способность обобщать.
  • При использовании просто теста и оценки без правильного разделения, модель может показывать более оптимистичные результаты, поскольку она «запоминает» часть тестовых данных и не обобщает свои знания.

4. Сравнение с библиоеткой scikit-learn

Вы упомянули использование train_test_split() в scikit-learn, и естественно, что результаты могут быть ближе к тому, что вы видите в «Test and Score» без предварительного использования «Data Sampler». Это демонстрирует важность правильного управления данными и выборками.

Заключение

Для корректной оценки модели важно понимать, как работают каждый из виджетов в Orange и как они должны быть связаны между собой. Большое количество ошибок, возникающих на этапе подготовки данных, в конечном счете влияет на результаты тестирования модели и ее обобщающую способность.

Если вам понадобятся дополнительные разъяснения или помощь в ваших экспериментах, не стесняйтесь спрашивать!

Оцените материал
Добавить комментарий

Капча загружается...