建模与调参
参考链接
详细的代码部分可以去看链接,部分内容来自 小雨姑娘 大佬的直播
使用交叉验证选择模型
在实际操作中特征和模型是需要不断尝试改进完善的;小雨大佬的经验是使用贪心策略先选择一个简单的模型,在这个模型上进行特征工程,将特征部分做到目前想不到办法能做任何改进的时候,再用交叉验证或者根据实际情况设计验证方法选择合适的模型。
在使用训练集对参数进行训练的时候,经常会发现人们通常会将一整个训练集分为三个部分(比如mnist手写训练集)。一般分为:训练集(train_set),评估集(valid_set),测试集(test_set)这三个部分。这其实是为了保证训练效果而特意设置的。其中测试集很好理解,其实就是完全不参与训练的数据,仅仅用来观测测试效果的数据。而训练集和评估集则牵涉到下面的知识了。
因为在实际的训练中,训练的结果对于训练集的拟合程度通常还是挺好的(初始条件敏感),但是对于训练集之外的数据的拟合程度通常就不那么令人满意了。因此我们通常并不会把所有的数据集都拿来训练,而是分出一部分来(这一部分不参加训练)对训练集生成的参数进行测试,相对客观的判断这些参数对训练集之外的数据的符合程度。这种思想就称为交叉验证(Cross Validation)
根据模型在验证集上的表现,选择模型。因为不同的模型可能需要设置不同的参数,在选择模型时不用太过纠结,设置大致的参数就好。
模型调参
模型调参部分大致分为三种策略:贪心调参,网格搜索和随机搜索,以及贝叶斯调参。
其中网格搜索花费的时间较长,比较推荐尝试的时贝叶斯调参。