学习排序其实也是有监督学习的一部分,和多分类和回归模型相比,我们并不是要预估一条样本的概率,而是预估很多个样本点的顺序.排序经常被用于搜索引擎,还有一些购物建议.在搜索框里搜任何一条query,top...回到XGBoost,有3个目标函数,Point Wise,Pairwise和Listwise,这3种方法都可以用来排序,每个方法都有其优缺点.对于pointwise而言,每次仅仅考虑一个样本,预估的是每一条和...首先要明确的是训练数据,训练数据必须包含一列query id,该id下指明哪些样本要放到一起进行排序.同时特别需要注意的是,在训练集和测试集进行拆分时,需要按query id进行分割,如果直接随机拆分,...(['rank'])]
y_test = test_data.loc[:, test_data.columns.isin(['rank'])]
我们的数据格式应该如下所示,如果数据长这样,那么我们上述代码中的...但是pairwise也有缺点:
1.只能给出排序,并不能给出有多好,好多少.比如在搜索场景下,可能一条与query相关的doc都没,pointwise可以通过卡阈值得到这个信息,但是rank方式就不能区分