Вопрос или проблема
Я пытаюсь разобраться в разнице между использованием 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 и как они должны быть связаны между собой. Большое количество ошибок, возникающих на этапе подготовки данных, в конечном счете влияет на результаты тестирования модели и ее обобщающую способность.
Если вам понадобятся дополнительные разъяснения или помощь в ваших экспериментах, не стесняйтесь спрашивать!