В Python я работаю над проблемой бинарной классификации обнаружения мошенничества при страховании путешествий. Вот характеристика моего набора данных:
- Содержит 40000 образцов с 20 функциями. После одного горячего кодирования количество функций составляет 50 (4 числовых, 46 категориальных).
- Большинство без маркировки: из 40 000 образцов, 33 000 образцов без маркировки.
- Высокая несбалансированность: из 7000 меченых образцов только 800 образцов (11%) являются положительными (мошенничество).
Я не уверен, какую часть данных масштабировать. Представьте себе случай, когда вы используете fit_transform
и transform
из пакета sklearn. Как правило, вы подходите fit_transform
данные поезда и transform
данные испытаний. В случае полууправляемого обучения вы разбиваете помеченные данные на train_L
и test_L
, и у вас также есть немеченые данные U
. Какой из следующих методов правильный? И как это работает, когда я хочу сделать перекрестную проверку k-fold?
- Применить
fit_transform
к train_L
, применить transform
к test_L
и U
.
- Применить
fit_transform
к объединению train_L
и U
и применить transform
к test_L
.
В качестве алгоритма с полууправлением я использую самообучение с классификатором XGB и распространение меток.