Kotlin для научных исследований данных
От создания конвейеров данных до внедрения моделей машинного обучения, Kotlin может быть отличным выбором для работы с данными:
Kotlin лаконичен, удобочитаем и прост в изучении.
Статическая типизация и безопасность при работе с null-значениями помогают создавать надежный и поддерживаемый код, который легко отлаживать.
Как язык JVM, Kotlin обеспечивает высокую производительность и возможность использования целого экосистемы проверенных временем библиотек Java.
Интерактивные редакторы
Записные книжки, такие как Jupyter Notebook и Apache Zeppelin, предоставляют удобные инструменты для визуализации данных и исследовательской работы. Kotlin интегрируется с этими инструментами, помогая вам исследовать данные, делиться результатами с коллегами или развивать свои навыки в области научных исследований данных и машинного обучения.
Ядро Jupyter на Kotlin
Jupyter Notebook — это открытая веб-приложение, позволяющая создавать и делиться документами (также известными как «записные книжки»), которые могут содержать код, визуализации и текст Markdown. Kotlin-jupyter — это открытый проект, который добавляет поддержку Kotlin в Jupyter Notebook.
Посмотрите GitHub репозиторий ядра Kotlin для инструкций по установке, документации и примеров.
Интерпретатор Zeppelin на Kotlin
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), операторы срезов (например,countBy,simpleRegressionBy), операции по группировке, дискретную выборку PDF, классификатор наивного Байеса, кластеризацию, линейную регрессию и многое другое.kmath — экспериментальная библиотека, первоначально вдохновленная NumPy, но эволюционировавшая к более гибким абстракциям. Она реализует математические операции, объединённые в алгебраических структурах над типами Kotlin, определяет API для линейных структур, выражений, гистограмм, операций потоковой обработки, предоставляет взаимозаменяемые обёртки над существующими Java и Kotlin библиотеками, включая ND4J, Commons Math, Multik и т.д.
krangl — библиотека, вдохновленная dplyr из R и pandas из Python. Эта библиотека предоставляет функциональность для обработки данных с использованием функционального стиля API; она также включает функции для фильтрации, преобразования, агрегирования и изменения структуры табличных данных.
lets-plot — библиотека для построения графиков статистических данных, написанная на Kotlin. Lets-Plot кроссплатформенная и может быть использована не только с JVM, но и с JS и Python.
kravis — ещё одна библиотека для визуализации табличных данных, вдохновлённая ggplot из R.
londogard-nlp-toolkit — библиотека, которая предоставляет утилиты при работе с обработкой естественного языка, такие как встраивание слов/подслов/предложений, частота слов, стоп-слова, стемминг и многое другое.
Библиотеки Java
Поскольку Kotlin обеспечивает первоклассную интеграцию с Java, вы также можете использовать библиотеки Java для науки о данных в своём коде Kotlin. Вот несколько примеров таких библиотек:
DeepLearning4J — библиотека глубокого обучения для Java
ND4J — эффективная библиотека математических операций над матрицами для JVM
Dex — инструмент визуализации данных на базе Java
-
Smile — комплексная система машинного обучения, обработки естественного языка, линейной алгебры, графов, интерполяции и визуализации. Помимо Java API, Smile также предоставляет функциональный Kotlin API, а также API для Scala и Clojure.
Smile-NLP-kt — Kotlin-переработка Scala-имплиситов для части обработки естественного языка Smile в формате расширяющих функций и интерфейсов.
Apache Commons Math — общая математическая, статистическая и библиотека машинного обучения для Java
NM Dev — математическая библиотека Java, охватывающая всю классическую математику.
OptaPlanner — утилита-решатель для задач оптимизационного планирования.
Charts — научно-графическая библиотека JavaFX в разработке.
CoreNLP — инструмент обработки естественного языка.
Apache Mahout — распределённый фреймворк для регрессии, кластеризации и рекомендаций.
Weka — набор алгоритмов машинного обучения для задач по извлечению данных.
Tablesaw — Java DataFrame. Он включает библиотеку визуализации на основе Plot.ly
Если этот список не покрывает ваши потребности, вы можете найти больше вариантов в репозитории GitHub Kotlin Machine Learning Demos с демонстрациями от Thomas Nield.
© 2010–2022 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/data-science-overview.html