Примеры кода на 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)

Примечания