文献中提出了一种多方案半监督回归方法(Multischeme Semisupervised regression approach, MSSRA), 其核心由任意数量的回归器组成, 这些预测结果通过最小范围标准进行过滤, 以区分最可信的未标记实例, 并结合默认的自训练方案.
论文地址: A multi-scheme semi-supervised regression approach
期刊: Pattern Recognition Letters 2019
任务: 回归
算法
bRgeS(base regressors) 表示 b b b 个基础回归器. 从初始训练集 D \mathbf{D} D 开始, 使用标记比率 R R R 对数据进行标记. bRegS 以 self-training 方案进行部署, 目的是利用未标记集 U \mathbf{U} U, U ⊆ D \mathbf{U} \subseteq \mathbf{D} U⊆D 扩充初始标记集 L \mathbf{L} L, L ⊆ D \mathbf{L} \subseteq \mathbf{D} L⊆D. 自训练算法(self-training)执行的最大迭代次数被限制为有限的次数(MaxIter). 注意, 为保证 L \mathbf{L} L 子集的一致性, 要进一步限制对应 U \mathbf{U} U 对 L \mathbf{L} L 子集的扩大. 因此, 设置以百分比衡量的参数 T T T, 以控制每次迭代中新接受的实例的百分比与初始 L \mathbf{L} L 的大小的关系. 这意味着在每个生成的算法的启动过程中, T T T 的值都会被评估一次.
在进入自训练的迭代过程之前, 基础回归器 bRegS 会在初始 L \mathbf{L} L 数据集上进行训练. 随后, 将 bRegS 的基本模型应用在 U \mathbf{U} U 的子集, 每个实例会生成一个预测矩阵. 该矩阵记为 M p r M_{pr} Mpr, 里面包括了属于 U \mathbf{U} U 子集的所有实例的预测. 此外, 初始 L \mathbf{L} L 和 U \mathbf{U} U 将分别称为 L 0 \mathbf{L}^0 L0 和 U 0 \mathbf{U}^0 U0 , 而指针 i t e r iter iter 将在每次迭代结束时指向当前标记子集和未标记的子集. 假设数据集有 n n n 个实例, 每个实例包含 l l l 个特征, 那么 L \mathbf{L} L, U \mathbf{U} U, M p r M_{pr} Mpr 的维度可以分别表示为 n L × l n_{L} \times l nL×l, n U × l n_U \times l nU×l, n U × b n_U \times b nU×b, 并且满足 n L + n U = n n_{L}+ n_{U}=n nL+nU=n, n L ≪ n U n_L \ll n_U nL≪nU.
接下来执行
f
d
e
c
i
s
i
o
n
f_{decision}
fdecision, 通过最可信赖的实例对
M
p
r
M_{pr}
Mpr 进行排序, 以便稍后进行提取并潜在地增强该决策的预测能力. 因此, 需要一个度量来对其实例进行排序, 以评估每个实例的
b
b
b 个记录的输出. 这里选择(Minimum Range of predicted Labels, MRL, 预测标签的最小范围)用于
f
d
e
c
i
s
i
o
n
f_{decision}
fdecision 决策. 这是一种计算软度量, 有利于
b
b
b 个单独回归器输出最接近预测的实例. MRL 简单表示如下:
M
R
L
i
=
m
a
x
(
M
p
r
i
)
−
m
i
n
(
M
p
r
i
)
,
1
≤
i
≤
n
U
MRL^i={\rm max}(M_{pr}^i) - {\rm min}(M_{pr}^i), 1 \leq i \leq n_U
MRLi=max(Mpri)−min(Mpri),1≤i≤nU
对
M
p
r
M_{pr}
Mpr 进行排序后, 只选择前
T
T
T ∗ size(
L
0
\mathbf{L}^0
L0) 的记录, 因此, 根据前面提到的标准, 选择的该数据集由具有最高"自信"预测(
X
M
C
P
{\rm X_{MCP}}
XMCP)的实例集组成. 要返回到自训练循环, 最后要做的是为所有
X
M
C
P
{\rm X_{MCP}}
XMCP 实例添加单个标签的注释:
L
a
b
e
l
i
=
∑
j
=
1
b
M
p
r
j
b
Label^i=\frac{\sum_{j=1}^bM_{pr}^j}{b}
Labeli=b∑j=1bMprj
自训练结束循环时, 将
X
M
C
P
{\rm X_{MCP}}
XMCP 实例从
U
i
t
e
r
\mathbf{U}^{iter}
Uiter 子集中删除, 并添加到
L
i
t
e
r
\mathbf{L}^{iter}
Liter 子集中. 循环的下一个迭代将从在新的
L
i
t
e
r
\mathbf{L}^{iter}
Liter 子集上重新训练的 bRegS 上开始, 因为它的基数已经增加了
X
M
C
P
{\rm X_{MCP}}
XMCP 包含的记录数量, 此后, 该过程继续执行, 直到满足停止标准为止(超出 MaxIter 或
U
i
t
e
r
\mathbf{U}^{iter}
Uiter 大小等于零). 最终, 自训练过程退出, 并且在最后一次迭代期间存储增强的标记集(
L
L
a
s
t
I
t
e
r
\mathbf{L}^{LastIter}
LLastIter). 在
L
L
a
s
t
I
t
e
r
\mathbf{L}^{LastIter}
LLastIter 上选择并训练最终回归器
F
F
F 以用于未知测试用例的预测. 显而易见, 两个不同的回归器 bRegS 和
F
F
F 的要求是个体预测的协调, 并分别在足够高的精度和快速响应之间进行有效的权衡.
复杂度分析
该论文中, SMOReg
, Random Forest
和 M5
构成了 3bRegS. 除了最后一个
F
F
F 在最后一次迭代后由 bRegS 的响应反馈外, 所有内部学习器都可以并行执行. 因此, 我们可以在迭代循环期间计算相应时间复杂度的主导项, 并假设这是上限, 再乘以迭代次数, 而不是添加每个回归器和每个迭代的单个序列复杂度. 此外, 由于
b
b
b 足够小, 因此
O
(
b
∗
log
(
b
)
+
2
)
O(b * \log(b) + 2)
O(b∗log(b)+2) 可以忽略不计. 因此, 它不会包含在最终表达式中.
- SMOReg. SMOReg 的时间复杂度取决于格式化支持向量的基数, 其数量受超参数 C C C 限制. 只要 C C C 值很小, SMOReg 的需求就倾向于收敛于其二次分量 O ( n 2 ) O(n^2) O(n2), 而在相反的情况下 O ( n 3 ) O(n^3) O(n3) 占主导地位.
- Random Forest Regressor. 其最坏情况复杂性可以是 O ( n t r e e s ∗ q ∗ n 2 ∗ l o g ( n ) ) O(ntrees*q*n^2*log(n)) O(ntrees∗q∗n2∗log(n)), 其中 ntrees 是生成的树的数目, q q q 是描述随机选择的特征的最大数目.
- M5 Regressor. M5 回归器生成一棵回归树, 在每个节点拟合一个多元线性回归模型. 这意味着需要 O ( m ∗ n ∗ log ( n ) ) O(m∗n∗\log(n)) O(m∗n∗log(n)), 而无需计算内部回归模型的构造. 这可能产生 O ( m 3 ∗ n 2 ) O(m^3∗n^2) O(m3∗n2) 的时间.
因为在 SMOReg 的情况下 n 3 n^3 n3 的项占大头. 由于在迭代循环之后, 还构造了 F F F 回归器, 因此必须考虑其复杂性. 因此, 最终的复杂度顺序可以计算为: O ( M a x I t e r ∗ n 3 + m 3 ∗ n 2 ) O(MaxIter ∗ n^3 + m^3 ∗ n^2) O(MaxIter∗n3+m3∗n2), 通常的情况下 m ≪ n m \ll n m≪n, 并且不保留任何常数项.
MSSRA 算法流程
- 使用 L 0 \mathbf{L}^0 L0 训练基础回归器 bRegS.
- 定义一个决策函数
f
d
e
c
i
s
i
o
n
f_{decision}
fdecision, 该函数用于: 循环输入矩阵
M
p
r
M_{pr}
Mpr, 并为矩阵的每个实例计算
M
R
L
MRL
MRL; 再根据
M
R
L
MRL
MRL 对矩阵进行排序.
M
R
L
MRL
MRL 计算如下:
M R L i = m a x ( M p r i ) − m i n ( M p r i ) , 1 ≤ i ≤ n U MRL^i={\rm max}(M_{pr}^i) - {\rm min}(M_{pr}^i), 1 \leq i \leq n_U MRLi=max(Mpri)−min(Mpri),1≤i≤nU - 步骤1. 让 bRegS 对 U i t e r \mathbf{U}^{iter} Uiter 进行预测, 并将结果存储到 M p r M_{pr} Mpr 中, 并使用 f d e c i s i o n f_{decision} fdecision 对 M p r M_{pr} Mpr 进行排序.
- 步骤2. 从
M
p
r
M_{pr}
Mpr 中选择前
T
T
T ∗ size(
L
0
\mathbf{L}^0
L0) 的记录, 并将它们存储到矩阵
X
M
C
P
{\rm X_{MCP}}
XMCP 里, 并为这些记录打上标签
L
a
b
e
l
i
Label^i
Labeli, 即 bRegS 中所有回归器对该标签预测的平均值.
L
a
b
e
l
i
Label^i
Labeli 计算如下:
L a b e l i = ∑ j = 1 b M p r j b Label^i=\frac{\sum_{j=1}^bM_{pr}^j}{b} Labeli=b∑j=1bMprj - 步骤3. 对于 X M C P {\rm X_{MCP}} XMCP 中的实例, 将其从 U i t e r \mathbf{U}^{iter} Uiter 中移除, 并添加到 L i t e r \mathbf{L}^{iter} Liter 中, 并使用 L i t e r \mathbf{L}^{iter} Liter 重新训练 bRegS.
- 重复操作步骤1-步骤3, 直到满足迭代退出条件.
- 最终得到 L L a s t I t e r \mathbf{L}^{LastIter} LLastIter, 并用其训练回归器 F F F 去预测其他无标签的测试数据.