Примеры кода на Scala — различия между версиями
(knn) |
|||
Строка 10: | Строка 10: | ||
==Примеры кода== | ==Примеры кода== | ||
− | === | + | ===KNN=== |
+ | SBT зависимость: | ||
+ | libraryDependencies += "com.github.haifengl" %% "smile-scala" % "1.5.2" | ||
+ | Пример классификации датасета и вычисления F1 меры<ref>[https://en.wikipedia.org/wiki/F1_score F1 мера]</ref> используя smile.classification.knn<ref>[https://haifengl.github.io/smile/classification.html#knn Smile, KNN]</ref>: | ||
+ | import smile.classification._ | ||
+ | import smile.data._ | ||
+ | import smile.plot._ | ||
+ | import smile.read | ||
+ | import smile.validation.FMeasure | ||
+ | |||
+ | val toy: AttributeDataset = read.table("iris.csv", delimiter = ",", response = Some((new NumericAttribute("class"), 2))) | ||
+ | val x: Array[Array[Double]] = toy.x() | ||
+ | val y: Array[Int] = toy.y().map(_.toInt) | ||
+ | val KNN: KNN[Array[Double]] = knn(x, y, 3) | ||
+ | val predictions: Array[Int] = x.map(KNN.predict) | ||
+ | val f1Score = new FMeasure().measure(predictions, y) | ||
+ | plot(x, y, KNN) | ||
== Примечания == | == Примечания == | ||
<references/> | <references/> |
Версия 20:06, 12 января 2019
Раздел в разработке [WIP]
Содержание
Популярные библиотеки
- Breeze[1] — библиотека, которая копирует реализует идеи строения структур данных из MATLAB[2] и NumPy[3]. Breeze позволяет быстро манипулировть данными и позволяет реализовавать матричные и веторные операции, решать задачи оптимизации, обрабатывать сигналы устройств.
- Epic[4] — часть ScalaNLP, позволяющая парсить и обрабатывать текст, поддерживающая использование GPU. Так же имеет фрэймворк для предсказаний текста.
- Smpile[5] — развивающийся проект, похожий на scikit-learn[6], разработанный на Java и имеющий API для Scala. Имеет большой набор алгоритмов для решения задач классификации, регрессии, выбора фичей и другого.
- Apache Spark MLlib[7] — построенная на Spark[8] имеет большой набор алгоритмов, написанный на Scala.
- DeepLearning.scala [9] — набор инструментов для глубокого обучения[10]. Позволяет создавать динамические нейронные сети, давая возможность параллельных вычеслений.
Примеры кода
KNN
SBT зависимость:
libraryDependencies += "com.github.haifengl" %% "smile-scala" % "1.5.2"
Пример классификации датасета и вычисления F1 меры[11] используя smile.classification.knn[12]:
import smile.classification._ import smile.data._ import smile.plot._ import smile.read import smile.validation.FMeasure
val toy: AttributeDataset = read.table("iris.csv", delimiter = ",", response = Some((new NumericAttribute("class"), 2))) val x: Array[Array[Double]] = toy.x() val y: Array[Int] = toy.y().map(_.toInt) val KNN: KNN[Array[Double]] = knn(x, y, 3) val predictions: Array[Int] = x.map(KNN.predict) val f1Score = new FMeasure().measure(predictions, y) plot(x, y, KNN)