Многоканальная классификация в 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 для реализации задач регрессии и классификации с несколькими выходами.