Інструменти для вивчення даних за допомогою Scala


15

Я знаю, що Іскра повністю інтегрована зі Scala. Випадок використання спеціально для великих наборів даних. Які ще інструменти мають хорошу підтримку Scala? Чи Scala найкраще підходить для великих наборів даних? Або він також підходить для менших наборів даних?


2
Ви також хочете дізнатися про набори інструментів для машинного навчання, наприклад, наприклад, FACTORIE?
Ерік Каплун

Це звучить відповідно до мого питання, не соромтеся поділитися більше.
sheldonkreger

Відповіді:


11

Re: розмір даних

Коротка відповідь

Scala працює як для малих, так і для великих даних, але її створення та розвиток мотивовано необхідністю чогось масштабованого. Скала є абревіатурою “Масштабована мова” .

Довга відповідь

Scala - це функціональна мова програмування, яка працює на jvm . "Функціональна" частина цього полягає в принциповій різниці мови, яка змушує по-різному думати про програмування. Якщо вам подобається такий спосіб мислення, він дозволяє швидко працювати з невеликими даними. Вам це подобається чи ні, функціональні мови принципово простіше в масштабному масштабі. Елемент jvm також важливий, оскільки jvm в основному є скрізь, і, таким чином, код Scala може працювати в основному скрізь. (Зверніть увагу, що на jvm написано багато інших мов, і багато інших функціональних мов програмування , а мови, що перебувають за межами Scala, відображаються в обох списках.)

Ця розмова дає хороший огляд мотивації, що стоїть за Scala.

Re: інші інструменти, які мають хорошу підтримку Scala:

Як ви вже згадували, Spark (розподільна пакетна обробка краще в ітераційних алгоритмах, ніж її аналог) є великою. З Spark виходять його бібліотеки Mllib для машинного навчання та GraphX для графіків. Як уже згадувалося Еріком Алліка і Тріс Nefzger, Акки і Factorie існують. Є також Play .

Як правило, я не можу сказати, чи є конкретний випадок використання, який ви копаєте (якщо так, зробіть це частиною свого питання), або просто хочете оглянути інструменти великих даних і, можливо, дізнаєтесь Scala трохи і хочете почати там.


5

ScalaNLP - це набір машинного навчання та цифрових обчислювальних бібліотек з підтримкою загальних завдань з обробки природних мов. http://www.scalanlp.org/

Ось нещодавно оновлений список бібліотек Scala для наукових даних: https://www.datasciencecentral.com/profiles/blogs/top-15-scala-libraries-for-data-science-in-2018-1


4

Прослуховуючи презентації Мартіна Одерського, творця Scala, він особливо добре підходить для побудови високомасштабних систем, використовуючи функціональні конструкти програмування в поєднанні з орієнтацією на об'єкт і складним синтаксисом. Це також корисно для розробки малих систем та швидкого прототипування, оскільки воно займає менше рядків коду, ніж деякі інші мови, та має інтерактивний режим для швидкого зворотного зв'язку. Однією з помітних рамок Scala є Акка, яка використовує модель актора одночасних обчислень. Багато презентацій Одерського є на YouTube, і на wiki.scala-lang.org є список інструментів, реалізованих разом із Scala.

Неявний момент полягає в тому, що інструменти та рамки, написані в Scala, по суті, мають інтеграцію Scala і зазвичай є API Scala. Тоді можуть бути додані інші API для підтримки інших мов, починаючи з Java, оскільки Scala вже інтегрована і насправді критично залежить від Java. Якщо інструмент або рамки не написані в Scala, навряд чи вони пропонують будь-яку підтримку для Scala. Ось чому, відповідаючи на ваше запитання, я вказав на інструменти та рамки, написані в Scala and Spark, є одним із прикладів. Однак, Scala в даний час має незначну частку ринку, але темпи її прийняття зростають, і високі темпи зростання Spark посилять це. Тому я використовую Scala в тому, що API Spark для Scala багатший, ніж API Java та Python.

Основні причини, які я віддаю перевагу Scala, в основному, це те, що вона набагато виразніше, ніж Java, оскільки вона дозволяє і полегшує використання функцій як об'єктів і значень, зберігаючи об'єктно-орієнтовану модульність, що дозволяє розробляти складні та правильні програми з набагато меншим кодом, ніж Java, Я віддав перевагу через широке використання, чіткість та чудову документацію.


1
Це велика інформація про Scala в цілому, але я шукаю інформацію про конкретні засоби наукових даних або рамки, які мають інтеграцію Scala, і чому Scala є гарною мовою для використання цих інструментів.
sheldonkreger

0

Scala підходить як для великих, так і малих прикладних наук. Подумайте про DynaML, якщо вам цікаво спробувати бібліотеку машинного навчання, яка добре інтегрується з Apache Spark. Так би мовити, як можна сказати, щодо кількості моделей, що пропонуються, але це компенсує широкий і гнучкий API машинного навчання.

Щоб ознайомитись з деякими зразками використання зразків, розгляньте (докладніше, звідки це походить)

  1. Ідентифікація системи - Abott Power Plant

Відмова: Я є автором DynaML


Якщо це ваш проект, зверніть увагу на свою приналежність.
Шон Оуен
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.