Advertisement
Guest User

Untitled

a guest
Jul 7th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.99 KB | None | 0 0
  1.   def fit[U <: Regressor](X: Data,
  2.                           y: Array[Double],
  3.                           iterations: Int,
  4.                           intercept: Boolean,
  5.                           seed: Int = this.seed,
  6.                           constructor: (Double,
  7.                                         Option[Array[Double]],
  8.                                         Option[Double],
  9.                                         Boolean,
  10.                                         Int) => U): U = {
  11.     // Create local data array if intercept is used
  12.     val _X: Data = if (intercept) addIntercept(X) else X
  13.  
  14.     val initializer: Random = new Random()
  15.     initializer.setSeed(seed)
  16.  
  17.     val init: Weights = Array.fill[Double](_X.head.length)(initializer.nextDouble)
  18.  
  19.     def fitStream(it: Weights): Stream[Weights] = it #:: fitStream(descend(it, _X, y))
  20.  
  21.     def beta: Weights = fitStream(init).drop(iterations).head
  22.  
  23.     constructor(alpha, Some(beta), Some(loss(beta, X, y)), intercept, seed)
  24.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement