Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def fit[U <: Regressor](X: Data,
- y: Array[Double],
- iterations: Int,
- intercept: Boolean,
- seed: Int = this.seed,
- constructor: (Double,
- Option[Array[Double]],
- Option[Double],
- Boolean,
- Int) => U): U = {
- // Create local data array if intercept is used
- val _X: Data = if (intercept) addIntercept(X) else X
- val initializer: Random = new Random()
- initializer.setSeed(seed)
- val init: Weights = Array.fill[Double](_X.head.length)(initializer.nextDouble)
- def fitStream(it: Weights): Stream[Weights] = it #:: fitStream(descend(it, _X, y))
- def beta: Weights = fitStream(init).drop(iterations).head
- constructor(alpha, Some(beta), Some(loss(beta, X, y)), intercept, seed)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement