Time series in Scala
The majority of examples used to illustrate the different machine algorithms in the book deal with time series or sequential, time-ordered sets of observations.
Context bounds
The algorithms presented in this chapter are applied to time series with a single variable of type Double. Therefore we need a mechanism to convert implicitly a given type T to a Double. Scala provides developers with such design: context bounds [3:1]:
trait ToDouble[T] { def apply(t: T): Double }
implicit val str2Double = new ToDouble[String] {
def apply(s: String): Double = s.toDouble
}Types and operations
The Defining primitives types
section under Source code in Chapter 1, Getting Started introduced the types for time series of single variable, Vector[T], and multiple variables, Vector[Array[T]].
A time series of observations is a vector (type Vector) of observation elements:
- Of type
Tin the case of a single-variable/feature observation - Of type
Array[T]for observations with more than...