sklearn.metrics.classification_report分类模型评估
sklearn.metrics.classification_report()模型评估的一种,输出一个报告
sklearn.metrics.classification_report(y_true, y_pred, labels=None, target_names=None, sample_weight=None, digits=2, output_dict=False)
参数说明
- y_true:1 维数组,真实数据的分类标签
- y_pred:1 维数组,模型预测的分类标签
- labels:列表,需要评估的标签名称
- target_names:列表,指定标签名称
- sample_weight:1 维数组,不同数据点在评估结果中所占的权重
- digits:评估报告中小数点的保留位数,如果 output_dict=True,此参数不起作用,返回的数值不作处理
- output_dict:若真,评估结果以字典形式返回
返回
每个分类标签的精确度,召回率和 F1-score。
精确度:precision,正确预测为正的,占全部预测为正的比例,TP / (TP+FP)
召回率:recall,正确预测为正的,占全部实际为正的比例,TP / (TP+FN)
F1-score:精确率和召回率的调和平均数,2 * precision*recall / (precision+recall)
同时还会给出总体的微平均值,宏平均值和加权平均值。
微平均值:micro average,所有数据结果的平均值
宏平均值:macro average,所有标签结果的平均值
加权平均值:weighted average,所有标签结果的加权平均值
在二分类场景中,正标签的召回率称为敏感度(sensitivity),负标签的召回率称为特异性(specificity)
from sklearn.datasets import load_iris from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import classification_report from sklearn.model_selection import train_test_split # 鸢尾花数据集 iris = load_iris() X = iris.data y = iris.target # [0, 1, 2] 标签转换为名称 ['setosa' 'versicolor' 'virginica'] y_labels = iris.target_names[y] # 数据集拆分为训练集与测试集 X_train, X_test, y_train, y_test = train_test_split(X, y_labels, test_size=0.2) # 使用训练集训练模型 clf = RandomForestClassifier(n_estimators=100) clf.fit(X_train, y_train) # 使用测试集预测结果 y_pred = clf.predict(X_test) # 生成文本型分类报告 print(classification_report(y_test, y_pred))
输出如下:
precision recall f1-score support setosa 1.00 1.00 1.00 11 versicolor 0.83 0.83 0.83 6 virginica 0.92 0.92 0.92 13 accuracy 0.93 30 macro avg 0.92 0.92 0.92 30 weighted avg 0.93 0.93 0.93 30
生成字典类分类报告
# 生成字典型分类报告 report = classification_report(y_test, y_pred, output_dict=True) for key, value in report["setosa"].items(): print(f"{key:10s}:{value:10.2f}")
参考:https://www.cnblogs.com/jfdwd/p/11046694.html
分类:
sklearn
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人