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
T
in the case of a single-variable/feature observation - Of type
Array[T]
for observations with more than...