可视化
模块函数¶
为了使用本模块中的函数,请按如下方式导入 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_truth
或predictions
。 - 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_truth
或predictions
。 - 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 中指定的每个指标(选项包括 f1
、precision
、recall
、accuracy
),此可视化生成一条线图,绘制模型置信度的阈值与指定 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_name
、test_stats_per_model
和 model_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_model
和 model_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 的次要版本发布时发生变化。