1. 关于matlab中用lssvm做分类问题是参数寻优函数tunelssvm的问题
能不用自带函数不,给你个最小二乘支持向量机的自编代码
clear all;
clc;
N=35; %样本个数
NN1=4; %预测样本数
%********************随机选择初始训练样本及确定预测样本*******************************
x=[];
y=[];
index=randperm(N); %随机排序N个序列
index=sort(index);
gama=23.411; %正则化参数
deita=0.0698; %核参数值
%thita=; %核参数值
%*********构造感知机核函数*************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=tanh(deita*(x1'*x2)+thita);
% end
%end
%*********构造径向基核函数**************************************
for i=1:N
x1=x(:,index(i));
for j=1:N
x2=x(:,index(j));
x12=x1-x2;
K(i,j)=exp(-(x12'*x12)/2/(deita*deita));
end
end
%*********构造多项式核函数****************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=(1+x1'*x2)^(deita);
% end
%end
%*********构造核矩阵************************************
for i=1:N-NN1
for j=1:N-NN1
omeiga1(i,j)=K(i,j);
end
end
omeiga2=omeiga1';
omeiga=omeiga2+(1/gama)*eye(N-NN1);
A12=ones(1,N-NN1);
A21=A12';
A=[0 A12;A21 omeiga];
%**************************************
for i=1:N-NN1
B21(i,:)=y(index(i));
end
B=[0;B21];
%********LS-SVM模型的解******************************
C=A\B;
%******
b=C(1); %模型参数
for i=1:N-NN1
aipha(i)=C(i+1); %模型参数,行向量
end
%*******************************************
for i=1:N %预测模型
aifx(i)=b+(aipha)*K(1:N-NN1,i);
end
%*******************************************
aifx
index
2. 关于matlab的SVM工具箱的几个函数
能不用自带函数不,给你个最小二乘支持向量机的自编代码
clear all;
clc;
N=35; %样本个数
NN1=4; %预测样本数
%********************随机选择初始训练样本及确定预测样本*******************************
x=[];
y=[];
index=randperm(N); %随机排序N个序列
index=sort(index);
gama=23.411; %正则化参数
deita=0.0698; %核参数值
%thita=; %核参数值
%*********构造感知机核函数*************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=tanh(deita*(x1'*x2)+thita);
% end
%end
%*********构造径向基核函数**************************************
for i=1:N
x1=x(:,index(i));
for j=1:N
x2=x(:,index(j));
x12=x1-x2;
K(i,j)=exp(-(x12'*x12)/2/(deita*deita));
end
end
%*********构造多项式核函数****************************************
%for i=1:N
% x1=x(:,index(i));
% for j=1:N
% x2=x(:,index(j));
% K(i,j)=(1+x1'*x2)^(deita);
% end
%end
%*********构造核矩阵************************************
for i=1:N-NN1
for j=1:N-NN1
omeiga1(i,j)=K(i,j);
end
end
omeiga2=omeiga1';
omeiga=omeiga2+(1/gama)*eye(N-NN1);
A12=ones(1,N-NN1);
A21=A12';
A=[0 A12;A21 omeiga];
%**************************************
for i=1:N-NN1
B21(i,:)=y(index(i));
end
B=[0;B21];
%********LS-SVM模型的解******************************
C=A\B;
%******
b=C(1); %模型参数
for i=1:N-NN1
aipha(i)=C(i+1); %模型参数,行向量
end
%*******************************************
for i=1:N %预测模型
aifx(i)=b+(aipha)*K(1:N-NN1,i);
end
%*******************************************
aifx
index
3. Matlab中关于svmtrain函数的问题
检查t1n,和p1n到底用不用转置,确定t1n是训练集标签吗?!
4. matlab SVM分类预测 参数的维度不一致
维数不一致
5. 在matlab中怎样用gatool优化SVM参数
你的fitness函数应已经保存并且都没错了吧,然后你应该确认一下在gatool里填写的变量个数和你fitness函数的变量个数应该相等,也就是Number of ariables应该是8. 如果这些都不行,那应该是你的fitness函数出问题了。
6. 求助GA优化SVM参数的matlab 代码
你试一下把options=gaoptimset(options,'InitialPopulation',X0); 改一下 以为你得到的结果是options,但在调用gaoptimset这个函数的时候又把它当成参数输入了,这样就错了,改成opts=gaoptimset(options,'InitialPopulation',X0);
7. Matlab的libsvm 中训练参数怎么输出
c语言版本的也记录在 model 里面.其中model 是一个结构体,其定义如下.
struct svm_model
{
struct svm_parameter param; // parameter
int nr_class; // number of classes, = 2 in regression/one class svm
int l; // total #SV
struct svm_node **SV; // SVs (SV[l])
double **sv_coef; // coefficients for SVs in decision functions (sv_coef[k-1][l])
double *rho; // constants in decision functions (rho[k*(k-1)/2])
double *probA; // pariwise probability information
double *probB;
// for classification only
int *label; // label of each class (label[k])
int *nSV; // number of SVs for each class (nSV[k])
// nSV[0] + nSV[1] + ... + nSV[k-1] = l
// XXX
int free_sv; // 1 if svm_model is created by svm_load_model
// 0 if svm_model is created by svm_train
};
里面的sv_coef就是指向 拉格朗日参数(可能乘了1或者-1)的指针的指针
=============
其实用Matlab版本的更方便
8. matlab中 SVM 函数svmtrain中 参数autoscale 什么作用
Svmtrain的用法:
svmtrain [options] training_set_file [model_file]
Options:可用的选项即表示的涵义如下
-s svm类型:SVM设置类型(默认0)
0 -- C-SVC
1 --v-SVC
2 – 一类SVM
3 -- e -SVR
4 -- v-SVR
-t 核函数类型:核函数设置类型(默认2)
0 – 线性:u'v
1 – 多项式:(r*u'v + coef0)^degree
2 – RBF函数:exp(-r|u-v|^2)
3 –sigmoid:tanh(r*u'v + coef0)
-d degree:核函数中的degree设置(默认3)
-g 函数设置(默认1/ k)r(gama):核函数中的
-r coef0:核函数中的coef0设置(默认0)
-c cost:设置C-SVC, -SVR的参数(默认1)-SVR和
- SVR的参数(默认0.5)-SVC,一类SVM和-n nu:设置
-SVR-p e:设置的值(默认0.1)中损失函数
-m cachesize:设置cache内存大小,以MB为单位(默认40)
-e :设置允许的终止判据(默认0.001)
-h shrinking:是否使用启发式,0或1(默认1)
-wi C(C-SVC中的C)(默认1)weight:设置第几类的参数C为weight
-v n: n-fold交互检验模式
其中-g选项中的k是指输入数据中的属性数。option -v 随机地将数据剖分为n部分并计算交互检验准确度和均方根误差。以上这些参数设置可以按照SVM的类型和核函数所支持的参数进行任意组合,如果设置的参数在函数或SVM类型中没有也不会产生影响,程序不会接受该参数;如果应有的参数设置不正确,参数将采用默认值。training_set_file是要进行训练的数据集;model_file是训练结束后产生的模型文件,文件中包括支持向量样本数、支持向量样本以及lagrange系数等必须的参数;该参数如果不设置将采用默认的文件名,也可以设置成自己惯用的文件名。