数据导入
from keras.datasets import mnist
(X_train,Y_train),(X_test,Y_test) = mnist.load_data()
数据处理
X_train = X_train.reshape((X_train.shape[0], X_train.shape[1] * X_train.shape[2]))
X_test = X_test.reshape((X_test.shape[0], X_test.shape[1] * X_test.shape[2]))
from sklearn.preprocessing import OneHotEncoder
onehot = OneHotEncoder()
Y_train = onehot.fit_transform(Y_train.reshape(Y_train.shape[0],1))
Y_test = onehot.fit_transform(Y_test.reshape(Y_test.shape[0],1))
Y_train = Y_train.todense()
Y_test = Y_test.todense()
模型训练
from sklearn.neural_network import MLPClassifier
clf = MLPClassifier(hidden_layer_sizes=(10,10),random_state = 14)
clf.fit(X_train,Y_train)
神经网络评估
from sklearn.metrics import f1_score
Y_pred = clf.predict(X_test)
score = f1_score(y_pred = Y_pred, y_true=Y_test, average = 'macro')
print("the accuracy is {0:.1f}%".format(100*score))
from sklearn.metrics import classification_report
print(classification_report(y_pred = Y_pred, y_true=Y_test))
效果