采用 Sklearn 中自带的手写数字数据集构建神经网络模型,并计算其预测准确率。的详细代码
时间: 2024-10-27 13:06:10 浏览: 35
机器学习大作业-基于神经网络的MNIST手写数字识别源代码+数据集+文档说明
5星 · 资源好评率100%
在Scikit-Learn中,可以使用`digits`数据集来构建一个简单的神经网络模型。这里我们使用`MLPClassifier`(多层感知机分类器),它是一个基于梯度下降的前馈神经网络。以下是完整的代码示例:
```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
import numpy as np
# 加载手写数字数据集
digits = load_digits()
X = digits.data # 数据特征
y = digits.target # 数字标签
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 创建一个三层的MLP分类器(隐藏层节点数为64)
mlp = MLPClassifier(hidden_layer_sizes=(64,), activation='relu', max_iter=500)
# 训练模型
mlp.fit(X_train, y_train)
# 预测
predictions = mlp.predict(X_test)
# 计算预测准确率
accuracy = accuracy_score(y_test, predictions)
print(f"模型预测准确率为: {accuracy * 100:.2f}%")
# 输出模型参数和性能
print("Model parameters:")
for param_name, param_value in sorted(mlp.get_params().items()):
print(f"{param_name}: {param_value}")
```
这个例子使用了ReLU激活函数,并设置了一个最大迭代次数为500次的限制。注意,实际项目中可能需要调整这些参数以优化模型性能。
阅读全文