为什么要交叉验证随机状态数?

数据挖掘 Python scikit-学习 毫升 随机算法
2021-10-02 23:10:53

仍在学习机器学习,我偶然发现了一个我无法理解的 kaggle(链接)。

这是第 72 和 73 行:

parameters = {'solver': ['lbfgs'], 
              'max_iter': [1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000 ], 
              'alpha': 10.0 ** -np.arange(1, 10), 
              'hidden_layer_sizes':np.arange(10, 15), 
              'random_state':[0,1,2,3,4,5,6,7,8,9]}
clf = GridSearchCV(MLPClassifier(), parameters, n_jobs=-1)

如您所见,该random_state参数经过了 10 个值的测试。

这样做有什么意义?

如果一个模型在 some 上表现更好random_state,那么在其他模型上使用这个特定参数是否有意义?

1个回答

我个人认为用不同的随机种子优化模型的一般想法不是一个好主意。在花时间研究随机初始化的影响之前,您可以担心、调整和比较建模过程的许多其他更重要的方面。

话虽如此,如果您只想测试模型权重的随机初始化对最终验证指标的影响,这可能是一种方法。与我上面的观点相反。如果您可以针对不同的随机种子(其他条件相同:所有其他参数相等)显示最终模型的性能不同,则可能表明它们要么是模型不一致,要么是代码中的错误。如果使用不同的随机种子运行,我不会期望一个经过良好验证的模型会给出截然不同的结果,所以如果确实如此,它会告诉我正在发生一些奇怪的事情!