TabularPredictor.predict_proba_oof

TabularPredictor.predict_proba_oof(model: str = None, *, transformed=False, as_multiclass=True, train_data=None, internal_oof=False, can_infer=None) DataFrame | Series[源代码]

注意:这是高级功能,不适用于常规使用。

返回训练数据中每一行的折外 (OOF) 预测类别概率。OOF 预测概率可以提供泛化准确度的无偏估计(反映预测在新数据上的表现)。每行的预测仅使用在排除该行的数据子集上训练的模型进行。

对于类似方法,请参考带有 data=NoneTabularPredictor.predict_proba_multi()

警告:如果对非 bagged 集成模型调用此方法,将引发异常。只有 bagged 模型(如 stacker 模型)才能生成 OOF 预测。

这也意味着 refit_full 模型和蒸馏模型将引发异常。

警告:如果打算将此方法的输出与原始训练数据进行连接,请注意存在一个罕见的边缘情况问题

具有稀有类别的多类别问题,结合使用 'log_loss' 评估指标,可能迫使 AutoGluon 在训练数据中复制行以满足数据的最小类别计数。如果发生这种情况,则此方法返回的 pd.Series 的索引和行数可能与训练数据不对齐。在这种情况下,请考虑使用 predictor.load_data_internal() 获取处理后的训练数据,而不是使用原始训练数据。当未将 'log_loss' 指定为评估指标但 AutoGluon 丢弃了稀有类别时,会出现此问题的更温和版本。在这种情况下,并非所有原始训练数据行都会有 OOF 预测。建议在连接时丢弃这些行,或者通过 TabularPredictor.predict_proba() 获取缺失行的直接预测。

参数:
  • model (str (可选)) – 要获取折外预测的模型名称。默认为 None,这将使用验证集上得分最高的模型。调用 predictor.model_names() 可列出此 predictor 中的有效模型

  • transformed (bool, 默认值 = False) – 输出值是使用原始标签表示 (False) 还是内部标签表示 (True)。二元和多类别分类的内部表示是 0 到 k-1 的整数,表示 k 个可能的类别,而原始表示与拟合期间提供的标签类别相同。通常,大多数用户会希望使用原始表示,并保持 transformed=False

  • as_multiclass (bool, 默认值 = True) –

    是否将二元分类概率作为多类别分类概率返回。

    输出将包含两列,如果 transformed=False,则列名将对应于二元类别标签。列的顺序将与 predictor.class_labels 相同。

    如果为 False,输出将仅包含正类别的 1 列(通过 predictor.positive_class 获取正类别名称)。仅影响二元分类问题的输出。

  • train_data (pd.DataFrame, 默认值 = None) – 指定原始 train_data 以确保任何原始在内部被丢弃的训练行得到正确处理。如果为 None,则如果在拟合期间内部丢弃了训练行,输出将不包含所有行。如果指定了 train_datamodel 无法预测,并且内部丢弃了行,则将引发异常。

  • internal_oof (bool, 默认值 = False) – [高级选项] 返回内部 OOF 预测而不是外部 OOF 预测。内部 OOF 预测可能比 train_data 中提供的行数多或少,并且与外部数据不兼容。如果您不明白此选项的作用,请保持为 False。

  • can_infer (bool, 默认值 = None) – 仅当未指定 model 时使用。用于确定最佳模型是否必须是能够在新数据上进行预测的模型 (True)。如果为 None,则最佳模型无需能够在新数据上进行预测。

返回类型:

模型的折外训练预测概率的 pd.Seriespd.DataFrame 对象。