楼主: zzy19980
1562 2

[问答] 关于机器学习循环调参效果请教下兄弟们 [推广有奖]

  • 0关注
  • 0粉丝

本科生

89%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0.0177
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1668 点
帖子
40
精华
0
在线时间
145 小时
注册时间
2019-4-13
最后登录
2022-7-13

楼主
zzy19980 发表于 2022-2-21 16:32:31 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
# r2_dict = {}
# r2_list = []
# for i in range(1, 33):
#     for j in range(1, 17):
#         for k in range(1, 9):
#             ann = MLPRegressor(hidden_layer_sizes=(i, j, k), activation='relu', solver='adam',
#                                alpha=0.001,
#                                max_iter=10000)
#             ann.fit(X_train, Y_train)
#             y_test_pred = ann.predict(X_test)
#             r2 = 1 - sum((Y_test - y_test_pred) ** 2) / sum(Y_test ** 2)
#             r2_list.append(r2)
#             r2_dict[r2] = (i, j, k)
#             print('神经网络3', (i, j, k), r2_dict[max(r2_list)], max(r2_list))
请教下各位大佬,第一个代码循环求出最大的r2后,在第二个代码单独求解为什么结果不一样呢,设置了随机数 np.random.seed(12345)
ann3 = MLPRegressor(hidden_layer_sizes=(2, 10, 1), activation='relu', solver='adam', alpha=0.001, max_iter=10000)
ann3.fit(X_train, Y_train)
y_test_pred = ann3.predict(X_test)
r2 = 1 - sum((Y_test - y_test_pred) ** 2) / sum(Y_test ** 2)
print(r2)
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:机器学习 Activation activatio predict regress

沙发
正直者之死 发表于 2022-2-22 15:21:48
个人感觉是第一段网格搜索时MLPRegressor初始化的权重和偏置矩阵和第二段代码不一致的原因
可以考虑向MLPRegressor中传入相同的random_state参数试试
而且最后找到的每层神经元数也怪怪的,一般后层的神经元数不会多于之前的层...再补充一下,如果只是需要最优的参数和模型,完全可以在搜索过程中保存下来,仅在有比当前更好的结果时进行更新~

藤椅
zzy19980 发表于 2022-2-25 19:29:46
正直者之死 发表于 2022-2-22 15:21
个人感觉是第一段网格搜索时MLPRegressor初始化的权重和偏置矩阵和第二段代码不一致的原因
可以考虑向MLP ...
会是数据有问题么哈哈,不过我在每次循环后,都设置了np.random.seed()后结果就一样了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-13 15:54