我如何在MATLAB中绘制线性决策边界



绘制两个不同的数据集

i有2个不同的数据集,这些数据集具有不同的MU和Sigma,X向量,例如[1.8;1.8]。而且我也知道每个类p(ω1)= p(ω2)= 1/2的概率我想在这两个数据集之间绘制线性决策边界,但我没有任何想法。我的代码在下面,此处

X = [1.8; 1.8];
u1 = [1;1]; u2 = [3;3];
s1 = [1 0;0 1]; s2 = [1 0;0 1];
Pr1 = 1/2;
Pr2 = 1/2;
r = mvnrnd(u1,s1,500);
plot(r(:,1), r(:,2), '+r');
hold on
r = mvnrnd(u2,s2,500);
plot(r(:,1), r(:,2), '+b');
hold on
grid on
W1 = (u1')/(s1(1,1))^2;
W10 = (u1'*u1)/(-2*s1(1,1)) + log(Pr1);
g1 = W1'.*X + W10;
W2 = (u2')/(s2(1,1))^2;
W20 = (u2'*u2)/(-2*s2(1,1)) + log(Pr2);
g2 = W2'.*X + W20;

有人可以给我任何想法吗?

诀窍是计算要绘制的决策边界的两个点。

W1_W2 = W2 - W1; % vector from W1 to W2
W1_W2_average = (W2 + W1)/2; % point in the middle between W1 and W2
W1_W2_orthogonal = [-W1_W2(2) W1_W2(1)]; % vector orthogonal to W1_W2
points = [W1_W2_average - 2*W1_W2_orthogonal; W1_W2_average + 2*W1_W2_orthogonal]; % Two points on the line you want to plot
plot(points(:, 1), points(:, 2)); %plot the line

请注意,我对分类问题并不熟悉。我可能已经在决策边界的计算中忘记了一些术语。

i解决了决策问题,详细

首先,我用参数x1和x2定义了参数函数,例如

g = @(x1,x2)

然后,为了绘制决策边界,g1-g2 = 0等式,例如

e = @(x1,x2) (W1*[x1;x2] + w10 - W2*[x1;x2] - w20)
ezplot(g, [-xlim xlim -ylim ylim])

和完成

最新更新