Perceptron-Based Ranking (PRanking) 是 ordinal regression 中的著名算法,PRanking 的基础结构可以看做是一个单层感知机(使用w做线性变换),同时还有K个阈值b_1 \leq b_2\leq \cdots \leq b_{K-1}

x表示样本,当w \cdot x落入到错误的区间内,则需要调整wb使其正确,更新方法可见图中描述。

算法过程如下:

PRank库:

#pip install sklearn-contrib-lightning

from lightning.ranking import PRank
import numpy as np

model = PRank()
X = np.array([[1,1,1],[2,2,2]])
y = np.array([4,5])
model.fit(X,y)
model.predict(X)
#Out: array([4, 5])