【发布时间】:2020-08-09 00:11:43
【问题描述】:
我有一个线性回归模型,我的成本函数是平方和误差函数。我已将我的完整数据集拆分为三个数据集:训练、验证和测试。我不确定如何计算训练误差和验证误差(以及两者之间的差异)。
训练误差是使用训练数据集计算的残差平方和吗?
我要问的一个例子:如果我在 Python 中执行此操作,假设我在训练数据集中有 90 个数据点,那么这是训练错误的正确代码吗?
y_predicted = f(X_train, theta) #predicted y-value at point x, where y_train is the actual y-value at x
training_error = 0
for i in range(90):
out = y_predicted[i] - y_train[i]
out = out*out
training_error+=out
training_error = training_error/2
print('The training error for this regression model is:', training_error)
【问题讨论】:
-
Mean 表示应该除以最后的样本数,而不是除以 2; scikit-learn.org/stable/modules/generated/…
-
IIRC 有时会包含除以 2,以便在计算损失梯度时被平方的导数 (2x) 抵消。但是当然这仍然缺少n的除法。
-
@xdurch0 我建议我们避免从一个明显的初学者那里就非常基本的定义提出一个非常简单的问题。即使您没记错,您所说的也仅适用于特定的上下文,并且如果 OP 从(非常)基础继续前进,将来可能会有更合适的时间来解决此类问题。
标签: python machine-learning linear-regression mean-square-error