如何为 knn 分类器找到两组数据的决策边界
Posted
技术标签:
【中文标题】如何为 knn 分类器找到两组数据的决策边界【英文标题】:How to find the decision boundary for two set of data for knn classifier 【发布时间】:2015-01-20 22:46:46 【问题描述】:我有两套,
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】:为了简单地可视化决策边界和决策区域,暴力测试您感兴趣的整个领域通常是令人满意的。
具体来说,您将定义一组跨越您感兴趣的领域的离散点,您将逐步评估每个点,评估该点属于哪个类,然后绘制结果。
可能是这样的:
%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')
【讨论】:
以上是关于如何为 knn 分类器找到两组数据的决策边界的主要内容,如果未能解决你的问题,请参考以下文章