在训练过程中,模型拟合恰好减少了错误。但是KNN会这样做吗?
减少错误只发生在改变 K 值和特征数量的情况下,不是吗?
所以训练集和测试集只是为了做下面的事情,对吧?
- 使用训练集训练模型
- 给定测试样本,模型在训练集中找到 K 近邻
- 对测试样本进行分类或回归
- 使用 MSE 或 RMSE 查找精度
在训练过程中,模型拟合恰好减少了错误。但是KNN会这样做吗?
减少错误只发生在改变 K 值和特征数量的情况下,不是吗?
所以训练集和测试集只是为了做下面的事情,对吧?
简短版本:这只是术语,但可以说 K-NN 实际上并不适合模型。
从概念上讲,K-NN 是一种惰性学习模型。这意味着,从某种意义上说,在新实例到达进行分类或必须预测值之前没有拟合(取决于您是使用 K-NN 进行分类还是回归,两者都是可能的)。即便如此,在我看来,使用“拟合模型”这个词还是有点不合时宜。
我认为您的困惑在于“模型拟合恰好可以减少错误”这句话。不,不是的。模型拟合只是获取一个模型(例如,一系列数据分布)并通过找到更好地描述数据的参数来拟合模型(从而从该家族中选择一个成员)。
也许你认为神经网络的时代是“合适的”?那里发生的是一系列可能的模型(网络中每个权重的所有可能值),拟合模型只是找到最佳可能值。神经网络以迭代方式这样做的事实并不意味着拟合是一个迭代过程,拟合是最终结果。
所以训练集和测试集只是为了做下面的事情,对吧?
嗯,对每个模型都是如此,是的。训练和测试集分离的唯一目的是根据所选指标评估模型。归根结底,您选择部署的最终模型,无论是懒惰的还是急切的,都将使用所有可用数据(或在某些情况下,它的一部分/转换),而不仅仅是训练集。