当我在sklearn的文档中查找random -state参数时,我发现了这一点:
random_state:int或RandomState 用于随机抽样的伪随机数发生器状态。
我不太清楚它是什么。
不同分类器的准确度显着变化取决于我在随机状态参数上写的数字。这是为什么?我应该设置哪个号码?
这是我第一次参加机器学习项目。
答案 0 :(得分:3)
设置random_state
参数可确保每次运行代码时以完全相同的方式拆分数据。当您想要比较不同模型的准确性(例如,不同的算法或附加特征,或两者)时,这种做法很重要:如果您在测试新方法时以不同的方式改变套牌,您如何知道增加或减少准确性是由于您对模型所做的更改,而不是由于使用稍微不同的列车和测试数据集?
至于选择random_state
参数的数量:这取决于您。一些实验使用不同的参数值,并查看模型表现最佳的random_state
值。这实际上取决于您的应用:这是您正在开发的生产规模的机器学习模型,还是数据科学挑战的模型?在前一种情况下,它应该不重要。在后一种情况下,我认识的人完全调整他们的模型然后开始尝试不同的random_state
参数来提高他们的准确性。我不一定同意这种做法,因为它似乎是另一种过度拟合的形式(见here}。我通常选择100
因为这个数字对我来说很有趣 - 它背后真的没有逻辑有些人选择42
,其他人1
等等。
查看更详细的示例here。