In [1]:
import numpy as np
In [2]:
def learningCurve(X_treino, y_treino, X_valida, y_valida, Lambda):
'''
Função que retorna um vetor de erros para o conjunto de treinamento e conjunto de validação cruzada.
Conjunto de treinamento: X_treino, y_treino
Conjunto de validação: X_valida, y_valida
Lambda = 0
'''
theta0 = np.array([[15],[15]])
m = y_treino.size
Erro_treino = np.zeros((m, 1))
Erro_valida = np.zeros((m, 1))
for i in np.arange(m):
TR = trainLinearReg(theta0, X_treino[:i+1], y_treino[:i+1], Lambda)
Erro_treino[i] = linearRegCostFunction(TR.x, X_treino[:i+1], y_treino[:i+1], Lambda)
Erro_valida[i] = linearRegCostFunction(TR.x, X_valida, y_valida, Lambda)
return(Erro_treino, Erro_valida)