机器学习——神经网络(python)手写数字识别

一、定义

一直以来,人们都认为神经网络是模仿生物体的神经网络设计而成的。er

神经网络既可以用于回归,也可以用于分类,但在实际应用中常用于分类。基于神经网络的深度学习因在图像识别和语音识别等领域表现优异而广为容人之。

神经元是神经网络算法的基本单元,它本质上是一种函数,接受外部刺激并根据输入产生对应的输出。它的内部可以看作线性函数和激活函数的组合,线性函数运算结果传递给激活函数,最终产生该神经元的输出结果。

二、代码

from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split

digits = load_digits()
x = digits.data    #获得数据集中的输入
y = digits.target  #0-9
x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.25,random_state=33)

# 我们通常将原始数据按照比例分割为“测试集”和“训练集”
# test_size:样本占比,如果是整数的话就是样本的数量
# random_state:是随机数的种子

#数据标准化操作

from sklearn.preprocessing import StandardScaler
ss = StandardScaler()
x_test_copy = x_test.copy()
# fit_transform()先拟合数据,再标准化
x_train = ss.fit_transform(x_train)
print(len(x_train))
# transform()数据标准化
x_test = ss.transform(x_test)

from sklearn.neural_network import MLPClassifier
mclf = MLPClassifier()
mclf.fit(x_train,y_train)          #用训练器数据拟合分类器模型
y_predict = mclf.predict(x_test)   #用训练器数据X拟合分类器模型并对训练器数据X进行预测

print('准确率为:',mclf.score(x_test,y_test)) #准确率

#详细评估

from sklearn.metrics import  classification_report
print(classification_report(y_test,y_predict,target_names = digits.target_names.astype(str)))
n = int(input('查看第n个答案,请输入n:'))
plt.figure(figsize=(8,8))
plt.imshow(x_test_copy[n].reshape(8,8))
plt.show()
# print(x_test_copy[1].reshape(8,8))
print( '预测结果:',y_test[n])

猜你喜欢

转载自blog.csdn.net/maggieyiyi/article/details/123920044