1.大多数学习算法都有参数需要设定,参数的配置不同,学得的模型的性能不同。
2.对每种参数配置都训练出模型,然后把对应最好模型的参数作为结果,这样的考虑基本是正确的
有些参数是实数范围内取值, 不能穷举。 因此对每种参数都训练出来是不可能的,现实中常用的做法,是对每个参数选定一个范围和变化的步长 -- 如在 实数范围[0,0.2] 步长选0.05 则有 0 0.05 0.1 0.15 0.2 这5中可能的参数取值。
进行这样的折中以后调参数依旧很困难, 当有3个参数的时候 所有的情况就是 5^3 = 125 , 即有125个模型需要训练。
3. 为什么要调参,又要将数据集D 划分为 训练集S 和测试集T 由测试误差估计泛化误差?
为了选择合适的算法, 和合适的参数配置, 选择完成后用数据集D重新训练模型, 然后提交给用户。 (得到最终模型)