Допустим, у меня есть набор обучающих данных с двумя числовыми характеристиками A и B и n выборок, которые все помечены в двоичном виде (двоичная классификация) проблема).
A B Label
-------- -----
0 0.1 0.9 x
1 0.7 NaN x
2 0.3 NaN y
3 0.1 0.2 x
...
n 0.1 0.3 y
Также предположим, что у объекта A нет пропущенных значений, тогда как у объекта B есть m пропущенных значений (отображается как NaN
, m > 0).
Теперь я хочу обучить классификатор каждой функции в отдельности, чтобы увидеть, какая из них работает лучше всего. Для сравнения я использую стандартные метрики оценки, полученные из матрицы путаницы.
Проблема в том, что некоторые фреймворки, такие как scikit learn не допускают значения NaN
, поэтому я должен избавиться от них, либо отбрасывая их, либо вменяя значения.
Допустим, я отбрасываю все м NaN
значений свойства B . Затем я обучаю классификатор по признаку A с n выборками, тогда как я обучаю тот же классификатор по признаку B только с n - m образцы. Конечно, оба дают стандартные метрики оценки, но я больше не могу их напрямую сравнивать, или я могу?
Если я вменяю пропущенные значения, я получаю одинаковое количество образцов. Но если пропущено много значений, это само по себе является проблемой, поскольку данные становятся менее надежными.
Мой вопрос сейчас заключается в том, как на самом деле провести звуковое сравнение классификатора, который был обучен по функции, без пропущенных данных, с классификатором, который был обучен по функции с (потенциально большим количеством) пропущенных данных?
Любая помощь очень ценится!