2017-03-24 92 views
-1

当我寻找sklearn文档中的任意通态参数,这就是我发现:与上sklearn数据分割的随机状态参数的问题

random_state:int或RandomState 伪随机数生成器状态用于随机抽样。

我不太明白它是什么。

不同分类器的准确性会根据我在随机状态参数上编写的数字而显着变化。这是为什么?我应该设置哪个号码?

这是我第一次参加机器学习项目。

+1

([随机状态Scikit学会(伪随机数)]的可能的复制http://stackoverflow.com/questions/28064634/random-state- pseudo-random-numberin-scikit-learn) –

回答

2

设置random_state参数可确保您每次运行代码时都以完全相同的方式拆分数据。当您想要比较不同模型的精确度(例如不同的算法或附加特征,或两者)时,这种做法很重要:如果您在测试新方法时以不同方式对套牌进行洗牌,您如何知道增加或减少准确度是由于您对模型所做的更改,而不是由于使用略有不同的训练和测试数据集所致?

至于为您的random_state参数选择编号:由您决定。一些试验参数的不同值,并查看模型的最佳性能值。这取决于您的应用程序:这是您正在开发的生产规模机器学习模型,还是数据科学挑战的模型?在前一种情况下,应该没什么关系。在后一种情况下,我已经知道完全调整模型的人,然后开始尝试使用不同的参数来提高他们的准确度。我不一定同意这种做法,因为它似乎是另一种形式的过度配合(更多here。我通常选择100,因为这个数字对我来说很有趣 - 其实没有逻辑背后的意思。有些人选择42,其他1

参见更详细的示例here

+0

我已经阅读过你通过我的文档,但是恐怕我不清楚应该设置哪个随机状态号码 谢谢你的速度! –

+1

@BorjaFernándezAntelo你甚至读过我写的吗?我在第二段详细说明你如何去选择你的'random_state'参数。 – blacksite