模型评估、量化及传感器数据读取指南
立即解锁
发布时间: 2025-08-31 00:22:38 阅读量: 5 订阅数: 14 AIGC 

# 模型评估、量化及传感器数据读取指南
## 1. 评估召回率、精确率和 F 值
### 1.1 评估指标介绍
在模型评估中,召回率(Recall)、精确率(Precision)和 F 值(F-score)是重要的性能指标。
- **召回率**:量化了所有正样本(“Yes”)中被正确预测的比例,公式为:$Recall = \frac{TP}{TP + FN}$,召回率越高越好。但该指标未考虑负样本的误分类情况,可能导致模型在分类正样本时表现出色,但在分类负样本时能力不足。
- **精确率**:衡量了预测为正类(“Yes”)的样本中实际为正的比例,公式为:$Precision = \frac{TP}{TP + FP}$,同样精确率也应尽可能高。
- **F 值**:若要同时评估召回率和精确率,可使用 F 值。它通过一个公式将召回率和精确率结合起来,公式为:$F - score = 2 \cdot \frac{Recall \cdot Precision}{Recall + Precision}$,F 值越高,模型的效果越好。
### 1.2 操作步骤
在 Colab 中继续工作,按以下步骤可视化混淆矩阵并计算召回率、精确率和 F 值:
1. **使用训练好的模型预测测试数据集的输出类别**:
```python
y_test_pred = model.predict(x_test)
y_test_pred = (y_test_pred > 0.5).astype("int32")
```
上述代码使用 0.5 作为阈值对预测值进行二值化处理。若预测值大于 0.5,则转换为 1;否则转换为 0。
2. **使用 scikit-learn 计算混淆矩阵**:
```python
import sklearn
cm = sklearn.metrics.confusion_matrix(y_test,
y_test_pred)
```
这里使用 scikit-learn 库的 `confusion_matrix()` 函数,该函数接受两个参数:测试数据集的真实标签(`y_test`)和预测标签(`y_test_pred`),`cm` 变量存储混淆矩阵。
3. **以热力图形式显示混淆矩阵**:
```python
index_names = ["Actual No Snow", "Actual Snow"]
column_names = ["Predicted No Snow", "Predicted Snow"]
df_cm = pd.DataFrame(cm, index = index_names,
columns = column_names)
plt.figure(dpi=150)
sns.heatmap(df_cm, annot=True, fmt='d', cmap="Blues")
```
运行上述代码会生成一个类似于图 3.9 的热力图,从混淆矩阵可以看出样本主要分布在主对角线上,且误报(FP)比漏报(FN)多。因此,虽然该网络适合检测降雪,但可能会有一些误检测。
4. **计算召回率、精确率和 F 值性能指标**:
```python
TN = cm[0][0]
TP = cm[1][1]
FN = cm[1][0]
FP = cm[0][1]
accur = (TP + TN) / (TP + TN + FN + FP)
precis = TP / (TP + FP)
recall = TP / (TP + FN)
f_score = (2 * recall * precis) / (recall + precis)
print("Accuracy: ", round(accur, 3))
print("Recall: ", round(recall, 3))
print("Precision: ", round(precis, 3))
print("F-score: ", round(f_score, 3))
```
上述代码在输出控制台打印性能指标,结果显示模型的召回率为 0.923,表明能准确预测降雪;但精确率为 0.818,相对较低,意味着模型可能会产生一些误报。F 值为 0.867,说明召回率和精确率之间达到了平衡,模型能利用给定的输入特征准确预测降雪情况。
### 1.3 其他说明
scikit-learn 并非计算混淆矩阵的唯一方法,TensorFlow 也提供了计算混淆矩阵的工具。如需深入了解,可参考 [TensorFlow 文档](https://www.tensorflow.org/versions/r2.13/api_docs/python/tf/math/confusion_matrix)。
## 2. 使用 TensorFlow Lite 转换器对模型进行量化
### 2.1 量化原因
之前生成的 TensorFlow 模型适合共享或继续训练,但由于其高内存需求,无法用于微控制器部署。主要原因如下:
- 权重以浮点格式存储。
- 保留了推理不需要的信息。
由于目标设备存在计算和内存限制,因此需要将训练好的模型转换为更紧凑的格式。
### 2.2 TensorFlow Lite 介绍
TensorFlow Lite 是 TensorFlow 家族的一部分,由 Google 设计,旨在为智能手机或嵌入式平台等边缘设备提供高效推理。它提供了所有 TensorFlow 运算符的子集,并非所有模型都能直接导出到 TensorFlow Lite,但大多数流行架构都得到了很好的支持。
TensorFlow Lite 通过 FlatBuffers 格式提供紧凑的模型表示,还包含两个关键组件:
- **TensorFlow Lite 转换器**:用于将 TensorFlow 模型转换和优化为 TensorFlow Lite 格式,实现边缘设备的高效推理。
- **用于在目标设备上运行 TensorFlow Lite 模型的库**。
### 2.
0
0
复制全文
相关推荐









