Matlab 绘制LDA的超平面(分类判别式)

Matlab 绘制LDA的超平面(分类判别式),matlab,classification,Matlab,Classification,我试图通过可视化研究分离超平面来比较我的数据上的各种分类器,如LDA和SVM等 目前我使用ClassificationDiscriminant作为LDA分类器,与SVM可以在图上绘制超平面不同,我无法找到绘制LDA分类器超平面的方法 下面的脚本是如何生成示例数据并使用ClassificationDiscriminant对其进行分类的: %% Data & Label X = [randn(100,2); randn(150,2) + 1.5]; Y = [zeros(100,1); on

我试图通过可视化研究分离超平面来比较我的数据上的各种分类器,如LDA和SVM等

目前我使用ClassificationDiscriminant作为LDA分类器,与SVM可以在图上绘制超平面不同,我无法找到绘制LDA分类器超平面的方法

下面的脚本是如何生成示例数据并使用ClassificationDiscriminant对其进行分类的:

%% Data & Label
X = [randn(100,2); randn(150,2) + 1.5];
Y = [zeros(100,1); ones(150,1)];
%% Plot
gscatter(X(:,1),X(:,2),Y);
%% Train LDA Classifier
C = ClassificationDiscriminant.fit(X,Y);
有人能帮我画出与
C
分离的超平面吗?任何建议都会大有帮助


此外,上面的示例是二维的,但是,我也对在三维中绘制它们感兴趣(即示例数据
X
有三列)。如果您能提供帮助,那就更好了。

借用Matlab的
classify()
文档中的示例:

Class1 = 1;
Class2 = 2;
K = C.Coeffs(Class1,Class2).Const;
L = C.Coeffs(Class1,Class2).Linear;
f = @(x,y) K + [x y]*L;

hold on;
ezplot(f, [min(X(:,1)) max(X(:,1)) min(X(:,2)) max(X(:,2))]);

请注意,上面的示例绘制了二维空间中两个类之间的成对边界。如果您有其他类,则必须适当修改
Class1
Class2
。我相信,通过一些额外的工作,您可以找到该函数到N维空间的扩展。

非常感谢Ryan。由于
分类
分类鉴别
(见中)之间存在一些差异,我更感兴趣的是坚持使用后一种分类器,以保持与我以前工作的完整性。关于从这个函数中找到超平面还有什么建议吗?你试过代码了吗?尽管我根据
classify
重新编写了它,以使用
ClassificationDiscriminant
。实际上,您所要做的就是复制、粘贴并按照初始代码段运行它。