超参数是指在机器学习中在算法训练开始前预设的一些参数值,这些参数值一般无法通过算法本身学会更改,比如KNN算法中的Manhattan distance(曼哈顿距离)、Euclidean distance(欧式距离),K-Means算法中的簇数N,深度学习的学习率lr;与其相对的就是那些在算法中可以通过训练学到的参数,比如权值权值w、偏置b等。超参数的确定可以通过交叉验证的方法。
数据集可以分为训练集、验证集、测试集。1)训练集是用于学习的样本,用于确定机器学习或者深度学习中的各项系数,一般占所有样本的50%—60%或者更多;2)验证集是用来调整分类器参数的样本集,在训练过程中,网络模型会立刻在验证集上进行验证,我们会同步观察到这个验证集数据在模型上的表现如何,损失函数是否会下降,准确率是否在提高一般占所有样本的25—20%左右;3)测试集用于测试模型的能力(主要是分类能力),一般占20%或更少。
如图所示为例可将训练集分成5份分别作为验证集,构成如表所示的交叉验证。
为什么分成5份都要分别作为验证集验证呢,这是因为防止单独某一份的数据有问题,比如过于简单,导致预测结果偏高,再比如某份样本数据存在误差值导致预测结果偏高,所以可以交叉验证,五次迭代去平均值。建立模型的时候一般都是通过交叉验证的方式来选择参数,是真正的拿数据说话,而不是根据经验值设置。比如可以通过交叉验证来判断KNN算法的K值取多少模型的准确率最高。