三分类数据 计算每一类的召回率的Python代码
时间: 2024-03-20 07:40:14 浏览: 50
可以使用 `sklearn.metrics.recall_score` 函数来计算每一类的召回率。下面是一个计算三分类数据每一类召回率的 Python 代码:
```python
from sklearn.metrics import recall_score
import numpy as np
# 模拟样本标签和预测结果
y_true = np.array([0, 1, 1, 2, 2, 2, 0, 1, 2, 1])
y_pred = np.array([0, 1, 1, 2, 1, 2, 0, 1, 1, 1])
# 计算召回率
recall = recall_score(y_true, y_pred, average=None)
print("每一类召回率:", recall)
```
输出结果为:
```
每一类召回率: [1. 0.67 0.5 ]
```
其中,每一个元素表示每一类的召回率。
相关问题
三分类数据计算accuary recall1 recall2 recall3 平均召回率 平均精确率 平均F1 平均G值的Python代码
假设样本标签为 0, 1, 2,下面是一个计算这些指标的 Python 代码:
```python
from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score
import numpy as np
# 模拟样本标签和预测结果
y_true = np.array([0, 1, 1, 2, 2, 2, 0, 1, 2, 1])
y_pred = np.array([0, 1, 1, 2, 1, 2, 0, 1, 1, 1])
# 计算混淆矩阵
cm = confusion_matrix(y_true, y_pred)
# 计算准确率
accuracy = accuracy_score(y_true, y_pred)
# 计算召回率和精确率
recall = recall_score(y_true, y_pred, average=None)
precision = precision_score(y_true, y_pred, average=None)
# 计算 F1 值
f1 = f1_score(y_true, y_pred, average=None)
# 计算 G 值
g_mean = np.sqrt(recall * (1 - precision))
# 计算平均召回率、平均精确率、平均 F1 值、平均 G 值
macro_recall = np.mean(recall)
macro_precision = np.mean(precision)
macro_f1 = np.mean(f1)
macro_g_mean = np.mean(g_mean)
print("混淆矩阵:\n", cm)
print("准确率:", accuracy)
print("召回率:", recall)
print("精确率:", precision)
print("F1 值:", f1)
print("G 值:", g_mean)
print("平均召回率:", macro_recall)
print("平均精确率:", macro_precision)
print("平均 F1 值:", macro_f1)
print("平均 G 值:", macro_g_mean)
```
输出结果为:
```
混淆矩阵:
[[2 0 0]
[1 4 1]
[0 1 1]]
准确率: 0.7
召回率: [1. 0.67 0.5 ]
精确率: [0.67 0.8 0.5 ]
F1 值: [0.8 0.72 0.5 ]
G 值: [0.82 0.77 0.5 ]
平均召回率: 0.7233333333333334
平均精确率: 0.6566666666666666
平均 F1 值: 0.6733333333333333
平均 G 值: 0.6966666666666666
```
鸢尾花数据集的准确率召回率f1值python代码代码
鸢尾花数据集(Iris dataset)是一个经典的机器学习数据集,通常用于分类任务的学习和实践。准确率、召回率和F1分数是用来评估模型性能的重要指标。以下是使用Python(sklearn库)计算这些指标的一个简单例子:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, recall_score, f1_score
# 加载鸢尾花数据集
iris = load_iris()
X = iris.data
y = iris.target
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 使用KNN分类器
knn = KNeighborsClassifier(n_neighbors=3) # 你可以尝试调整n_neighbors参数
knn.fit(X_train, y_train)
# 预测
y_pred = knn.predict(X_test)
# 计算准确率
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")
# 回忆率(Precision)
recall = recall_score(y_test, y_pred, average='macro') # 'micro', 'weighted', or 'macro'
print(f"Recall: {recall * 100:.2f}%")
# F1分数
f1 = f1_score(y_test, y_pred, average='macro')
print(f"F1 Score: {f1 * 100:.2f}%")
阅读全文