Есть ли способ найти наиболее представительный набор выборок из всего набора данных? - PullRequest
1 голос
/ 11 мая 2019

Я работаю над классификацией текста, и у меня есть набор из 200 000 твитов.

Идея состоит в том, чтобы вручную пометить короткий набор твитов и классификаторов поездов, чтобы предсказать метки остальных. Контролируемое обучение.

Я хотел бы знать, есть ли способ выбрать, какие выборки включить в набор поездов таким образом, чтобы этот набор поездов был хорошим представлением всего набора данных, а также потому, что большое разнообразие, включенное в В обучающем наборе обученные классификаторы пользуются значительным доверием к остальным твитам.

Ответы [ 2 ]

2 голосов
/ 12 мая 2019

Это звучит как стратификационный вопрос - у вас есть уже существующие ярлыки или вы планируете создавать ярлыки на основе создаваемого вами образца?

Если это первый сценарий, я думаю, что шагив порядке важности будет:

  1. Стратификация по пропорциям целевого класса (поэтому, если у вас есть три класса, и они составляют 50-30-20%, train / dev / test должен следовать тем же пропорциям)
  2. Стратификация по функциям, которые вы планируете использовать
  3. Стратификация по длине твита / словарю и т. Д.

Если это второй сценарий, и у вас еще нет метоквы можете рассмотреть возможность использования n-грамм в качестве функции в сочетании с уменьшением размерности или кластеризацией.Например:

  1. Используйте что-то вроде PCA или t-SNE, чтобы максимизировать расстояние между твитами (или большим подмножеством), затем выберите кандидатов из разных областей проецируемого пространства
  2. Сгруппируйте ихоснованный на лексических элементах (униграммах или биграммах, возможно, с использованием частоты логов или TF-IDF и фильтрации стоп-слов, если слова содержания - то, что вы ищете) - тогда вы можете вырезать дерево на высоте, которая дает вам n корзин, которые затем можно использовать в качестве источника для сэмплов (стратификация по ветвям)
  3. Используйте что-то вроде LDA, чтобы найти n тем, затем сэмплируйте стратификацию по темам

Надеюсь, это поможет!

0 голосов
/ 12 мая 2019

Похоже, что до того, как вы узнаете что-либо о классах, которые вы собираетесь пометить, простая однородная случайная выборка подойдет почти так же, как любая стратифицированная выборка - потому что вы заранее не знаете, на какую стратификацию делиться.

После маркировки этого первого образца и построения первого классификатора вы можете приступить к так называемому активному обучению: составьте прогнозы для набора данных без метки и выберите несколько твитов, в которых ваш классификатор наименее уместен. Пометьте их, переобучите классификатор и повторите.

Используя этот подход, мне удалось создать хороший обучающий набор после нескольких (~ 5) итераций, с ~ 100 текстами в каждой итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...