评估¶
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¶
CECorrelationEvaluator¶
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¶
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 是不相关文档的列表。