首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中生成一个异构型模型?

如何在Python中生成一个异构型模型?
EN

Stack Overflow用户
提问于 2018-08-05 07:56:11
回答 1查看 441关注 0票数 0

我希望使用Numpy在Python中创建异类数据。

代码语言:javascript
复制
bias=100
N=10
X = np.arange(1,N,0.2).reshape(-1,1)
y_true = np.ravel(X.dot(0.3) + bias)
noise = np.random.normal(0, 1, (N-1)*5)
y = y_true + noise

我需要噪声中的每个元素都来自正态分布,具有不同的异方差。理想情况下,方差必须是X的对应值的函数。如何确保这一点?np.random.normal只接受标量方差项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-05 08:11:10

来自help(np.random.normal)

normal(...)mtrand.RandomState实例的方法

正常(loc=0.0、scale=1.0、size=None)

..。

scale : float or array_like of floats

分布的标准差(分布或“宽度”)。

因此,如果您需要的话,np.random.normal可以接受一组方差项。下面是一个10个随机样本的例子,这些样本的均值相同,标准差逐渐增加:

代码语言:javascript
复制
np.random.normal(scale=np.arange(1,10))
#array([ -0.04997945,   2.05945125,   1.07041091,   7.2321691 ,
#        -2.31088503,   9.20914924,  -3.1213077 ,  -3.87994062,
#       -19.3611583 ])

下面是每个分布的10000个样本及其标准差的二维数组:

代码语言:javascript
复制
np.stack([np.random.normal(scale=np.arange(1,10)) 
          for x in range(10000)]).std(axis=0)
#array([1.01413654, 2.01043535, 2.97448904, 3.98098459, 5.045089  ,
#       5.95467152, 6.94379633, 8.01227677, 9.0252082 ])
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51690439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档