Tri-training是一种半监督学习算法
,由Zhou和Li在2005年提出,它通过使用三个分类器
来互相验证和利用未标记数据
,从而提高学习效果。
Tri-training的基本思想是通过训练三个独立的分类器,并让它们相互协作来标记未标记的数据,以此增强各自的性能。
Tri-training算法流程:
- 初始阶段:从
标记数据集
中通过自助采样(Bootstrap)
方法创建三个不同的子数据集。
- 分类器训练:
使用这三个子数据集训练三个不同的分类器。
- 未标记数据预测:对于每一个分类器,其余两个分类器
将预测未标记数据的类别。
- 高置信度样本选择:如果两个分类器对某未标记样本的
预测结果一致
,且预测的置信度高于
某个阈值,则将此样本及其预测的标签添加到第三个分类器的训练集中。
- 分类器更新:使用
更新后
的训练集重新训练第三个分类器。 - 迭代:上述过程对三个分类器
轮流进行
,直到达到预设的停止条件,例如模型收敛或者没有更多的未标记数据可以增加置信度。
涉及的公式和解释:
在Tri-training中,通常不会直接涉及数学上的公式,但是会有一些关键的概念和阈值的设定,例如置信度阈值
(confidence threshold),用于决定是否将未标记数据
的预测结果视为可靠并加入到训练集中。
如果我们要讨论与评估分类器性能相关的公式,可以考虑以下几种常见的性能度量:
- Precision(精确率):正确预测为正例的样本占
所有预测
为正例样本的比例。 - Recall(召回率):正确预测为正例的样本占
所有实际
为正例样本的比例。 - F1 Score(F1分数):精确率和召回率的调和平均数,用于衡量分类器的准确性和完整性。
- Accuracy(准确率):分类器正确预测的样本占总样本的比例。
具体的计算公式如下:
Precision = TP TP + FP \text{Precision} = \frac{\text{TP}}{\text{TP} + \text{FP}} Precision=TP+FPTP
Recall = TP TP + FN \text{Recall} = \frac{\text{TP}}{\text{TP} + \text{FN}} Recall=TP+FNTP
F1 Score = 2 × Precision × Recall Precision + Recall \text{F1 Score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}} F1 Score=2×Precision+RecallPrecision×Recall
Accuracy = TP + TN TP + TN + FP + FN \text{Accuracy} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} Accuracy=TP+TN+FP+FNTP+TN
其中,
- TP(True Positive):真正例,即实际为正例且被预测为正例的数量。
- TN(True Negative):真反例,即实际为反例且被预测为反例的数量。
- FP(False Positive):假正例,即实际为反例但被预测为正例的数量。
- FN(False Negative):假反例,即实际为正例但被预测为反例的数量。
这些度量在评估Tri-training算法的性能时非常有用,特别是在查看算法如何处理未标记数据和改善分类器的泛化能力方面。