源代码如下
m = X.shape[0]
for i in range(1, m+1):
# print('i={}'.format(i))
res = linear_regression_np(X[:i, :], y[:i], l=0)
tc = regularized_cost(res.x, X[:i, :], y[:i], l=0)
cv = regularized_cost(res.x, Xval, yval, l=0)
# print('tc={}, cv={}'.format(tc, cv))
training_cost.append(tc)
cv_cost.append(cv)
plt.plot(np.arange(1, m+1), training_cost, label='training cost')
plt.plot(np.arange(1, m+1), cv_cost, label='cv cost')
plt.legend(loc=1)
plt.show()
出处是黄海广对于吴恩达的机器学习的练习5
【以下回答由 GPT 生成】
根据提供的代码,图像展示的是训练误差和交叉验证误差随着训练样本数量的变化而变化的趋势。通过观察这个图像可以判断模型是出现过拟合还是欠拟合。
拟合问题涉及到训练误差和交叉验证误差之间的关系:
因此,根据提供的代码,如果训练误差和交叉验证误差都很低,且趋势相似,则可以判断模型的拟合程度较好,不是出现过拟合也不是欠拟合。其他情况需要具体的图像进行判断。
我无法在给出的代码片段中有效判断模型是否出现过拟合或者欠拟合,因为提供的代码只展示了训练误差和交叉验证误差随着训练样本数量的变化趋势,并没有给出详细的误差大小和趋势对比。所以我无法确定该图像是用来判断模型是否出现过拟合还是欠拟合。
【相关推荐】