Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.95 KB | None | 0 0
  1. sg <- function(b, m, data, LR){
  2. b_grad <- 0
  3. m_grad <- 0
  4. n <- nrow(data)
  5. result <- data.frame('b' = rep(NA, times = n),
  6. 'm' = rep(NA, times = n),
  7. 'i' = rep(NA, times = n))
  8.  
  9. for(i in 1:n){
  10. b_grad <- b_grad + -(2/n) * (data$y[i] - ((m * data$x[i]) + b))
  11. m_grad <- m_grad + -(2/n) * data$x[i] * (data$y[i] - ((m * data$x[i]) + b))
  12. new_b <- b - (LR * b_grad)
  13. new_m <- m - (LR * m_grad)
  14.  
  15. result[i,] <- cbind(new_b, new_m, i)
  16. }
  17. return(result)
  18. }
  19.  
  20. (p <- data.frame('x' = rnorm(10, 5, 1.5), 'y' = rpois(10, 2)))
  21. sg(0, 0, p, .001)
  22. sg(0, 0, p, .01)
  23. sg(0, 0, p, .02)
  24.  
  25. # enhance
  26. sg.iterate <- function(b, m, data, LR, n.iter){
  27. i.res <- data.frame('b' = b,
  28. 'm' = m,
  29. 'i' = 0)
  30. for(i in 1:n.iter){
  31. i.res <- rbind(i.res, sg(b, m, data, LR))
  32. b <- i.res$b[nrow(i.res)]
  33. m <- i.res$m[nrow(i.res)]
  34. }
  35. return(i.res)
  36. }
  37.  
  38. sg.iterate(0, 0, p, .001, 100)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement