Изменения

Перейти к: навигация, поиск

Примеры кода на Scala

2951 байт добавлено, 19:36, 20 января 2019
Примеры кода
==Примеры кода==
===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)
===Линейная регрессия===
Sbt зависимость:
===Долгая краткосрочная память===
Освновная статья: [[Долгая краткосрочная память]]<sup>[на 30.12.18 не создан]</sup>.
[https://github.com/IlyaHalsky/neerc-wiki-ml-scala/blob/master/lstm/GravesLSTMCharModellingExample.scala Пример реализации LSTM] на основе DeepLearning4j<ref>[https://deeplearning4j.org/ DeepLearning4j]</ref> и ND4J<ref>[https://deeplearning4j.org/docs/latest/nd4j-overview ND4J]</ref>
Основная статья: [[Обработка естественного языка]].
[https://github.com/IlyaHalsky/neerc-wiki-ml-scala/blob/master/nlp/TrainViveknSentiment.scala Пример реализации алгоримтма NLP] на основе Apache Spark ML<ref>[https://spark.apache.org/docs/latest/ml-guide.html Apache Spark MLlib]</ref>===Метрический классификатор и метод ближайших соседей===Освновная статья: [[Метрический классификатор и метод ближайших соседей]].===Метод опорных векторов===Освновная статья: [[Метод опорных векторов]]<sup>[на 5.01.19 не создан]</sup>. SBT зависимость: libraryDependencies += "com.github.haifengl" %% "smile-scala" % "1.5.2"Пример классификации датасета и вычисления F1 меры<ref>[https://en.wikipedia.org/wiki/F1_score F1 мера]</ref> используя smile.classification.svm<ref>[https://haifengl.github.io/smile/classification.html#svm Smile, SVM]</ref>: import smile.classification._ import smile.data._ import smile.plot._ import smile.read import smile.validation.FMeasure  val iris: AttributeDataset = read.table("iris.csv", delimiter = ",", response = Some((new NumericAttribute("class"), 2))) val x: Array[Array[Double]] = iris.x() val y: Array[Int] = iris.y().map(_.toInt) val SVM = svm(x, y, new GaussianKernel(8.0), 100) val predictions: Array[Int] = x.map(SVM.predict) val f1Score = new FMeasure().measure(predictions, y) plot(x, y, SVM)===Дерево решений и случайный лес===Освновная статья: [[Дерево решений и случайный лес]]<sup>[на 5.01.19 не создан]</sup>. SBT зависимость: libraryDependencies += "com.github.haifengl" %% "smile-scala" % "1.5.2"Пример классификации датасета и вычисления F1 меры<ref>[https://en.wikipedia.org/wiki/F1_score F1 мера]</ref> используя smile.classification.cart<ref>[https://haifengl.github.io/smile/classification.html#cart Smile, Decision Trees]</ref>: import smile.classification._ import smile.data._ import smile.plot._ import smile.read import smile.validation.FMeasure  val iris: AttributeDataset = read.table("iris.csv", delimiter = ",", response = Some((new NumericAttribute("class"), 2))) val x: Array[Array[Double]] = iris.x() val y: Array[Int] = iris.y().map(_.toInt) val dt: DecisionTree = cart(x, y, 1000) val predictions: Array[Int] = x.map(dt.predict) val f1Score = new FMeasure().measure(predictions, y) plot(x, y, dt)===Байесовская классификация===Освновная статья: [[Байесовская классификация]]<sup>[на 7.01.19 не создан]</sup>. SBT зависимость: libraryDependencies += "com.tsukaby" %% "naive-bayes-classifier-scala" % "0.2.0"Пример классификации используя smile.classification.cart<ref>[https://github.com/tsukaby/naive-bayes-classifier-scala Naive bayes classifier, Scala]</ref>: // Создание модели val bayes = new BayesClassifier[String, String]() // Задание соотвествия категория - слово bayes.learn("technology", "github" :: "git" :: "tech" :: "technology" :: Nil) bayes.learn("weather", "sun" :: "rain" :: "cloud" :: "weather" :: "snow" :: Nil) bayes.learn("government", "ballot" :: "winner" :: "party" :: "money" :: "candidate" :: Nil) // Тестовые примеры val unknownText1 = "I use git".split(" ") val unknownText2 = "Today's weather is snow".split(" ") val unknownText3 = "I will vote for that party".split(" ") // Классификация println(bayes.classify(unknownText1).map(_.category).getOrElse("")) // technology println(bayes.classify(unknownText2).map(_.category).getOrElse("")) // weather println(bayes.classify(unknownText3).map(_.category).getOrElse("")) // government
== Примечания ==
<references/>
Анонимный участник

Навигация