做搜狗手机网站优化,推广营销企业,管家婆crm123696,学校网站开发背景本篇文章是博主在人工智能等领域学习时#xff0c;用于个人学习、研究或者欣赏使用#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记#xff0c;若有不当和侵权之处#xff0c;指出后将会立即改正#xff0c;还望谅解。文章分类在AI学习笔记#… 本篇文章是博主在人工智能等领域学习时用于个人学习、研究或者欣赏使用并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记若有不当和侵权之处指出后将会立即改正还望谅解。文章分类在AI学习笔记 AI学习笔记9---《分类判决界面---W-H、H-K算法》 分类判决界面---W-H、H-K算法
目录
一、算法原理
1.1 W-H算法
1.2 H-K算法
二、实验要求
三、实验流程
四、运行结果 一、算法原理
1.1 W-H算法 对于两类问题设n1维增广训练模式x1, x2, ...,xN已符号规范化。如果训练模式是线性可分的则存在权矢量w使不等式组 成立即不等式组是一致的有解。若训练模式是非线性可分的表明不存在权矢量w对所有的训练模式都能正确分类也就是说无论任何的权矢量w都有某些模式被错分不等式不能都成立即不等式组是不一致的不等式组无解。在这种情况下我们希望所求得的权矢量使尽可能多的不等式被满足等价地说使最少的训练模式被错分或所得界面较稳健使对待分类模式有较好的分类效果。 将上面的不等式组写成矩阵方程形式为使解可靠引人N维余量矢量b0于是不等式方程组变为 Xw ≥ b 0 适当选择 b 可以针对等式方程组 1.2 H-K算法 其他分类判决界面方法见 分类判决界面---W-H、H-K算法 二、实验要求
采用下列两类模式为样本 w1 [0 0 0; 1 0 0; 1 0 1; 1 1 0] w2 [0 0 1; 0 1 1; 0 1 0; 1 1 1; 1 -1 0]
编程实现W-H算法和HK算法对任意输入新样本进行分类判别。 三、实验流程
3.1 W-H 算法matlab代码 新建main.m文件 clc;
close all;
%% 数据预处理
X1 [0 0 0; 1 0 0; 1 0 1; 1 1 0];
X2 [0 0 1; 0 1 1; 0 1 0; 1 1 1; 1 -1 0];
X [X1;-X2];
[N1,W] size(X);
b ones(N1,1);
%b [9; 3; 1; 9; 1; 4; 2; 1];%% W-H 算法
rou1 1;
k1 100;
%w zeros(W,1);
w ones(W,1);
[w1, a1] W_H(X,w,b,rou1,k1);
disp(解矢量:);
disp(w1);
disp(迭代次数:);
disp(a1);
% 画图
figure()
x1X1(:,1);
y1X1(:,2);
z1X1(:,3);
scatter3(x1,y1,z1,k); %圆圈为正样本
hold on;
x2X2(:,1);
y2X2(:,2);
z2X2(:,3);
scatter3(x2,y2,z2,P); %五角星为负样本
hold on;
x3 w1(1);
y3 w1(2);
z3 w1(3);
[X,Y] meshgrid(-2:2:2); %以法线绘制平面
Z -(x3 * X y3 * Y) / z3;
mesh(X,Y,Z,FaceAlpha, 0.8);
xlabel(x),ylabel(y),zlabel(z);
title(W-H算法分类判决界面); 新建W_H.m文件 function [w,a] W_H(X,w,b,rou,k)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% X符号化的训练样本
% b余量初值设置为大于零的较小的值
% rou参数设为0.5
% k迭代次数
% w解矢量
% a算法结束时的迭代次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
N size(X,1); % 样本数量
X X;
a 0;
while a k % 最大迭代次数a a 1;old_w w; for i 1:N w w (rou/i)*(b(i) - w*X(:,i))*X(:,i); % 迭代w的值endif norm(w - old_w) 0.0001 % 求向量范数如果收敛了就提前结束breakend
end
end 3.2 H-K 算法matlab代码 main.m文件下面补充 %% H-K 算法
X [X1;-X2];
[N1,W] size(X);
b ones(N1,1);
%b [9; 3; 1; 9; 1; 4; 2; 1];
rou2 0.5;
[w2, a2] H_K(X,b,rou2);
disp(解矢量:);
disp(w2);
disp(迭代次数:);
disp(a2);
% 画图
figure()
x1X1(:,1);y1X1(:,2);z1X1(:,3);
scatter3(x1,y1,z1,o); % 圆圈为正样本
hold on;
x2X2(:,1);y2X2(:,2);z2X2(:,3);
scatter3(x2,y2,z2,P); % 五角星为负样本
hold on;
x3 w2(1);y3 w2(2);z3 w2(3);
[X,Y] meshgrid(-2:2:2); % 以法线绘制平面
Z -(x3 * X y3 * Y) / z3;
mesh(X,Y,Z,FaceAlpha, 0.8);
xlabel(x),ylabel(y),zlabel(z);
hold on
title(H-K算法分类判决界面); 新建H_K.m文件 function [w , a] H_K(X,b,rou)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% X符号化的训练样本
% b余量初值设置为大于零的较小的值
% rou参数设为0.5
% k迭代次数
% w解矢量
% a算法结束时的迭代次数
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
XX inv(X*X)*X; % 求符号化的训练样本的伪逆矩阵
a 0;
while 1 % 循环开始a a 1;w XX*b; % 求w值 e X*w - b; % 计算误差矢量if sum(abs(e) 0.001) 0 % 如果e为零矢量则算法停止此时判定为0的标准为0.001breakelseif sum(abs(e 0)) 0 % 如果e没有正分量的非零矢量或负的分量停止变为正值则算法停止breakelseb b rou*(e abs(e)); % 迭代bw XX*b; % 迭代wend
end
end 四、运行结果
4.1 W-K 算法运行结果 4.2 H-K 算法运行结果 文章若有不当和不正确之处还望理解与指出。由于部分文字、图片等来源于互联网无法核实真实出处如涉及相关争议请联系博主删除。如有错误、疑问和侵权欢迎评论留言联系作者或者私信联系作者。