💥💥💞💞欢迎来到本博客❤️❤️💥💥
🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。
⛳️座右铭:行百里者,半于九十。
📋📋📋本文目录如下:🎁🎁🎁
目录
💥1 概述
SMO算法中的这种启发式方法允许在每次迭代中选择最能改善目标函数值的两个变量,并对它们进行优化。通过这种方式,SMO算法可以在每一步中都取得有效的进展,从而实现快速收敛。这种基于启发式的方法对于大规模数据集尤其有用,因为它们可以在每次迭代中仅考虑一小部分数据点,从而减少了计算的复杂度。因此,SMO算法是一种在实践中非常有效的支持向量机(Support Vector Machine,SVM)训练算法。
📚2 运行结果
部分代码:
clear all;clc;
data=csvread('LinearlySeprerableData.csv');
data(:,1:end-1)=zscore(data(:,1:end-1));
x = data(:,1:end-1);
y = data(:,end);
N = length(y);
C = 0.5; %Concluded after Cross-Validation
tol = 10e-5;
alpha = zeros(N,1);
bias = 0;
% SMO Algorithm
while (1)
changed_alphas=0;
N=size(y,1)
for i=1:N
Ei=sum(alpha.*y.*K(x,x(i,:),'l'))-y(i);
if ((Ei*y(i)<-tol) && alpha(i)<C)||(Ei*y(i) > tol && (alpha(i) > 0))
for j=[1:i-1,i+1:N]
Ej=sum(alpha.*y.*(x*x(j,:)'))-y(j);
alpha_iold=alpha(i);
alpha_jold=alpha(j);
if y(i)~=y(j)
L=max(0,alpha(j)-alpha(i));
H=min(C,C+alpha(j)-alpha(i));
else
L=max(0,alpha(i)+alpha(j)-C);
H=min(C,alpha(i)+alpha(j));
end
if (L==H)
continue
end
eta = 2*x(j,:)*x(i,:)'-x(i,:)*x(i,:)'-x(j,:)*x(j,:)';
if eta>=0
continue
end
alpha(j)=alpha(j)-( y(j)*(Ei-Ej) )/eta;
if alpha(j) > H
alpha(j) = H;
🎉3 参考文献
文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。
[1]李雨欣,胡芸利,刘聪等.河套麦胚多肽的制备工艺优化及其体外降血脂活性[J/OL].食品工业科技:1-10[2024-02-25].https://doi.org/10.13386/j.issn1002-0306.2023090197.
[2]赵伟,侯保林.电磁炮纤维缠绕约束结构多目标优化[J/OL].兵工学报:1-13[2024-02-25].http://kns.cnki.net/kcms/detail/11.2176.TJ.20240223.1506.004.html.