MLP———交叉验证、集成测试

用scikit-learn的MLP模型来训练,从5折交叉验证中选出最优的那组模型,最终再把这组模型应用到测试集上面挑选出出最好的模型。

对于MLP的参数,这次探究的就是
hidden_layer_size:隐藏层的数量以及神经元的数量
max_iter:最大迭代次数
alpha:学习率
solver:激活函数

hidden_layer_size的候选参数:
[[100, 100], [100, 150], [100, 200], [150, 100], [200, 100],[150, 150], [200, 150], [200, 200]]

max_iter:
[300] #本次只选300(拟合速度快,效果也过得去)

solver:[‘adam’]

alpha:[0.0001, 0.001, 0.01, 0.1, 0.2, 0.5]

5折交叉验证:把一份数据分成5分数据,其中4份数据作为训练集,一份作为测试集,这次是将一份数据分成10组,每一组都是一份训练一份验证。
实现交叉验证我是用嵌套循环来遍历参数和数据集,每一轮训练验证以后出(同一份参数遍历完10组数据算一轮)模型得分(也就是一轮会有5个分数)。

全部参数遍历完以后,取出平均分最高的一组参数,这组参数就是交叉验证得出的最佳参数。

接下来就是进行集成测试
将得分最高的那组参数的所有模型(也就是有5个模型),把测试集丢进去分别算出模型得分,然后通过投票产生结果(也就是取最高分的那个模型)。

猜你喜欢

转载自blog.csdn.net/Big_Head_/article/details/80214300
MLP