如何为knn分类器找到两组数据的决策边界

时间:2014-11-23 00:38:41

标签: matlab machine-learning k-means

我有两套,

N1 = 10; N2 = 15; % Class sizes
set1=[0.333; 0.509; 0.607; 1.172; 0.275; 0.762; 0.850; 0.920; 0.556; -0.046];
set2=[ 0.295; -0.203; -0.097; 0.633; 0.147; 0.356; 0.235; -0.054; -0.024; 0.377; -0.180; 0.512; 0.428; -0.129; 0.094];

我想找到(3,1)最近邻近分类器的决策边界和决策区域。任何想法,怎么做?

1 个答案:

答案 0 :(得分:1)

对于简单地可视化决策边界和决策区域,通常可以对您感兴趣的整个领域进行强力测试。

具体来说,你要定义一组跨越你感兴趣的领域的离散点,你逐步评估每个点评估该点属于哪个类,然后你就可以绘制结果。

也许是这样的:

%define your domain of interest
dx = 0.001;           
x = [-1.0:dx:2.0];

%step through each point and decide which class it is part of
x_class = NaN*ones(size(x));
for I=1:length(x)
    %apply your KNN decision algorithm here
    %it outputs a 1 for class 1, or it outputs a 2 for class 2
    x_class(I) = my_KNN_algorithm(set1,set2,rules,x(I));
end

%plot results
plot(x,x_class);
hold on;
plot(set1,ones(size(set1)),'ro');
plot(set2,2*ones(size(set2)),'gs');
xlabel('Value');
ylabel('Class');
legend('Test Point','Given Set 1','Given Set 2')