相关疑难解决方法(0)

Python中numpy.random和random.random之间的差异

我有一个Python的大脚本.我在其他人的代码中激发了自己的灵感,所以我最终使用了numpy.random模块来处理某些事情(例如,用于创建从二项分布中获取的随机数组),在其他地方我使用该模块random.random.

有人可以告诉我两者之间的主要区别吗?看看这两者中的每一个的doc网页,在我看来,numpy.random只有更多的方法,但我不清楚随机数的生成是如何不同的.

我之所以要问的原因是因为我需要为调试目的播种我的主程序.但除非我在导入的所有模块中使用相同的随机数生成器,否则它不起作用,这是正确的吗?

另外,我在这里读到了另一篇文章,关于不使用的讨论numpy.random.seed(),但我真的不明白为什么这是一个坏主意.如果有人解释我为什么会这样,我真的很感激.

python random random-seed

91
推荐指数
2
解决办法
4万
查看次数

为sklearn算法选择random_state

据我所知,random_state在各种sklearn算法中使用它来打破具有相同度量值的不同预测变量(树)之间的联系(例如在中GradientBoosting).但是文档没有澄清或详细说明.喜欢

1)这些种子用于随机数生成的其他地方?比如说RandomForestClassifier,随机数可用于查找一组随机特征来构建预测器.使用子采样的算法可以使用随机数来获得不同的子样本.可以/是同一种子(random_state)在多个随机数生成中扮演一个角色吗?

我主要关心的是

2)这个random_state变量的影响有多远.?这个值能否在预测(分类或回归)方面产生很大的不同.如果是,我应该关注哪种数据集?或者更多的是关于稳定性而不是结果的质量?

3)如果它可以产生很大的不同,如何最好地选择random_state?没有直觉,很难做GridSearch.特别是如果数据集是这样的,一个CV可能需要一个小时.

4)如果动机只是在重复运行中只有稳定的结果/评估我的模型和交叉验证分数,如果我random.seed(X)在使用任何算法之前设置(并使用random_state无),它是否具有相同的效果.

5)假设我random_state在GradientBoosted分类器上使用了一个值,并且我正在交叉验证以找到我的模型的优点(每次都在验证集上得分).一旦满意,我将在整个训练集上训练我的模型,然后将其应用于测试集.现在,完整的训练集比交叉验证中的较小训练集具有更多的实例.因此,random_state与cv循环中发生的情况相比,该值现在可以导致完全不同的行为(特征和个体预测变量的选择).类似于像样本叶子等的事情也可能导致较差的模型,因为设置是CV中的实例数,而实际的实例数更多.这是正确的理解吗?防范这种情况的方法是什么?

machine-learning random-forest scikit-learn

12
推荐指数
1
解决办法
5844
查看次数

Python中的颜色处理

对于我的聚类gui,我目前正在使用随机颜色进行聚类,因为我不知道手头会有多少个聚类.

在Python中,这看起来像:

import random
def randomColor():
    return (random.random(),random.random(),random.random())
Run Code Online (Sandbox Code Playgroud)

但是,当我更新东西时,颜色会发生变化.

所以我倾向于拥有一个具有输入参数I的函数,例如

def nonrandomColor(i):
   ...
   return color
Run Code Online (Sandbox Code Playgroud)

总是会为同一个I返回相同的颜色,同时保持生成任意多种颜色的能力.

答案不一定要用Python来表达,它更像是我感兴趣的总体布局.

python colors

2
推荐指数
1
解决办法
2299
查看次数