编写分类性能度量的函数 my_metrics(y,y_predict), 要求(不使用 sklearn)返 回准确度、精确率、召回率和 F1 score。
时间: 2024-11-06 10:23:24 浏览: 25
ANN.zip_sklearn_sklearn ANN_skleran ann_神经网络 分类
5星 · 资源好评率100%
你可以编写一个名为 `my_metrics` 的函数,用于计算分类任务的四个基本度量标准:准确度、精确率、召回率和F1分数。这些度量通常用于评估模型的表现,特别是在不平衡数据集上。下面是一个简单的Python实现:
```python
def confusion_matrix(y_true, y_pred):
tp = 0
tn = 0
fp = 0
fn = 0
for i in range(len(y_true)):
if y_true[i] == y_pred[i]:
if y_true[i] == 1:
tp += 1
else:
tn += 1
else:
if y_true[i] == 1:
fp += 1
else:
fn += 1
return tp, tn, fp, fn
def accuracy(tp, tn, fp, fn):
total = tp + tn + fp + fn
return tp / total
def precision(tp, fp):
return tp / (tp + fp)
def recall(tp, fn):
return tp / (tp + fn)
def f1_score(precision, recall):
return 2 * ((precision * recall) / (precision + recall))
def my_metrics(y_true, y_pred):
tp, tn, fp, fn = confusion_matrix(y_true, y_pred)
acc = accuracy(tp, tn, fp, fn)
pr = precision(tp, fp)
rc = recall(tp, fn)
fscore = f1_score(pr, rc)
return acc, pr, rc, fscore
# 示例使用
y_true = [0, 1, 1, 0, 0, 1]
y_pred = [0, 1, 0, 0, 1, 1]
metrics = my_metrics(y_true, y_pred)
```
在这个函数中,我们首先计算混淆矩阵,然后分别计算准确度、精确率、召回率和F1分数。注意,这个实现假设了二分类问题,并且0代表负类,1代表正类。
阅读全文