Многоканальная классификация в Spark

Можем ли мы предсказать множественные целевые переменные в Pyspark, как мы выполняем MultiOutputClassifier в sklearn?

У меня есть набор данных из нескольких целевых переменных

    Problem     Complexity  Skill1  Skill2  Skill3  Skill4  Skill5
0   Pbl1        Low            7      0       2       9      3
1   Pbl2        Medium         0      9       2       0      5
2   Pbl3        Medium         3      1       8       7      1
3   Pbl4        Medium         5      2       6       1      8
4   Pbl5        High           4      7       3       9      0

Здесь мои независимые переменные - "Проблема и сложность", и я должен предсказать "Навыки" для конкретной проблемы, а мои целевые переменные - "Умение1, Умение2, Умение3, Умение4".

В sklearn мы можем непосредственно упомянуть наши переменные 'X' и переменные 'Y' и получить прогнозы для нескольких столбцов за один проход. Но в Pyspark мы делаем все независимые переменные как "Особенности", а целевую переменную - как столбец "Метки" и применяем машинное обучение к этим данным.

Как я могу сделать несколько целевых прогнозов для вышеупомянутой структуры таблицы в Pyspark?

2 ответа

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

Что вы можете сделать, это обучить одну линейную регрессию для каждой цели навыка.

Если ваши данные невелики, вы можете использовать df.toPandas()для преобразования вашего фрейма данных spark в фреймворк данных pandas для реализации задач регрессии и классификации с несколькими выходами.

Другие вопросы по тегам