Экспорт случайного леса Scikit Learn для использования на платформе Hadoop

Я разработал классификатор спама, используя pandas и scikit, чтобы он был готов к интеграции в нашу систему на основе Hadoop. Для этого мне нужно экспортировать мой классификатор в более распространенный формат, чем травление.

Predictive Model Markup Language (PMML) — мой предпочтительный формат экспорта. Он очень хорошо работает с Cascading, который мы уже используем. Однако я, к удивлению, не могу найти библиотеки Python, которые экспортируют модели scikit-learn в PMML.

Кто-нибудь имел опыт использования этого варианта использования? Существует ли какая-либо альтернатива PMML, обеспечивающая взаимодействие между scikit-learn и hadoop? Как насчет надежной библиотеки экспорта PMML?


person Axel Magnuson    schedule 13.06.2014    source источник
comment
аналогичный вопрос есть на Quora quora .com/How-do-I-use-scikit-learn-with-Hadoop-and-Mapreduce   -  person miraculixx    schedule 13.06.2014
comment
Спасибо за отзыв. Использование потокового API не идеально, но мне, возможно, придется прибегнуть к нему, если ничего не помогает.   -  person Axel Magnuson    schedule 13.06.2014
comment
Классификация спама как спама по электронной почте? Как вы пришли к использованию Random Forest для этого?   -  person Raff.Edward    schedule 14.06.2014
comment
На самом деле в данном случае это спам в микроблогах, где мы нацелены только на подмножество всех сообщений, сгенерированных машиной. Относительное разнообразие функций, кажется, хорошо сочетается со случайным лесом.   -  person Axel Magnuson    schedule 15.06.2014


Ответы (1)


Вы можете использовать Py2PMML, чтобы экспортировать модель в PMML, а затем оценить ее в Hadoop, используя JPMML-Каскадирование. JPMML имеет открытый исходный код, но Py2PMML от Zementis кажется коммерческим продуктом. Помимо этой альтернативы, нет других инструментов для оценки моделей Scikit, экспортированных как PMML на Java/Hadoop. Основная команда scikit планирует внедрить экспортер PMML. Но если вы не хотите никаких коммерческих решений или ждете, пока такой инструмент будет реализован, у вас все еще есть несколько вариантов, но они требуют некоторого кодирования:

  • Адаптируйте проект Компилированные деревья SKLearn, чтобы он генерировал код Java/MapReduce вместо C.
  • Используя функцию export_graphviz, получите DOT-представление каждого дерева решений и напишите небольшой интерпретатор Java.
  • Забудьте о Java и Hadoop, используйте Apache Spark и оценивайте каждое дерево решений параллельно с помощью Python, Scikit и PySpark.

Надеюсь, поможет!

person Maurus Decimus    schedule 13.06.2014
comment
Экспорт моделей SkLearn в PMML может выполняться JPMML-SkLearn (github.com/jpmml/jpmml- sklearn) библиотека/приложение командной строки. Он намного надежнее и с ним проще работать, чем с Py2PMML. - person user1808924; 15.10.2015