Kotlin для Data Science
Начиная с построения конвейеров данных и заканчивая разработкой моделей машинного обучения, Kotlin может стать отличным выбором для работы с данными:
- Kotlin лаконичен, удобочитаем и прост в освоении;
- Статическая типизация и null-безопасность помогают создавать надежный код, который легко поддерживать и улучшать;
- Будучи JVM языком, Kotlin обеспечивает отличную производительность и возможность использовать целую экосистему проверенных и надежных Java библиотек.
Интерактивные редакторы
Блокноты, такие как Jupyter Notebook и Apache Zeppelin, предоставляют удобные инструменты для визуализации данных и исследовательских исследований. Kotlin интегрируется с этими инструментами, чтобы помочь вам изучать данные, делиться своими выводами с коллегами или развивать свои навыки в области Data Science и машинного обучения.
Kotlin ядро для Jupyter
Jupyter Notebook - это веб-приложение с открытым исходным кодом, позволяющее создавать и обмениваться документами (также известными как “ноутбуки”), которые могут содержать код, визуализации и Markdown разметку. Kotlin-jupyter - это проект с открытым исходным кодом, который обеспечивает поддержку Kotlin для Jupyter Notebook.
Ознакомьтесь с GitHub репозиторием ядра Kotlin для получения инструкций по установке, документации и примеров.
Kotlin интерпретатор для Zeppelin
Apache Zeppelin - популярное веб-решение для интерактивного анализа данных. Оно обеспечивает мощную поддержку кластерной вычислительной системы Apache Spark, которая особенно полезна для дата-инжиниринга. Начиная с версии 0.9.0, в Apache Zeppelin есть встроенный Kotlin интерпретатор.
Библиотеки
Экосистема библиотек для задач, связанных с данными, созданная сообществом Kotlin, быстро расширяется. Вот некоторые библиотеки, которые могут быть полезными:
Kotlin библиотеки
Multik: многомерные массивы в Kotlin. Библиотека предоставляет Kotlin-идиоматический, типо- и размерно-безопасный API для математических операций над многомерными массивами. Multik дает возможность работы как с реализацией на JVM, так и с оберткой нативного оптимизированного кода, а также позволяет автоматически переключаться между реализациями для оптимизации производительности;
KotlinDL - это высокоуровневый API глубокого обучения, написанный на Kotlin и вдохновленный Keras. Он предлагает простые API для обучения моделей глубокого обучения с нуля, импорта существующих моделей Keras для вывода и использования обучения передаче для настройки существующих предварительно обученных моделей для ваших задач;
Kotlin для Apache Spark увеличивает уровень совместимости между Kotlin и Apache Spark. Это позволяет разработчикам Kotlin использовать знакомые особенности языка, такие как классы данных и лямбда-выражения, в виде простых выражений в фигурных скобках или ссылок на методы;
kotlin-statistics - это библиотека, которая предоставляет функции-расширения для статистического анализа. Она поддерживает основные функции для обработки числовых списков, последовательностей, массивов (от
sum
доskewness
), операциями группировки (ориг.: slicing operators) (такие какcountBy
,simpleRegressionBy
), операции группировки, выборки дискретной плотности вероятности, наивный байесовский классификатор, кластеризацию, линейную регрессию и многое другое;kmath - это библиотека, вдохновленная NumPy. Эта библиотека поддерживает алгебраические структуры и операции, структуры, подобные массивам, математические выражения, гистограммы, потоковые операции, обертку вокруг commons-math и koma и многое другое;
krangl - это библиотека, вдохновленная dplyr в R и pandas из Python. Эта библиотека предоставляет инструментарий для обработки данных с использованием API функционального стиля; она также включает функции фильтрации, преобразования, агрегирования и изменения формы табличных данных;
lets-plot - это библиотека построения графиков для статистических данных. Она мультиплатформенная и может использоваться не только с JVM, но также с JS и Python;
kravis - это еще одна библиотека для визуализации табличных данных, вдохновленная ggplot в R;
londogard-nlp-toolkit - это библиотека, которая предоставляет инструменты для обработки естественных языков, например для работы со словами/частями слов/предложениями, частоты использования слов, стоп-слов, поиском основы слова и многим другим.
Java библиотеки
Поскольку Kotlin полностью совместим с Java, вы также можете использовать Java-библиотеки для Data Science в своем Kotlin-коде. Вот несколько примеров таких библиотек:
DeepLearning4J - библиотека глубокого обучения для Java;
ND4J - эффективная матричная математическая библиотека для JVM;
Dex - инструмент на основе Java для визуализации данных;
Smile - комплексная система машинного обучения, обработки естественного языка, линейной алгебры, графики, интерполяции и визуализации. Помимо Java API, Smile также предоставляет функциональный Kotlin API, а также Scala и Clojure API.;
- Smile-NLP-kt - переписанные на Kotlin Scala имплициты для части Smile, отвечающей за обработку естественного языка, в виде функций-расширений и интерфейсов;
Apache Commons Math - библиотека общей математики, статистики и машинного обучения для Java;
NM Dev - математическая библиотека Java, охватывающая всю классическую математику;
OptaPlanner - инструмент поиска решения для проблем оптимизации планирования;
Charts - библиотека JavaFX для научных графиков (в разработке);
CoreNLP - инструментарий для обработки естественного языка;
Apache Mahout - распределённая программная среда для регрессии, кластеризации и рекомендаций;
Weka - набор алгоритмов машинного обучения для решения задач сбора данных;
Tablesaw - Java датафрейм (инструменты для загрузки, преобразования, фильтрации и суммирования данных), включающий в себя основанную на Plot.ly библиотеку для визуализации данных.
Если в этом списке нет того, что вам нужно, вы можете найти дополнительные варианты в GitHub репозитории Kotlin Machine Learning Demos с демонстрационными материалами от Томаса Нилда.