I am enrolled in a [machine learning course][1] for machine learning where we have a lab to implement linear regression I am attempting to do it in R to get a better understanding of the material and of R for myself (i don't intend to submit this as a lab as the course doesn't use R) but am coming up against a wall My understanding of the process is as follows - User Generates a model based on the hypothesis $h_\theta(x) = \theta^TX= \theta_0x_0 +\theta_1x_1+\dots$ - Take error rate of your model by using squared error cost function, then iterate, create a new hypothesis and get the error rate of this. Continue through $n$ iterations based on the formula $J(\theta_0,\theta_1)=\frac{1}{2m}\displaystyle\sum_1^m(h_\theta(x^{(i)})−y^{(i)})^2$. - Take all the error rates you have recorded based on the cost history and use `gradient descent` to find automatically the optimal values of your hypothesis. Using the code on [R-Bloggers](http://www.r-bloggers.com/linear-regression-by-gradient-descent/) where the gradient descent is implement below based on vectors `x` and `y` # add a column of 1's for the intercept coefficient X <- cbind(1, matrix(x)) # gradient descent for (i in 1:num_iters) { error <- (X %*% theta - y) delta <- (t(X) %*% error) / length(y) theta <- theta - alpha * delta cost_history[i] <- cost(X, y, theta) theta_history[[i]] <- theta } I was wondering if people could help me tease out the logic 1. Why is the number 1 applied to the matrix `X`. Is this so that X has 2 columns so that it can be multiplied by theta - y? 2. What is the formula delta actually calculating and why is the Transpose of X being used Conceptually I think i understand the overall process but i just need to relate this back to the R code as i want to grasp the concept before proceeding to Multiple linear regression [1]: http://www.youtube.com/playlist?list=PLA89DCFA6ADACE599