У меня есть несколько тысяч образцов, которые уже обозначены как «A» или «Not A». Каждый образец присваивает категории [0-n].Оценка тегов (контролируемое обучение)
Я пытаюсь найти, какие категории подходят для маркировки нового образца как «A» или «Not A».
Мой подход разбивает образцы на два набора, один из которых содержит все образцы, помеченные как «A», и один набор, содержащий все «Not A».
Теперь я создаю набор из всех разных категорий и подсчитываю, как часто каждая категория возникает в наборе «А» и «Не А».
Затем я вычисляю коэффициент ошибок, основанный на вхождениях в двух наборах (#occurrences в «Not A»/(#occurrences в «A» + #occurrences в «Not A»)) для каждой категории. Затем они сортируются по возрастанию (в соответствии с коэффициентом ошибок).
Теперь задача состоит в том, чтобы выяснить, какая из этих категорий подходит для заполнения образца как «А».
----------------------------------------------------
| Category | error ratio | #occ "A" | #occ "Not A" |
--------------------------------------------------
| V | 0 | 2 | 0 |
----------------------------------------------------
| W | 0 | 59 | 0 |
----------------------------------------------------
| X | 0,138 | 125 | 20 |
----------------------------------------------------
| Y | 0,901 | 9 | 82 |
----------------------------------------------------
| Z | 1 | 1 | 0 |
----------------------------------------------------
Поэтому прежде всего мне нужно решить, сколько наблюдений необходимо для дальнейшей обработки моих категорий. В приведенной таблице V и Z, вероятно, не очень хорошие категории, потому что слишком мало случаев. Но существует ли статистический подход для определения того, какие категории следует отбрасывать?
После этого мне нужно выбрать, где находится граница моего решения. Я думал о создании всех возможных комбинаций категорий, затем измерял точность и выбирал самый большой набор с более высокой точностью, чем ~ 95%.
На первом этапе я использовал бы только {V}, чтобы выбрать, является ли образец «A» или «Not A». Тогда {W}, ... {V, W}, {V, X}, ... {V, W, X}, ... {V, W, X, Y, Z}. Кажется, что это сложность (2^n - 1).
Поскольку у меня есть несколько тысяч категорий, это невозможно. Есть ли алгоритм оптимизации, который я могу использовать для этой цели?
Вы можете отсортировать категории по коэффициенту ошибки O (nlogn) от малого до большого. Затем выберите верхние k-категории, основанные на суммарном коэффициенте ошибок, основанном на кумулятивных подсчетах ок. «A» и «не A» для категорий top-k, O (n). Кроме того, вы можете рассмотреть «предыдущий», добавив некоторые константы в #occ «A» и #occ «Not A», чтобы как-то отфильтровать категории с меньшим количеством ошибок. –