Rewrote SGD to better separate logic. Use the initial t0 from scikit-learn. Seems to give better results, but visualization is probably wrong. Need to scale the values to the [0;1] range feature cell by feature cell for it to make sense I think.