Python 分类结果取决于随机状态?

Python 分类结果取决于随机状态?,python,machine-learning,scikit-learn,adaboost,boosting,Python,Machine Learning,Scikit Learn,Adaboost,Boosting,我想使用scikit learn(sklearn)实现AdaBoost模型。我的问题类似于,但并不完全相同。据我所知,中描述的随机_状态变量用于根据前面的链接随机分割训练集和测试集。因此,如果我理解正确,我的分类结果不应该依赖于种子,对吗?如果我的分类结果取决于随机状态变量,我应该担心吗?这很重要。当训练集不同时,训练状态也会改变。对于不同的数据子集,您最终可以得到一个分类器,该分类器与使用其他子集训练的分类器差别不大 因此,您应该使用一个常量种子,如0或另一个整数,以便您的结果是可复制的。您的

我想使用scikit learn(sklearn)实现AdaBoost模型。我的问题类似于,但并不完全相同。据我所知,中描述的随机_状态变量用于根据前面的链接随机分割训练集和测试集。因此,如果我理解正确,我的分类结果不应该依赖于种子,对吗?如果我的分类结果取决于随机状态变量,我应该担心吗?

这很重要。当训练集不同时,训练状态也会改变。对于不同的数据子集,您最终可以得到一个分类器,该分类器与使用其他子集训练的分类器差别不大


因此,您应该使用一个常量种子,如
0
或另一个整数,以便您的结果是可复制的。

您的分类分数将取决于
随机状态。正如@Ujjwal正确地说的,它用于将数据拆分为训练和测试。不仅如此,scikit learn中的许多算法使用
随机_状态
来选择特征子集、样本子集,并确定初始权重等

例如

  • 基于树的估计器将使用
    random_state
    对特征和样本进行随机选择(如
    DecisionTreeClassifier,RandomForestClassifier

  • 在聚类估计器中,例如,
    随机状态
    用于初始化聚类中心

  • 支持向量机将其用于初始概率估计

  • 一些特征选择算法也将其用于初始选择
  • 还有更多
报告中提到:

如果您的代码依赖于随机数生成器,则它不应使用numpy.random.random或numpy.random.normal之类的函数。这种方法可能导致测试中的重复性问题。相反,应该使用numpy.random.RandomState对象,该对象是从传递给类或函数的
random\u state
参数构建的

请务必阅读以下问题和答案,以便更好地理解:


那么我应该相信这个预测吗?或者我应该把这个随机状态当作另一个超参数吗?因为伪随机数生成器的种子不同,所以进行不同的预测真的没有多大意义……因为每次在不同的数据子集上进行训练时都会进行随机播种,所以这是非常有意义的。它实际上不是一个超参数。你应该把它设置成一个固定的数字,然后跨系统复制你的数字。对。。。我理解。因此,如果随机状态=0和随机状态=10给出不同的结果,我应该相信哪一个?考虑到我的数据集有点嘈杂,但并不完全。一般来说,为了安全起见,应该使用精度最接近平均精度的种子。如果你觉得它有用,请接受我的回答谢谢,但我想给其他ppl的机会。你的回答很好,我很感激!相关问题: