Spark 1.5.1: преобразовать много меченных данных в бинарный вектор
-
16-10-2019 - |
Вопрос
Я использую Spark 1.5.1, и у меня есть DataFrame, который выглядит как следующий:
labelsCol, featureCol
(Label1, Label2, Label 32), FeatureVector
(Label1, Label10, Label16, Label30, Label48), FeatureVector
...
(Label1, label 95), FeatureVector
Первый столбец - это список меток для этого образца, и в общей сложности у меня 100 метки.
Я хотел бы построить двоичный классификатор для каждой этикетки, поэтому я хочу преобразовать столбец списка меток в бинарный вектор.
Бинарный вектор будет иметь длину 100, а значение будет 0 или 1, зависит от существования метки для образца.
Есть ли какое -нибудь решение для прямого пролива для этого?
Решение
Spark только недавно реализовано CountVectorizer, который возьмет этикетки (в виде строк) и кодирует их как ваш 100-мерный вектор (при условии, что все 100 метки отображаются где-то в вашем наборе данных). После того, как у вас есть эти векторы, это должен быть простой шаг, чтобы вызвать их, чтобы сделать их 0/1 вместо частоты.