Выберите лучший альтернативный fclass_if в Spark Mlib

#scala #apache-spark #scikit-learn #apache-spark-mllib

#scala #apache-spark #scikit-учиться #apache-spark-mllib

Вопрос:

Я пытаюсь преобразовать код из Python в Scala, и я застрял в функции, которая существует в scikit-learn, и не нашел ее в Scala Spark

selector= SelectKBest(k=1).fit(X=x, y=y)

в документации https://scikit-learn.org/stable/modules/generated/sklearn.feature_selection .SelectKBest.html в нем говорится, что значение по умолчанию равно Default is f_classif

Документ Spark Mlib:http://spark.apache.org/docs/latest/ml-features.html#feature-selectors

Только

  • VectorSlicer
  • RFormula
  • ChiSqSelector

Существует ли какой-либо альтернативный пакет, который выбирает Top k на основе Anova f-test (f_classif) в Scala?

Ответ №1:

На мой взгляд, для вас есть два варианта:

a) Просто дождавшись выпуска Spark версии 3.1 до начала 2021 года.

Заглянул в исходный код, и ANOVASelector уже реализован, см.:

https://github.com/apache/spark/blob/master/mllib/src/main/scala/org/apache/spark/ml/feature/ANOVASelector.scala

 @Since("3.1.0")
final class ANOVASelector @Since("3.1.0")(@Since("3.1.0") override val uid: String)   
  

Он просто еще не выпущен.

Окно выпуска см.https://spark.apache.org/versioning-policy.html

Окно выпуска Spark 3.1

Дата события

Замораживание кода в начале декабря 2020 года. Ветвь выпуска вырезана.

Период контроля качества середины декабря 2020 года. Сосредоточьтесь на исправлениях ошибок, тестах, стабильности и документах.

Как правило, никаких новых функций не объединялось.

Кандидаты на выпуск в начале января 2021 года (RC), голосование и т.д. До выхода финальной версии

или б) Возьмите исходный код с github и добавьте в свой код / скомпилируйте последнюю версию Spark самостоятельно

Последний вариант, конечно, все равно оставит вам некоторую работу на вашей стороне…

Надеюсь, этот ответ может вам немного помочь.