请在以上代码中加上可视化部分,比如:画出感知机模型图,画出损失函数图像,画出预测值与实际值之间的对比图
时间: 2024-10-23 22:06:52 浏览: 16
在Python中,特别是在深度学习或机器学习项目中添加可视化部分是非常重要的。例如,对于感知机模型,你可以使用matplotlib库来创建图形:
1. **感知机模型图**:
如果你的模型是线性的,可以绘制决策边界。首先,你需要计算每个特征对应的权重和偏置,然后通过点的坐标(x, y)和它们的权重来确定分类。可以创建两个散点图,一个代表正样本,另一个代表负样本,然后画一条分割线。
```python
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
# 假设X和y是你的训练数据和标签
plt.scatter(X[y == 0, 0], X[y == 0, 1], color='red', label='Class 0')
plt.scatter(X[y == 1, 0], X[y == 1, 1], color='blue', label='Class 1')
# 绘制决策边界
decision_boundary = -(weights[0] * X[:, 0] + weights[1]) / weights[2]
plt.plot(X[:, 0][decision_boundary > X[:, 0]], decision_boundary[decision_boundary > X[:, 0]], 'k-', linewidth=2)
plt.xlabel('Feature 0')
plt.ylabel('Feature 1')
plt.legend()
```
2. **损失函数图像**:
可以使用seaborn库中的`lineplot`或`scatterplot`来展示损失随着训练迭代的变化。假设`history.history`是一个字典,包含了训练和验证集的loss。
```python
import seaborn as sns
sns.lineplot(data=dict(loss=history.history['loss'], val_loss=history.history['val_loss']))
plt.title('Loss Function Over Epochs')
```
3. **预测值与实际值对比图**:
对于二分类任务,可以使用`confusion_matrix`函数生成混淆矩阵,再转换为可视化图形。对于回归任务,通常会画出散点图并叠加拟合的曲线。
```python
from sklearn.metrics import confusion_matrix
conf_mat = confusion_matrix(y_test, y_pred)
sns.heatmap(conf_mat, annot=True, cmap='Blues')
plt.xlabel('Predicted')
plt.ylabel('Actual')
# 或者对于回归
plt.scatter(y_test, y_pred - y_test)
plt.xlabel('True Values')
plt.ylabel('Prediction Error')
```
阅读全文