跳到内容

可视化

模块函数


为了使用本模块中的函数,请按如下方式导入 visualize

import ludwig
from ludwig import visualize

学习曲线

ludwig.visualize.learning_curves(
  train_stats_per_model,
  output_feature_name=None,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  callbacks=None
)

显示模型指标在训练集和验证集上的 Epoch 变化情况。

对于每个模型及其每个输出特征和指标,它都会生成一条线图,显示该指标在训练集和验证集上的训练 Epoch 期间的变化情况。

输入参数

  • train_stats_per_model (List[dict]): 包含每个模型训练统计数据的字典列表。
  • output_feature_name (Union[str, None], default: None): 用于可视化的输出特征名称。如果为 None,则使用所有输出特征。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • callbacks (list, default: None): ludwig.callbacks.Callback 对象的列表,提供了连接到 Ludwig 管道的钩子。

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


比较性能

ludwig.visualize.compare_performance(
  test_stats_per_model,
  output_feature_name=None,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

为每个总体指标生成模型比较条形图可视化。

对于每个模型(在 test_statistics 和 model_names 的对齐列表中),它会在条形图中生成条形,每个条形对应于指定 output_feature_name 在 test_statistics 文件中可用的一个总体指标。

输入参数

  • test_stats_per_model (List[dict]): 包含评估性能统计数据的字典。
  • output_feature_name (Union[str, None], default: None): 用于可视化的输出特征名称。如果为 None,则使用所有输出特征。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

示例用法

model_a = LudwigModel(config)
model_a.train(dataset)
a_evaluation_stats, _, _ = model_a.evaluate(eval_set)
model_b = LudwigModel.load("path/to/model/")
b_evaluation_stats, _, _ = model_b.evaluate(eval_set)
compare_performance([a_evaluation_stats, b_evaluation_stats], model_names=["A", "B"])

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


从概率比较分类器性能

ludwig.visualize.compare_classifiers_performance_from_prob(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit=0,
  top_n_classes=3,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

从概率生成模型比较条形图可视化。

对于每个模型,它会在条形图中生成条形,每个条形对应于根据指定 model_names 的预测概率即时计算的一个总体指标。

输入参数

  • probabilities_per_model (List[np.ndarray]): 实验概率文件的路径
  • ground_truth (pd.Series): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • top_n_classes (List[int]): 包含要绘制的类别数量的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


从预测结果比较分类器性能

ludwig.visualize.compare_classifiers_performance_from_pred(
  predictions_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

从预测结果生成模型比较条形图可视化。

对于每个模型,它会在条形图中生成条形,每个条形对应于根据指定 model_names 的预测结果即时计算的一个总体指标。

输入参数

  • predictions_per_model (List[str]): 实验预测文件路径。
  • ground_truth (pd.Series): 真实值
  • metadata (dict): 特征元数据字典。
  • output_feature_name (str): 要可视化的输出特征名称。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


比较分类器子集性能

ludwig.visualize.compare_classifiers_performance_subset(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  top_n_classes,
  labels_limit,
  subset,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

从训练子集生成模型比较条形图可视化。

对于每个模型,它会在条形图中生成条形,每个条形对应于根据指定 model_names 的概率预测结果即时计算的一个总体指标,仅考虑完整训练集的一个子集。获取子集的方式是使用 top_n_classes 和 subset 参数。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • top_n_classes (List[int]): 包含要绘制的类别数量的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • subset (str): 指定子集过滤类型的字符串。有效值包括 ground_truthpredictions
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


比较分类器随 k 变化的性能

ludwig.visualize.compare_classifiers_performance_changing_k(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  top_k,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

生成线图,显示当 k 从 1 变化到 top_k 时的 Hits@K 指标。

对于每个模型,它会生成一条线图,显示当 k 从 1 变化到 top_k 时,指定 output_feature_name 的 Hits@K 指标(如果模型在预测的前 k 个结果中产生了正确结果,则认为该预测正确)。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • top_k (int): 在排名列表中考虑的元素数量。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


比较分类器多类别多指标性能

ludwig.visualize.compare_classifiers_multiclass_multimetric(
  test_stats_per_model,
  metadata,
  output_feature_name,
  top_n_classes,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

显示模型在指定 output_feature_name 上的精确率、召回率和 F1 分数。

对于每个模型,它会生成四张图表,显示模型在指定 output_feature_name 上的多个类别上的精确率、召回率和 F1 分数。

输入参数

  • test_stats_per_model (List[dict]): 包含评估性能统计数据的字典列表。
  • metadata (dict): 训练期间创建的中间预处理结构,包含输入数据集的映射关系。
  • output_feature_name (Union[str, None]): 用于可视化的输出特征名称。如果为 None,则使用所有输出特征。
  • top_n_classes (List[int]): 包含要绘制的类别数量的列表。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


比较分类器预测结果

ludwig.visualize.compare_classifiers_predictions(
  predictions_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示两个模型在各自 output_feature_name 预测结果上的比较。

输入参数

  • predictions_per_model (List[list]): 包含指定 output_feature_name 的模型预测结果列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


双阈值置信度可视化 (2D)

ludwig.visualize.confidence_thresholding_2thresholds_2d(
  probabilities_per_model,
  ground_truths,
  metadata,
  threshold_output_feature_names,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

显示两个输出特征名称的置信度阈值数据覆盖率 vs 准确率。

第一个图显示了几条半透明线。它们总结了由 confidence_thresholding_2thresholds_3d 显示的 3D 曲面,该曲面以两个 threshold_output_feature_names 的预测置信度阈值作为 x 轴和 y 轴,以数据覆盖率百分比或准确率作为 z 轴。每条线代表数据覆盖率曲面投影到准确率曲面上的一个切片。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[List[np.array], List[pd.Series]]): 包含真实数据
  • metadata (dict): 特征元数据字典
  • threshold_output_feature_names (List[str]): 包含用于可视化的两个输出特征名称的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


双阈值置信度可视化 (3D)

ludwig.visualize.confidence_thresholding_2thresholds_3d(
  probabilities_per_model,
  ground_truths,
  metadata,
  threshold_output_feature_names,
  labels_limit,
  output_directory=None,
  file_format='pdf'
)

显示两个输出特征名称的 3D 置信度阈值数据覆盖率 vs 准确率。

该图显示了由 confidence_thresholding_2thresholds_3d 显示的 3D 曲面,该曲面以两个 threshold_output_feature_names 的预测置信度阈值作为 x 轴和 y 轴,以数据覆盖率百分比或准确率作为 z 轴。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[List[np.array], List[pd.Series]]): 包含真实数据
  • metadata (dict): 特征元数据字典
  • threshold_output_feature_names (List[str]): 包含用于可视化的两个输出特征名称的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


置信度阈值可视化

ludwig.visualize.confidence_thresholding(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在增加阈值时的准确率和数据覆盖率。

对于每个模型,它会生成一对线,指示模型在增加对指定 output_feature_name 预测概率的阈值(x 轴)时的准确率和数据覆盖率。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


置信度阈值数据覆盖率 vs 准确率可视化

ludwig.visualize.confidence_thresholding_data_vs_acc(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在置信度阈值数据覆盖率 vs 准确率上的比较。

对于每个模型,它会生成一条线,指示模型在增加对指定 output_feature_name 预测概率的阈值时的准确率和数据覆盖率。与 confidence_thresholding 不同的是,它使用两个轴而不是三个,不显示阈值,而是将覆盖率作为 x 轴。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


置信度阈值数据覆盖率 vs 准确率子集可视化

ludwig.visualize.confidence_thresholding_data_vs_acc_subset(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  top_n_classes,
  labels_limit,
  subset,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在数据子集上的置信度阈值数据覆盖率 vs 准确率的比较。

对于每个模型,它会生成一条线,指示模型在增加对指定 output_feature_name 预测概率的阈值时的准确率和数据覆盖率,仅考虑完整训练集的一个子集。获取子集的方式是使用 top_n_classes 和 subset 参数。与 confidence_thresholding 不同的是,它使用两个轴而不是三个,不显示阈值,而是将覆盖率作为 x 轴。

如果 subset 的值是 ground_truth,则只有真实类别在前 n 个最频繁类别中的数据点才会被视为测试集,并且会显示保留的数据点占原始数据集的百分比。如果 subset 的值是 predictions,则只有模型预测的类别在前 n 个最频繁类别中的数据点才会被视为测试集,并且会显示每个模型保留的数据点占原始数据集的百分比。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • top_n_classes (List[int]): 包含要绘制的类别数量的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • subset (str): 指定子集过滤类型的字符串。有效值包括 ground_truthpredictions
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


二分类阈值 vs 指标可视化

ludwig.visualize.binary_threshold_vs_metric(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  metrics,
  positive_label=1,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在指定 output_feature_name 上的置信度与指标的关系。

对于 metrics 中指定的每个指标(选项包括 f1precisionrecallaccuracy),此可视化生成一条线图,绘制模型置信度的阈值与指定 output_feature_name 的指标之间的关系。如果 output_feature_name 是类别特征,则 positive_label(指定为数字编码值)指示被视为正类的类别,所有其他类别被视为负类。要了解类别与数字编码值之间的关联,请查看 ground_truth_metadata JSON 文件。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • metrics (List[str]): 要显示的指标('f1''precision''recall''accuracy')。
  • positive_label (int, default: 1): 正类的数字编码值。
  • model_names (List[str], default: None): 用于作为标签的模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (None): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


ROC 曲线

ludwig.visualize.roc_curves(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  positive_label=1,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示指定模型中输出特征的 ROC 曲线。

此可视化生成一条线图,绘制指定输出特征名称的 ROC 曲线。如果输出特征名称是类别特征,positive_label 指示哪个类别被视为正类,所有其他类别将被视为负类。positive_label 是类别特征的数字编码值。数字值可以通过训练元数据 JSON 文件中捕获的类别与整数之间的关联来确定。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • positive_label (int, default: 1): 正类的数字编码值。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


从测试统计结果生成 ROC 曲线

ludwig.visualize.roc_curves_from_test_statistics(
  test_stats_per_model,
  output_feature_name,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

显示指定模型输出的二分类 output_feature_name 的 ROC 曲线。

此可视化使用 output_feature_nametest_stats_per_modelmodel_names 参数。output_feature_name 需要是二分类特征。此可视化生成一条线图,绘制指定 output_feature_name 的 ROC 曲线。

输入参数

  • test_stats_per_model (List[dict]): 包含评估性能统计数据的字典。
  • output_feature_name (str): 用于可视化的输出特征名称。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


校准度 (1 对其余)

ludwig.visualize.calibration_1_vs_all(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  top_n_classes,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在指定 output_feature_name 上的预测概率。

对于每个类别或(如果指定了 top_k)前 k 个最频繁的类别,它会根据指定 output_feature_name 的预测概率即时生成两张图表。

第一个图是校准曲线,显示了将当前类别视为真实类别、所有其他类别视为错误类别时的预测校准度,为每个模型(在概率和模型名称的对齐列表中)绘制一条线。

第二个图显示了将当前类别视为真实类别、所有其他类别视为错误类别时的预测分布,为每个模型(在概率和模型名称的对齐列表中)绘制分布曲线。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • top_n_classes (list): 包含要绘制的类别数量的列表。
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (List[str], default: None): 用于作为标签的模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

字符串

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


多类别校准度

ludwig.visualize.calibration_multiclass(
  probabilities_per_model,
  ground_truth,
  metadata,
  output_feature_name,
  labels_limit,
  model_names=None,
  output_directory=None,
  file_format='pdf',
  ground_truth_apply_idx=True
)

显示模型在指定 output_feature_name 的每个类别上的预测概率。

输入参数

  • probabilities_per_model (List[numpy.array]): 模型概率列表。
  • ground_truth (Union[pd.Series, np.ndarray]): 真实值
  • metadata (dict): 特征元数据字典
  • output_feature_name (str): 输出特征名称
  • labels_limit (int): 数字编码标签值的上限。数据集中高于 labels_limit 的数字编码标签值被认为是“稀有”标签。
  • model_names (List[str], default: None): 用于作为标签的模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'
  • ground_truth_apply_idx (bool, default: True): 是否在 np.vectorize 中使用 metadata['str2idx']

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


混淆矩阵

ludwig.visualize.confusion_matrix(
  test_stats_per_model,
  metadata,
  output_feature_name,
  top_n_classes,
  normalize,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

显示模型在每个 output_feature_name 上的预测混淆矩阵。

对于每个模型(在 test_statistics 和 model_names 的对齐列表中),它会为 test_statistics 中包含混淆矩阵的每个 output_feature_name 生成混淆矩阵热力图。top_n_classes 的值将热力图限制在前 n 个最频繁的类别。

输入参数

  • test_stats_per_model (List[dict]): 包含评估性能统计数据的字典。
  • metadata (dict): 训练期间创建的中间预处理结构,包含输入数据集的映射关系。
  • output_feature_name (Union[str, None]): 用于可视化的输出特征名称。如果为 None,则使用所有输出特征。
  • top_n_classes (List[int]): 顶部类别数量或包含要绘制的顶部类别数量的列表。
  • normalize (bool): 混淆矩阵中是否对行进行归一化的标志。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


频率 vs F1 分数

ludwig.visualize.frequency_vs_f1(
  test_stats_per_model,
  metadata,
  output_feature_name,
  top_n_classes,
  model_names=None,
  output_directory=None,
  file_format='pdf'
)

显示每个模型在指定 output_feature_name 上的预测统计数据。

对于每个模型(在 test_stats_per_modelmodel_names 的对齐列表中),生成指定 output_feature_name 的预测统计图表。

第一个图是一张线图,一个 x 轴代表不同的类别,两个垂直轴分别用橙色和蓝色表示。橙色轴表示类别的频率,橙色线显示其趋势。蓝色轴表示该类别的 F1 分数,蓝色线显示其趋势。x 轴上的类别按 F1 分数排序。

第二个图结构与第一个图相同,但轴颠倒了,x 轴上的类别按频率排序。

输入参数

  • test_stats_per_model (List[dict]): 包含评估性能统计数据的字典。
  • metadata (dict): 训练期间创建的中间预处理结构,包含输入数据集的映射关系。
  • output_feature_name (Union[str, None]): 用于可视化的输出特征名称。如果为 None,则使用所有输出特征。
  • top_n_classes (List[int]): 顶部类别数量或包含要绘制的顶部类别数量的列表。
  • model_names (Union[str, List[str]], default: None): 用于作为标签的模型名称或模型名称列表。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,则图表将显示在窗口中
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


超参数优化报告

ludwig.visualize.hyperopt_report(
  hyperopt_stats_path,
  output_directory=None,
  file_format='pdf'
)

生成超参数优化报告,为每个超参数创建一个图表显示结果分布,并额外创建一张图表显示成对超参数之间的交互。

输入参数

  • hyperopt_stats_path (str): 超参数优化结果 JSON 文件路径。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,图表将显示在窗口中。
  • file_format (str, default: 'pdf'): 输出图表的文件格式 - 'pdf''png'

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。


超参数优化 HiPlot 可视化

ludwig.visualize.hyperopt_hiplot(
  hyperopt_stats_path,
  output_directory=None
)

生成超参数优化的平行坐标图,创建一个 HTML 文件,并可选择创建一个供 hiplot 读取的 CSV 文件。

输入参数

  • hyperopt_stats_path (str): 超参数优化结果 JSON 文件路径。
  • output_directory (str, default: None): 保存图表的目录。如果未指定,图表将显示在窗口中。

返回值

  • return (Non): (None)

DeveloperAPI: 此 API 可能会在 Ludwig 的次要版本发布时发生变化。