4

我有两个类,C1 和 C2,它们都由二元高斯描述,均值为 (0,0) 和 (1,3),协方差为 I 和 2I。C1 和 C2 的先验分别为 0.4 和 0.6。

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

我试过在线查找文档,但似乎没有帮助。

4

3 回答 3

3

试试这个

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");
于 2013-02-22T06:18:44.407 回答
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")

在此处输入图像描述

于 2013-02-22T06:29:00.277 回答
0

您在那里找到的 dmnorm 函数将生成您所追求的 2d 高斯,但仍然存在两个单独类的问题。为此,请使用您的先验 0.4 和 0.6。您可以使用 Bernoulli 或 runif()<p 来选择顺序生成的每个点的类。那应该这样做。

于 2013-02-22T06:15:12.927 回答