Работа с наборами данных с переменным количеством функций

14

Каковы некоторые подходы для классификации данных с переменным количеством признаков?

В качестве примера рассмотрим проблему, в которой каждая точка данных представляет собой вектор точек x и y, и у нас не одинаковое количество точек для каждого экземпляра. Можем ли мы рассматривать каждую пару точек x и y как особенность? Или мы должны просто как-то суммировать точки, чтобы каждая точка данных имела фиксированное количество функций?

jergason
источник
7
Помогает ли наличие или отсутствие данной точки в классификации данных?
Jonsca

Ответы:

5

Вы можете рассматривать эти пункты как пропущенные --- т.е. давайте предположим, что вектор имеет не более 20 (x, y) пар, а конкретная точка имеет 5 (x, y) пар, в этом случае обработайте остальные пары как пропущенные, а затем примените стандартные процедуры для пропущенных параметров:

Эти стандартные процедуры могут быть:

  • Используйте модель, которая обрабатывает отсутствующие параметры естественным образом, например, модели дерева решений должны быть в состоянии справиться с этим.
  • Замените пропущенное на среднее значение для соответствующего столбца.
  • Используйте простую модель, чтобы «предсказать» пропущенные значения.

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

ДБ.
источник
10

Насколько я понимаю ваш вопрос, точки в данных являются взаимозаменяемыми и не идут ни в каком порядке, т. Е. У вас есть набор точек для каждого примера. Этот параметр отличается от параметра «Отсутствует значение», что JB. описано.

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

  • Чтобы объединить несколько точек в одну особенность, довольно часто используется набор слов (или набор признаков), например, в компьютерном зрении. Идея состоит в том, чтобы сгруппировать все точки в вашем обучающем наборе (например, с помощью k-средних), а затем описать каждую точку по ее кластеру. Для каждого примера вы затем получаете гистограмму, по которой кластеры встречаются как часто.

  • Чтобы использовать все пары точек, вы можете использовать множество ядер. Это может лучше всего работать с использованием SVM, но, вероятно, также будет работать с любым алгоритмом обучения, который может быть сгенерирован или может использовать функцию совместимости между входами. Набор ядер - это в основном способ вычисления сходства двух наборов функций, как в вашей настройке.

Андреас Мюллер
источник