【问题标题】:Plotting bivariate Gaussians in R在R中绘制双变量高斯
【发布时间】:2013-02-07 15:22:57
【问题描述】:

我有两个类,C1 和 C2,这两个类都由双变量高斯函数描述,均值为 (0,0) 和 (1,3),协方差为 I 和 2I。 C1 和 C2 的先验分别为 0.4 和 0.6。

我必须在 R 中的散点图上绘制 C1 的 10 个点和 C2 的 15 个点,以便以后计算一些分类边界,所以这并不是问题的关键部分,我只需要知道如何这样做,这样我就可以开始了。

我已经尝试在网上查找文档,但似乎没有帮助。

【问题讨论】:

    标签: r gaussian


    【解决方案1】:
    require(mvtnorm)
    l=3
    sigma <- matrix(c(l,2,2,2*l), ncol=2)
    C2 <- rmvnorm(n=15, mean=c(1,3), sigma=sigma)
    C1 <- rmvnorm(n=10, mean=c(0,0), sigma=sigma)
    
     plot(C1, xlim=range( c(C1[,1],C2[,1]) ) , ylim=range( c(C1[,2],C2[,2]) ) , col="red")
     points(C2,  col="blue")
    

    【讨论】:

    • 这可能会起作用,但我没有下载该库,而另一个答案无需下载库即可工作。不过真的很感谢你的回答,谢谢
    • 它们可能是同一个函数,你知道吗?
    • 其实不一样。 mvtnorm::rmvnorm 有更多的方法。
    【解决方案2】:

    试试这个

    library('MASS')
    sz_1<-10;
    sz_2<-15;    df<-rbind(data.frame(mvrnorm(n=sz_1,mu=c(0,0),Sigma=diag(2))),data.frame(mvrnorm(n=sz_2,mu=c(1,3),Sigma=2*diag(2))));
    plot(df,xlab="x-value",ylab="y-value",col="purple",main="scatter-plot of mixed gaussians");
    

    【讨论】:

      【解决方案3】:

      您在那里找到的 dmnorm 函数将生成您所追求的 2d 高斯,但仍然存在两个独立类的问题。为此,请使用您的先验 0.4 和 0.6。您可以使用 Bernoulli 或 runif()

      【讨论】:

        猜你喜欢
        • 2017-04-24
        • 2023-03-17
        • 2012-04-30
        • 1970-01-01
        • 2016-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多