TabularPredictor.fit_pseudolabel¶
- TabularPredictor.fit_pseudolabel(pseudo_data: DataFrame, max_iter: int = 3, return_pred_prob: bool = False, use_ensemble: bool = False, fit_ensemble: bool = False, fit_ensemble_every_iter: bool = False, **kwargs)[源码]¶
[高级] 使用额外数据 (pseudo_data) 来尝试提高模型质量。伪标签数据 (pseudo_data) 可以包含或不包含 label 列。
如果 pseudo_data 已标记,则模型将使用 pseudo_data 作为额外的训练数据进行重新拟合。如果是 bagging,bagging 集成的每个折叠将使用所有 pseudo_data 作为额外的训练数据。pseudo_data 绝不会用于验证/评分。
如果数据未标记,例如提供批量测试数据但没有真实标签,则会利用转导学习。在转导学习中,现有预测器将对 pseudo_data 进行预测,以识别置信度最高的行(例如,预测概率高于 95% 的所有行)。然后,这些行将被赋予置信度最高的类别的标签,成为伪标签。接着,这些伪标签行将用作拟合模型时的额外训练数据。然后,如果 max_iter > 1,此过程可以重复进行,使用新模型对未使用的 pseudo_data 行进行预测,以查看是否有新行应该在下一迭代中用作训练数据。如果数据未标记,我们建议指定 return_pred_prob=True 以获取 pseudo_data 上的正确预测概率,而不是调用 predictor.predict_proba(pseudo_data)。
- 例如
- 原始拟合:10000 行 train_data,使用 10 折 bagging
Bagging 折叠模型将使用 9000 行 train_data 进行训练,1000 行用于验证。
- 使用 5000 行已标记的 pseudo_data 调用 fit_pseudolabel。
然后使用 _PSEUDO 后缀再次拟合 Bagging 折叠模型。10000 行 train_data 使用 10 折 bagging + 5000 行 pseudo_data。Bagging 折叠模型将使用 9000 行 train_data + 5000 行 pseudo_data = 14000 行进行训练,1000 行用于验证。
注意:将使用与原始拟合相同的验证行,以便验证得分可以直接比较。
- 或者,使用 5000 行未标记的 pseudo_data 调用 fit_pseudolabel。
预测器对 pseudo_data 进行预测,找到 965 行具有高置信度预测的行。将这 965 行的真实标签设置为置信度最高的预测标签。然后使用 _PSEUDO 后缀拟合 Bagging 折叠模型。10000 行 train_data 使用 10 折 bagging + 965 行已标记的 pseudo_data。Bagging 折叠模型将使用 9000 行 train_data + 965 行 pseudo_data = 9965 行进行训练,1000 行用于验证。
注意:将使用与原始拟合相同的验证行,以便验证得分可以直接比较。
使用新的伪标签预测器对剩余的 pseudo_data 重复该过程。在此示例中,假设有 188 行新的 pseudo_data 具有高置信度预测。现在总的已标记 pseudo_data 行数为 965 + 188 = 1153。然后重复该过程,最多进行 max_iter 次:例如 10000 行 train_data 使用 10 折 bagging + 1153 行 pseudo_data。如果未观察到验证分数提高,则会触发提前停止。
注意:pseudo_data 仅用于 L1 模型。对 L2+ 模型的支持尚未实现。L2+ 模型将只使用原始的 train_data。
- 参数:
pseudo_data (
pd.DataFrame
) – 要合并到训练中的额外数据。允许使用预标记的测试数据。如果没有标签,则伪标签算法将预测并筛选出要合并到训练中的行max_iter (int, default = 3) – 允许的最大伪标签迭代次数
return_pred_prob (bool, default = False) – 返回伪标签生成的保留预测概率。如果 test_data 已标记,则返回模型的预测概率。
use_ensemble (bool, default = False) – 如果为 True,将使用集成伪标签算法。如果为 False,将仅使用最佳模型进行伪标签算法。
fit_ensemble (bool, default = False) – 如果为 True,将使用最佳模型的组合拟合加权集成模型。除非另有指定,加权集成的拟合将在拟合完成后进行。如果为 False,则不会对使用伪标签训练的模型和未使用伪标签训练的模型进行加权集成拟合。
fit_ensemble_every_iter (bool, default = False) – 如果为 True,则对伪标签算法的每次迭代都拟合加权集成模型。如果为 False 且 fit_ensemble 为 True,则将在所有伪标签训练完成后进行拟合。
**kwargs – 如果预测器尚未拟合,则 kwargs 参数适用于函数 ‘fit’ 和 ‘fit_extra’:请参考
TabularPredictor.fit()
的参数文档。请参考TabularPredictor.fit_extra()
的参数文档。如果预测器已拟合,则 kwargs 参数适用于 ‘fit_extra’:请参考TabularPredictor.fit_extra()
的参数文档。
- 返回:
self – 返回 self,它是 TabularPredictor 的 Python 类
- 返回类型: