站点图标

Matlab Tutorial 03 official SVM and NNW


  本文主要介绍在Matlab中使用官方库函数提供的SVM支持向量机和NNW神经网络,同时将这两种模型应用到多目标分类(Multi-Target Classfication)上。

一、神经网络

1.1 newff()函数参数说明

  使用的函数newff()是前馈反向传播网络,下面是它的定义式:

net = newff(P,T,S)
net = newff(P,T,S,TF,BTF,BLF,PF,IPF,OPF,DDF)

1.2 传递函数TF

1.3 学习训练函数BTF

  变梯度算法:

1.4 参数说明

  通过net.trainParam可以查看参数

1.5 实例

% 创建网络
net = newff(TriX, TriY, 9);

% 设置参数
net.trainParam.epochs = 1000;
net.trainParam.goal = 1e-3;
net.trainParam.lr = 0.01;

% 训练
net = train(net, TriX, TriY);

% 测试
PreY = sim(net, TestX);

  值得注意的地方是,这里的X和Y需要是m * n,即m个特征* n个样本数。

二、支持向量机

2.1 fitcsvm()函数参数说明

  fitcsvm()本身应用于单目标回归,我们可以将多目标拆分成多个单目标回归以应用到多目标上。

model = fitcsvm(X,Y,'ClassNames',{'negClass','posClass'},'Standardize',true,...
        'KernelFunction','rbf','BoxConstraint',1);

2.2 实例

 model1 = fitcsvm(TriX, TriY(:, 1));
 model2 = fitcsvm(TriX, TriY(:, 2));
 model3 = fitcsvm(TriX, TriY(:, 3));

 [label1, score1] = predict(model1, TestX);
 [label2, score2] = predict(model2, TestX);
 [label3, score3] = predict(model3, TestX);

 PreY = [label1, label2, label3];
退出移动版