如何在 matlab 中绘制线性决策边界
How do I plot linear decision boundary in matlab
plotted two different dataset
我有 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
注意,我对分类问题不是很熟悉。我可能忘记了计算决策边界的一些术语。
我解决了决策问题,很详细
首先我用参数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])
完成
plotted two different dataset
我有 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
注意,我对分类问题不是很熟悉。我可能忘记了计算决策边界的一些术语。
我解决了决策问题,很详细
首先我用参数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])
完成