如何在不硬编码的情况下将目标名称添加到sklearn的classificaiton报告中

2024-05-19 06:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在我开发人工智能模型的过程中,标签可能会在培训期间发生变化。有时,我甚至会使用pickle转储编码器,然后重新使用它。我正在使用sklearn的分类报告来评估模型分数。文件中说:

target_names: list of strings

    Optional display names matching the labels (same order).

所以我应该按匹配的顺序传递一个参数。但长度和标签可能会改变交叉变换。所以我不能像target_names=["class1", "class2", ...]那样传递它。如何在没有硬编码的情况下自动执行此accross培训


Tags: 文件of模型targetnames过程报告分类
1条回答
网友
1楼 · 发布于 2024-05-19 06:46:24
le = LabelEncoder()
data = le.fit_transform(data)
...

对于这种情况,这行代码应始终准确地传递目标名称:

c_report = classification_report(y_true=y_true, y_pred=y_preds, target_names=le.inverse_transform(list(range(len(label_encoder.classes_)))))

list(range(len...创建一个类似[0, 1, ...]的列表,其中包含类的数量。和inverse_transform,嗯,将类反变换为相应的标签,例如0>;狮子或其他任何东西

p.S.这是I Q&;A我自己的问题。我刚刚想出了这个解决方案,并想与大家分享

相关问题 更多 >

    热门问题