How should I improve my Vectorized Gradient descent linear regression model?
It seems like number of iterations is very small compare to learning rate. (50 vs 0.001). The optimizer can't converge when we look at the fitted line plot. 

Try to increase number of iterations, it will help you. You can check this beautiful work and my another answer about the problem.