
简单易学的机器学习算法—Rosenblatt感知机的对偶解法
一、Rosenblatt感知机回顾
在博文“简单易学的机器学习算法——Rosenblatt感知机”中介绍了Rosenblatt感知机的基本概念。Rosenblatt感知机是针对线性可分问题的二分类算法。通过构造分离超平面将正类和负类区分开。构造了如下的输入空间到输出空间的函数:
其中,w为权重,b为偏置。为符号函数:
求解这个函数的重点就是求解函数中的参数:和。Rosenblatt感知机通过构造损失函数,并求得使得这样的损失函数达到最小时的w和b。
其中,为:
这里的为所有误分类的点的集合。我们的目标是求得损失函数的最小值:。
通过梯度下降法(详细请见“简单易学的机器学习算法——Rosenblatt感知机”),我们得到了w和b的更新公式:
其中,为学习率。
二、Rosenblatt感知机的对偶形式
对偶形式的基本想法是,将w和b表示为实例的线性组合的形式,通过求解其系数而求得
。
通过上面的的更新公式,我们发现,
是一个累加的过程。如果令
,则
可以表示为:
其中,。
此时的感知机模型就变为:
三、算法流程
初始化,
选择误分类数据点,即,更新a和b
直到没有误分类的点,否则重复步骤2
计算出
四、实验的仿真
利用博文“简单易学的机器学习算法——Rosenblatt感知机”中的数据集,原始数据集如下图所示:
(原始数据点)
MATLAB代码
[plain] view plain copy 在CODE上查看代码片派生到我的代码片
%% Rosenblatt感知机的对偶解法
clear all;
clc;
%读入数据
x=[3,3;4,3;1,1];
y=[1;1;-1];
[m,n] = size(x);%取得数据集的大小
%% 画出原始的点
hold on
axis([0 5 0 5]);%axis一般用来设置axes的样式,包括坐标轴范围,可读比例等
for i = 1:m
plot(x(i,1),x(i,2),'.');
end
%% 初始化
alpha = zeros(1,m);
b = 0;
yita = 1;%学习率
gram = zeros(m,m);
%% 计算Gram矩阵
for i = 1:m
for j = 1:m
gram(i,j)=x(i,:)*x(j,:)';
end
end
%% 更新
for i = 1:m
tmp = 0;
for j = 1:m
tmp = tmp + alpha(j)*y(j)*gram(i,j);
end
tmp = tmp + b;
tmp = y(i)*tmp;
if tmp <= 0
alpha(i) = alpha(i)+yita;
b = b + y(i);
end
end
% 要使得数据集中没有误分类的点
flag = 0;%标志位,用于标记有没有误分类的点
i = 1;
while flag~=1
while i <= 3
tmp = 0;
for j = 1:m
tmp = tmp + alpha(j)*y(j)*gram(i,j);
end
tmp = tmp + b;
tmp = y(i)*tmp;
if tmp <= 0
alpha(i) = alpha(i)+yita;
b = b + y(i);
i = 1;%重置i
break;
else
i = i+1;
end
if i == 4
flag = 1;
end
end
end
%% 重新计算w和b
for i = 1:m
x_new(i,:) = x(i,:) * y(i);
end
w = alpha * x_new;
%% 画出分隔线
x_1 = (0:3);
y_1 = (-b-w(1,1)*x_1)./w(1,2);
plot(x_1,y_1);
最终的分离超平面:
(最终分离超平面)
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
用 Power BI 制作地图热力图:基于经纬度数据的实践指南 在数据可视化领域,地图热力图凭借直观呈现地理数据分布密度的优势,成 ...
2025-07-24解析 insert into select 是否会锁表:原理、场景与应对策略 在数据库操作中,insert into select 是一种常用的批量数据插入语句 ...
2025-07-24CDA 数据分析师的工作范围解析 在数字化时代的浪潮下,数据已成为企业发展的核心资产之一。CDA(Certified Data Analyst)数据分 ...
2025-07-24从 CDA LEVEL II 考试题型看 Python 数据分析要点 在数据科学领域蓬勃发展的当下,CDA(Certified Data Analyst)认证成为众多从 ...
2025-07-23用 Python 开启数据分析之旅:从基础到实践的完整指南 在数据驱动决策的时代,数据分析已成为各行业不可或缺的核心能力。而 Pyt ...
2025-07-23鸢尾花判别分析:机器学习中的经典实践案例 在机器学习的世界里,有一个经典的数据集如同引路明灯,为无数初学者打开了模式识别 ...
2025-07-23解析 response.text 与 response.content 的核心区别 在网络数据请求与处理的场景中,开发者经常需要从服务器返回的响应中提取数 ...
2025-07-22解析神经网络中 Softmax 函数的核心作用 在神经网络的发展历程中,激活函数扮演着至关重要的角色,它们为网络赋予了非线性能力, ...
2025-07-22CDA数据分析师证书考取全攻略 一、了解 CDA 数据分析师认证 CDA 数据分析师认证是一套科学化、专业化、国际化的人才考核标准, ...
2025-07-22左偏态分布转正态分布:方法、原理与实践 左偏态分布转正态分布:方法、原理与实践 在统计分析、数据建模和科学研究中,正态分 ...
2025-07-22你是不是也经常刷到别人涨粉百万、带货千万,心里痒痒的,想着“我也试试”,结果三个月过去,粉丝不到1000,播放量惨不忍睹? ...
2025-07-21我是陈辉,一个创业十多年的企业主,前半段人生和“文字”紧紧绑在一起。从广告公司文案到品牌策划,再到自己开策划机构,我靠 ...
2025-07-21CDA 数据分析师的职业生涯规划:从入门到卓越的成长之路 在数字经济蓬勃发展的当下,数据已成为企业核心竞争力的重要来源,而 CD ...
2025-07-21MySQL执行计划中rows的计算逻辑:从原理到实践 MySQL 执行计划中 rows 的计算逻辑:从原理到实践 在 MySQL 数据库的查询优化中 ...
2025-07-21在AI渗透率超85%的2025年,企业生存之战就是数据之战,CDA认证已成为决定企业存续的生死线!据麦肯锡全球研究院数据显示,AI驱 ...
2025-07-2035岁焦虑像一把高悬的利刃,裁员潮、晋升无望、技能过时……当职场中年危机与数字化浪潮正面交锋,你是否发现: 简历投了10 ...
2025-07-20CDA 数据分析师报考条件详解与准备指南 在数据驱动决策的时代浪潮下,CDA 数据分析师认证愈发受到瞩目,成为众多有志投身数 ...
2025-07-18刚入职场或是在职场正面临岗位替代、技能更新、人机协作等焦虑的打工人,想要找到一条破解职场焦虑和升职瓶颈的系统化学习提升 ...
2025-07-182025被称为“AI元年”,而AI,与数据密不可分。网易公司创始人丁磊在《AI思维:从数据中创造价值的炼金术 ...
2025-07-18CDA 数据分析师:数据时代的价值挖掘者 在大数据席卷全球的今天,数据已成为企业核心竞争力的重要组成部分。从海量数据中提取有 ...
2025-07-18