机器学习1-神经网络-手写数字识别-调库-2020-12-01

博客聚焦于机器学习领域,利用调库方式,借助神经网络实现手写数字识别,展现了信息技术在图像识别方面的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

机器学习1-神经网络-手写数字识别-调库

# 某手写数字数据集有10000个样本,每个样本的特征储存在imagesData.txt中,特征数目784,
# 样本的标签文件是labelsData.txt中,label从0-9分成10类。请完成该数据集的分类识别。
# 要求:可以用自己写的神经网络函数代码,也可以调用相关神经网络库函数。库函数导入,数据集的加载,适当缩放特征;
# 将数据集随机分成训练集和测试集;
# 调用神经网路相关库函数,或者自己编写的神经网络函数;
# 建立适当的神经网络模型,包括神经网络结构,各种相关参数等;
# 用训练集完成模型的训练,并计算在训练集上的准确率Accuracy及输出;
# 用以上训练模型计算测试集的Precision,Recall和F1分数及输出
# (二)评分要求
# 1.库函数导入,数据集的加载,适当缩放特征(5分)
# 2.将数据集随机分成训练集和测试集(5分)
# 3.调用神经网络相关库函数,或者自己编写的神经网络函数(5分)
# 4.建立适当的神经网络模型,包括神经网络结构,各种相关参数等(5分)
# 5.用训练集完成模型的训练,并计算在训练集上的准确率Accuracy及输出(5分)
# 6.用以上训练模型计算测试集的Precision,Recall和F1分数及输出(5分)
from sklearn.neural_network import MLPClassifier
import numpy as np
from sklearn.metrics import confusion_matrix,classification_report,f1_score,recall_score,precision_score

x = np.loadtxt("imagesData.txt",delimiter=',')
y = np.loadtxt("labelsData.txt",delimiter=',')

# 特征缩放
x =(x-x.min())/(x.max()-x.min())

# 洗牌
m = len(y)
np.random.seed(0)
order = np.random.permutation(m)
x = x[order]
y = y[order]

# 训练集测试集
xtrain,xtest = np.split(x,[int(0.7*m),])
ytrain,ytest = np.split(y,[int(0.7*m),])

model = MLPClassifier(activation="relu",max_iter=200,hidden_layer_sizes=(10,))
model.fit(xtrain,ytrain)
print("准确度", model.score(xtrain, ytrain))

#用以上训练模型计算测试集的Precision,Recall和F1分数及输出(5分)
print("测试集的Precision", precision_score(ytest, model.predict(xtest),average='micro'))
print("测试集召回率", recall_score(ytest, model.predict(xtest),average="micro"))
print("F1分数", f1_score(ytest, model.predict(xtest),average="micro"))

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值