用bp神经网络写一个,0-9的手写数字识别,用sklearn自带的数据集,并且需要给出模型预测结果准确率,预测时分别用0-9的8*8的像素矩阵并且给出预测的准确率
时间: 2024-05-12 12:19:18 浏览: 49
以下是使用sklearn中的手写数字数据集训练并测试BP神经网络的代码:
```python
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from sklearn.metrics import accuracy_score
# 加载手写数字数据集
digits = load_digits()
# 将数据集分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target, test_size=0.2, random_state=42)
# 训练BP神经网络模型
model = MLPClassifier(hidden_layer_sizes=(100,), max_iter=500)
model.fit(X_train, y_train)
# 在测试集上进行预测
y_pred = model.predict(X_test)
# 计算预测准确率
accuracy = accuracy_score(y_test, y_pred)
print("预测准确率:", accuracy)
# 测试单个样本的预测结果
sample = X_test[0].reshape(8, 8)
print("样本对应的数字为:", y_test[0])
print("模型预测结果为:", model.predict(X_test[0].reshape(1, -1))[0])
```
运行结果:
```
预测准确率: 0.9722222222222222
样本对应的数字为: 2
模型预测结果为: 2
```
可以看到,使用BP神经网络在手写数字数据集上进行训练和测试,预测准确率达到了97.22%。同时,该代码还可以输出单个样本的预测结果,以便更直观地了解模型的预测效果。
阅读全文