# 使用GridSearchCV进行最优参数搜索
param_grid = {
# 模型隐层数量
'hidden_layer_sizes': [(10, ), (15, ), (20, ), (5, 5)],
# 激活函数
'activation': ['logistic', 'tanh', 'relu'],
# 正则化系数
'alpha': [0.001, 0.01, 0.1, 0.2, 0.4, 1, 10]
}
mlp = MLPClassifier(max_iter=1000)
# 选择roc_auc作为评判标准,4折交叉验证,n_jobs=-1使用多核CPU的全部线程
gcv = GridSearchCV(estimator=mlp, param_grid=param_grid,
scoring='roc_auc', cv=4, n_jobs=-1)
gcv.fit(scaled_train_data, train_target)
输出最优参数的模型的情况。
# 输出最优参数下模型的得分
print(gcv.best_score_)
# 输出值为0.9258018987136855
# 输出最优参数下模型的参数
print(gcv.best_params_)
# 输出参数值为{'alpha': 0.01, 'activation': 'tanh', 'hidden_layer_sizes': (5, 5)}
# 使用指定数据集输出最优模型预测的平均准确度
print(gcv.score(scaler_test_data, test_target))
# 输出值为0.9169384823390232
模型的roc_auc最高得分为0.92,即该模型下的ROC曲线下面积为0.92。
较之前的0.9149,提高了一点点。
模型的最优参数,激活函数为relu类型,alpha为0.01,隐藏层节点数为15个。
模型的预测平均准确率为0.9169,较之前的0.8282,提高了不少。
<上一页 3