评估

CrossEncoder 有自己的评估类,这些类位于 sentence_transformers.cross_encoder.evaluation 中。

CEBinaryAccuracyEvaluator

class sentence_transformers.cross_encoder.evaluation.CEBinaryAccuracyEvaluator(sentence_pairs: list[list[str]], labels: list[int], name: str = '', threshold: float = 0.5, write_csv: bool = True)[源代码][源代码]

此评估器可与 CrossEncoder 类一起使用。

它专为具有1个输出的CrossEncoders设计。它测量预测类别与黄金标签的准确性。它使用固定阈值来确定标签(0与1)。

参见 CEBinaryClassificationEvaluator,这是一个自动确定最佳阈值的评估器。

CEBinaryClassificationEvaluator

class sentence_transformers.cross_encoder.evaluation.CEBinaryClassificationEvaluator(sentence_pairs: list[list[str]], labels: list[int], name: str = '', show_progress_bar: bool = False, write_csv: bool = True)[源代码][源代码]

此评估器可以与 CrossEncoder 类一起使用。给定句子对和二进制标签(0 和 1),它计算平均精度以及最佳可能的 f1 分数

CECorrelationEvaluator

class sentence_transformers.cross_encoder.evaluation.CECorrelationEvaluator(sentence_pairs: list[list[str]], scores: list[float], name: str = '', write_csv: bool = True)[源代码][源代码]

此评估器可以与 CrossEncoder 类一起使用。给定句子对和连续分数,它计算句子对的预测分数与黄金分数之间的皮尔逊和斯皮尔曼相关性。

CEF1Evaluator

class sentence_transformers.cross_encoder.evaluation.CEF1Evaluator(sentence_pairs: list[list[str]], labels: list[int], *, batch_size: int = 32, show_progress_bar: bool = False, name: str = '', write_csv: bool = True)[源代码][源代码]

基于 CrossEncoder F1 分数的评估器,适用于二分类和多分类任务。

任务类型(二分类或多分类)由标签数组决定。对于二分类任务,返回的指标是二分类F1分数。对于多分类任务,返回的指标是宏F1分数。

参数:
  • sentence_pairs (List[List[str]]) -- 句子对列表,其中每对是一个包含两个字符串的列表。

  • labels (List[int]) -- 对应于每对句子的整数标签列表。

  • batch_size (int, optional) -- 预测的批处理大小。默认为 32。

  • show_progress_bar (bool, optional) -- 显示 tqdm 进度条。

  • name (str, optional) -- 存储结果的CSV文件的可选名称。默认为空字符串。

  • write_csv (bool, optional) -- 标志以确定是否应将数据保存到CSV文件。默认为True。

CESoftmaxAccuracyEvaluator

class sentence_transformers.cross_encoder.evaluation.CESoftmaxAccuracyEvaluator(sentence_pairs: list[list[str]], labels: list[int], name: str = '', write_csv: bool = True)[源代码][源代码]

此评估器可与 CrossEncoder 类一起使用。

它专为具有2个或更多输出的CrossEncoders设计。它衡量预测类别与黄金标签的准确性。

CERerankingEvaluator

class sentence_transformers.cross_encoder.evaluation.CERerankingEvaluator(samples, at_k: int = 10, name: str = '', write_csv: bool = True, mrr_at_k: int | None = None)[源代码][源代码]

此类评估用于重新排序任务的 CrossEncoder 模型。

给定一个查询和一个文档列表,它计算所有可能文档的分数 [query, doc_i] 并按降序排列。然后,计算 MRR@10 和 NDCG@10 来衡量排序的质量。

参数:

samples (List[Dict, str, Union[str, List[str]]) -- 必须是一个列表,每个元素的形式为:{'query': '', 'positive': [], 'negative': []}。Query 是搜索查询,positive 是相关文档的列表,negative 是不相关文档的列表。