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)[source]¶
[高级] 使用额外的数据(pseudo_data)来尝试提高模型质量。 伪数据可以带有或不带有label列。
如果pseudo_data被标记,那么模型将使用pseudo_data作为额外的训练数据进行重新拟合。 如果进行装袋,装袋集合的每一折都将使用所有的pseudo_data作为额外的训练数据。 pseudo_data将永远不会用于验证/评分。
如果数据未标记,例如提供没有可用真实值的批量测试数据,则利用转导学习。 在转导学习中,现有的预测器将在pseudo_data上进行预测, 以识别最有信心的行(例如,所有预测概率高于95%的行)。 然后,这些行将被伪标记,给定最有信心类别的标签。 伪标记的行将用作拟合模型时的额外训练数据。 然后,如果max_iter > 1,这个过程可以重复,使用新模型在未使用的pseudo_data行上进行预测, 以查看是否有任何新行应在下一次迭代中用作训练数据。 我们建议在数据未标记时指定return_pred_prob=True,以在pseudo_data上获得正确的预测概率, 而不是调用predictor.predict_proba(pseudo_data)。
- For example:
- Original fit: 10000 train_data rows with 10-fold bagging
Bagged fold 模型将使用 9000 行 train_data 进行训练,1000 行用于验证。
- fit_pseudolabel is called with 5000 row labelled pseudo_data.
袋装折叠模型再次使用_PSEUDO后缀进行拟合。 10000行训练数据,采用10折袋装法 + 5000行pseudo_data数据。 袋装折叠模型将使用9000行train_data数据 + 5000行pseudo_data数据 = 14000行数据进行训练,1000行数据进行验证。
注意:将使用与原始拟合相同的验证行,以便验证分数可以直接比较。
- Alternatively, fit_pseduolabel is called with 5000 rows unlabelled pseudo_data.
预测器在pseudo_data上进行预测,找到965行具有高置信度的预测。 将这965行的真实值设置为最自信的预测。 然后使用_PSEUDO后缀拟合袋装折叠模型。 10000行训练数据,采用10折袋装法 + 965行标记的pseudo_data。 袋装折叠模型将使用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。
- Parameters:
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()中的参数文档。
- Returns:
self – 返回 self,这是 TabularPredictor 的一个 Python 类
- Return type: