如果参加一个比赛,我们会在模型训练的时候将数据分成训练集和开发集。模型提交后,比赛方会提供测试集对结果进行预测。
一般来说我们训练集上的模型评分会在86 ~ 88%左右,开发集上的评分为82 ~ 84%,但是到了实际的测试集上,模型评分可能只有72%左右。
技巧来了:
1、一般来说测试集的数据是不带标签的,但是测试集依然有特征X。
2、我们都不考虑训练集和测试集的目标Y,人为创建一列目标值Z,将训练集中的Z都设为0,将测试集的目标Z都设为1。
3、寻找测试集的X和Z之间的映射。
4、根据这个X和Z之间的映射,使用训练集中的X预测Z,结果肯定是组0,1向量。
5、将预测值为1的数据提出来,作为我的开发集(用来验证我们模型的数据集合),剩下预测为0的数据作为训练集。在这个基础上对我的训练数据进行调优。
这是一个在不做任何特征的情况下对模型调优的一个技巧,一般可以将模型在真实环境中的评分提高一点点。大概72%提高到74%左右。
为什么?实际上我们做训练的目的是为了找一找比赛中人家提供给我们的训练数据和真实数据,哪些长得比较像。将更像真实测试数据的样本放到开发集中作为调参的标准,从而能够提高最终的评分。虽然没有什么科学依据,但是确实比较有效,不登大雅之堂。
网友评论