sklearn 手写体识别
采取sklearn自带的手写体数据集
train_test_split 数据划分时参数设置
stratify 保证了训练集与测试集的数据的类型(或者可以说是数据的成分)一致,也是按比例划分的。
这点非常关键,就像你训练时全部都是数学题,上考场考的是语文题,这不是白训练么。
这个参数对于我模型的提升非常大,最大为0.2,可以跑到0.99
from sklearn.neural_network import MLPClassifier from sklearn.datasets import load_digits from sklearn.model_selection import train_test_split iris = load_digits() x = iris['data'] y = iris['target'] x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2,stratify=y) clf = MLPClassifier() clf.fit(x_train, y_train) result = clf.score(x_test, y_test) print("使用默认参数时") print("模型评分:%10f"%result)
使用默认参数时 模型评分: 0.955556
神经元个数影响分析
调整神经元个数,看看对于模型有何影响。 因为数据的长度是64,所以我对神经元个数的调整是以64为基数做缩放的
clf = MLPClassifier(hidden_layer_size