测试数据集的成本,即Jtest(θ){J}_{test}(\theta)Jtest(θ)是评估模型准确性的最直观的指标,Jtest(θ){J}_{test}(\theta)Jtest(θ)值越小说明模型预测出来的值与真实值差异越小,对新数据的预测准确性就越好。需要特别注意,用来测试模型准确性的测试数据集,必须是模型“没见过”的数据。
这就是为什么,要把数据集分成训练数据集和测试数据集。一般原则是按照8:2或7:3来划分,然后用训练数据集来训练模型,训练出模型参数后再使用测试数据集来测试模型的准确性,根据模型的准确性来评价模型的性能。
可以思考一个问题:为什么要确保模型没有见过测试数据集?
那么,我们要如何计算测试数据集的误差呢?简单地说,就是用测试数据集和训练出来的模型参数代入相应的成本函数里,计算测试数据集的成本。
针对前面介绍的线性回归算法,可以使用下面的公式计算测试数据集的误差,其中m是测试数据集的个数:
Jtest(θ)=12m∑i=0m(hθ(x(i))−y(i))2{J}_{test}(\theta)=\frac{1}{2m}\sum^{m}_{i=0}({h}_{\theta}({x}^{(i)})-{y}^{(i)})^2Jtest