本次为学生时期所写的实验报告,代码程序为课堂学习和自学,对网络程序有所参考,如有雷同,望指出出处,谢谢!
基础知识来自教材:李航的《统计学习方法》
本人小白,仍在不断学习中,有错误的地方恳请大佬指出,谢谢!
一、代码实现(R语言)
1.原始形式
#原始形式
myfun1<-function(X,Y,w,b=0,s=0.5,ddmax=100){
#X为特征向量组成的矩阵,行数为向量的维数;y取值为±1;b默认值为0,步长默认值为0.5,最大迭代次数默认为100
N = ncol(X) #N为特征向量的个数
k=1
B = matrix(NA,nrow = ddmax) #设置长度为最大迭代次数的空向量
i = 1
B[i]=sum(as.integer(Y*(w%*%X+b)<=0))
while (i<=ddmax) {
for (j in 1:N){
if (Y[j]*(w%*%X[,j]+b)<=0){
w = w + s*Y[j]*X[,j]
b = b + s*Y[j]
}else{