Uma dúvida, talvez tenha se esquecido ou eu não entendi.
Comparando Com o SK-learn
o professor chamou o LinearRegression
lr = LinearRegression()
Treina o lr
lf.fit(X[:, 1:], y)
Mas quando vai avaliar o modelo do sklearn para compara-lo, é usada a função prever própria.
r2_score(y, prever(theta, x))
Treinar o modelo não fez diferença, no meu entendimento.