主要内容

优化交叉验证SVM分类使用Bayesopt.

此示例显示如何使用该示例如何优化SVM分类Bayesopt.函数。分类工作在一个高斯混合模型的点的位置。在统计学习的要素, Hastie, Tibshirani, and Friedman(2009),第17页描述了这个模型。该模型首先为“绿色”类生成10个基点,分布为均值(1,0)和单位方差的2-D独立正态分布。它还为“红色”类生成10个基点,分布为均值(0,1)和单位方差的2-D独立正态分布。对于每个职业(绿色和红色),生成100个随机点数如下:

  1. 选择一个基点m随机均匀地均匀。

  2. 生成与平均2 d的正态分布的独立随机点m和方差I / 5,其中我是2×2识别矩阵。在此示例中,使用方差I / 50来更清楚地显示优化的优点。

在生成100个绿色和100个红色点后,使用fitcsvm..然后使用Bayesopt.相对于交叉验证优化所得的SVM模型的参数。

生成点和分类

产生用于每个类别的10点碱基的点。

RNG.默认GRNPOP = MVNRND([1,0],眼睛(2),10);Redpop = mvnrnd([0,1],眼睛(2),10);

查看基点。

情节(grnpop (: 1) grnpop (:, 2),“走出去”抱紧绘图(REDPOP(:,1),REDPOP(:,2),“罗”抱紧关闭

图包含轴。轴包含2个类型的型号。

由于一些红色基点接近绿色基点,因此可以难以仅基于位置对数据点进行分类。

生成每个类别的100个数据点。

redpts =零(100,2); grnpts = redpts;对于I = 1:100 grnpts(I,:) = mvnrnd(grnpop(兰迪(10),:),眼(2)* 0.02);redpts(I,:) = mvnrnd(redpop(兰迪(10),:),眼(2)* 0.02);结束

查看数据点。

图图(grnpts(:,1),grnpts(:,2),“走出去”抱紧绘图(已删除(:,1),已删除(:,2),“罗”抱紧关闭

图包含轴。轴包含2个类型的型号。

准备数据进行分类

将数据放入一个矩阵,并生成一个向量GRP标签每个点的类。

CDATA = [grnpts; redpts];GRP =酮(200,1);%绿色标签1,红色标签-1GRP(101:200)= -1;

准备交叉验证

建立了交叉验证的分区。这一步解决列车组和测试组在每一步的优化使用。

C = cvpartition(200,'KFold',10);

为贝叶斯优化准备变量

建立一个接受输入的函数z = [rbf_sigma,boxconstraint]并返回的交叉验证损失值Z..取Z.作为正的,对数变换的变量1E-51E5.选择宽范围,因为您不知道哪个值可能是好的。

σ= optimizableVariable (“西格玛”,[1E-5,1e5]'变换'“日志”);盒= optimizableVariable (“盒子”,[1E-5,1e5]'变换'“日志”);

目标函数

此功能处理可计算参数的交叉验证丢失[sigma,box].有关详细信息,请参阅kfoldLoss

Bayesopt.通过可变Z.目标函数为1列的表格。

minfn = @ (z) kfoldLoss (fitcsvm (grp cdata,'cvpartition',c,......'骨箱''rbf''BoxConstraint',z.box,......'KernelScale',z.sigma));

优化分类

搜索最佳参数[sigma,box]使用Bayesopt..对于重复性,选择'预期改善加'采集功能。默认的采集功能依赖于运行时间,因此可以给出不同的结果。

结果= bayesopt(minfn,σ,盒]'IsObjectiveDeterministic',真的,......'AcquisitionFunctionName''预期改善加'
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar |σ盒| | | | |结果运行时| | | (estim(观察) .) | | | |=====================================================================================================| | 1 |最好的| 0.61 | 0.49723 | 0.61 | 0.61 | 0.00013375 | 13929 | | 2 |的| 0.345 | 0.23801 | 0.345 | 0.345 | 24526 | 1.936 | | 3 |接受| 0.61 | 0.27614 | 0.345 | 0.345 | 0.0026459 | 0.00084929 | | 4 |接受| 0.345 | 0.37522 | 0.345 | 0.345 | 3506.3 | 6.7427 e-05 | | 5 |接受| 0.345 | 0.23259 | 0.345 | 0.345 | 9135.2 | 571.87 | 0.345 | | | 6 |接受0.18231 | 0.345 | 0.345 | 99701 | 10223 | | 7 | Best | 0.295 | 0.21768 | 0.295 | 0.295 | 455.88 | 9957.4 | | 8 | Best | 0.24 | 1.493 | 0.24 | 0.24 | 31.56 | 99389 | | 9 | Accept | 0.24 | 1.8306 | 0.24 | 0.24 | 10.451 | 64429 | | 10 | Accept | 0.35 | 0.29761 | 0.24 | 0.24 | 17.331 | 1.0264e-05 | | 11 | Best | 0.23 | 1.1237 | 0.23 | 0.23 | 16.005 | 90155 | | 12 | Best | 0.1 | 0.28838 | 0.1 | 0.1 | 0.36562 | 80878 | | 13 | Accept | 0.115 | 0.15901 | 0.1 | 0.1 | 0.1793 | 68459 | | 14 | Accept | 0.105 | 0.25403 | 0.1 | 0.1 | 0.2267 | 95421 | | 15 | Best | 0.095 | 0.16714 | 0.095 | 0.095 | 0.28999 | 0.0058227 | | 16 | Best | 0.075 | 0.21326 | 0.075 | 0.075 | 0.30554 | 8.9017 | | 17 | Accept | 0.085 | 0.23925 | 0.075 | 0.075 | 0.41122 | 4.4476 | | 18 | Accept | 0.085 | 0.31168 | 0.075 | 0.075 | 0.25565 | 7.8038 | | 19 | Accept | 0.075 | 0.26502 | 0.075 | 0.075 | 0.32869 | 18.076 | | 20 | Accept | 0.085 | 0.20048 | 0.075 | 0.075 | 0.32442 | 5.2118 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | sigma | box | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.3 | 0.13136 | 0.075 | 0.075 | 1.3592 | 0.0098067 | | 22 | Accept | 0.12 | 0.23338 | 0.075 | 0.075 | 0.17515 | 0.00070913 | | 23 | Accept | 0.175 | 0.24124 | 0.075 | 0.075 | 0.1252 | 0.010749 | | 24 | Accept | 0.105 | 0.18186 | 0.075 | 0.075 | 1.1664 | 31.13 | | 25 | Accept | 0.1 | 0.17713 | 0.075 | 0.075 | 0.57465 | 2013.8 | | 26 | Accept | 0.12 | 0.13144 | 0.075 | 0.075 | 0.42922 | 1.1602e-05 | | 27 | Accept | 0.12 | 0.1642 | 0.075 | 0.075 | 0.42956 | 0.00027218 | | 28 | Accept | 0.095 | 0.18907 | 0.075 | 0.075 | 0.4806 | 13.452 | | 29 | Accept | 0.105 | 0.18856 | 0.075 | 0.075 | 0.19755 | 943.87 | | 30 | Accept | 0.205 | 0.19236 | 0.075 | 0.075 | 3.5051 | 93.492 |

图包含轴。与标题目标函数模型的轴包含型线,面,轮廓的5个对象。这些对象代表观测点,平均型,接下来点,最低模型是可行的。

图包含轴。与功能评价标题敏目标与数轴载型线的2个对象。这些对象表示闵观察目标,预计分钟的目标。

__________________________________________________________优化完成。30 MaxObjectiveEvaluations达到。总功能评价:30总的经过时间:62.3158秒总目标函数评估时间:10.693最佳观察到的可行点:西格玛框_______ ______ 0.30554 8.9017观测目标函数值= 0.075估计目标函数值= 0.075功能评估时间= 0.21326最佳估计可行点(根据型号):西格玛框_______ ______ 0.32869 18.076估计目标函数值= 0.075的估计函数评估时间= 0.23015
results = BayesianOptimization with properties: ObjectiveFcn: [function_handle] VariableDescriptions: [1x2 optimizableVariable] Options: [1x1 struct] MinObjective: 0.0750 XAtMinObjective: [1x2 table] minestimatedobjobjective: 0.0750 xatminestimatedobjobjective: [1x2 table] numobjectiveevalues:30 TotalElapsedTime: 62.3158 NextPoint:[1 x2表]XTrace: [30 x2表]ObjectiveTrace: [30 x1双]ConstraintsTrace: [] UserDataTrace: {30 x1细胞}ObjectiveEvaluationTimeTrace: [30 x1双]IterationTimeTrace: [30 x1双]ErrorTrace: [30 x1双]FeasibilityTrace: [30 x1逻辑]FeasibilityProbabilityTrace: [30 x1双]IndexOfMinimumTrace: [30 x1双]ObjectiveMinimumTrace:[30x1 double] EstimatedObjectiveMinimumTrace: [30x1 double]

使用结果培养出新的,优化的SVM分类。

z(1)=结果.xatminobjective.sigma;z(2)= execue.xatminobjective.box;svmmodel = fitcsvm(cdata,grp,'骨箱''rbf'......'KernelScale',z(1),'BoxConstraint',Z(2));

剧情分类界限。以可视化的支持向量分类,预言在网格万博1manbetx分数。

d = 0.02;[x1grid,x2grid] = meshgrid(min(cdata(:,1)):d:max(cdata(:,1)),......min(cdata(:,2)):d:max(cdata(:,2)));xgrid = [x1grid(:),x2grid(:)];[〜,得分] =预测(SVMMODEL,XGRID);h = nan(3,1);预分配%图;h (1:2) = gscatter (cdata (: 1), cdata (:, 2), grp,'RG''+ *');holdh(3)= plot(cdata(svmmodel.iss万博1manbetxupportvector,1),......CDATA(SVMModel.Is万博1manbetxSupportVector,2),'ko');轮廓(x1Grid,x2Grid,重塑(得分(:,2),尺寸(x1Grid)),[0 0],'K');图例(H,{'-1''+1''万博1manbetx支持vectors'},'位置'“东南”);轴平等hold关闭

图包含轴。轴包含4个类型的线,轮廓。这些对象表示-1,+1,支持向量。万博1manbetx

评估新数据的准确性

生成和分类的一些新的数据点。

GRNOBJ = GMDistribution(GRNPOP,.2 * EYE(2));Redobj = Gmdistribution(Redpop,.2 *眼睛(2));newdata =随机(grnobj,10);newdata = [newdata;随机(redobj,10)];grpdata = a那么多(20,1);GRPDATA(11:20)= -1;%的红色= -1v =预测(svmmodel,newdata);g = nan(7,1);图;h (1:2) = gscatter (cdata (: 1), cdata (:, 2), grp,'RG''+ *');holdH(3:4)= gscatter(newData(:,1),newData(:,2),V,'MC''**');H(5)=图(CDATA(SVMModel.IsSuppo万博1manbetxrtVector,1),......CDATA(SVMModel.Is万博1manbetxSupportVector,2),'ko');轮廓(x1Grid,x2Grid,重塑(得分(:,2),尺寸(x1Grid)),[0 0],'K');传奇(h (1:5), {'-1(培训)'“+ 1(培训)”'-1(分类)'......“1(分类)”'万博1manbetx支持vectors'},'位置'“东南”);轴平等hold关闭

图包含轴。轴包含型线,轮廓6级的对象。这些对象表示-1(培训)+1(培训),-1(分类)+1(分类),支持向量。万博1manbetx

查看哪些新数据点被正确分类。圈出红色的正确分类点,黑色中的错误分类点。

mydiff = (v == grpData);%正确分类图;h (1:2) = gscatter (cdata (: 1), cdata (:, 2), grp,'RG''+ *');holdH(3:4)= gscatter(newData(:,1),newData(:,2),V,'MC''**');H(5)=图(CDATA(SVMModel.IsSuppo万博1manbetxrtVector,1),......CDATA(SVMModel.Is万博1manbetxSupportVector,2),'ko');轮廓(x1Grid,x2Grid,重塑(得分(:,2),尺寸(x1Grid)),[0 0],'K');对于II = mydiff情节%左右红点正确广场H(6)=图(newData(II,1),newData(II,2),'RS''Markersize',12);结束对于II =不是(mydiff)各地不正确点%叠加黑色方块h(7) =情节(newData (ii, 1), newData (ii, 2),“ks”'Markersize',12);结束图例(H,{'-1(培训)'“+ 1(培训)”'-1(分类)'......“1(分类)”'万博1manbetx支持vectors'正确分类的......'错误分类'},'位置'“东南”);hold关闭

图包含轴。轴包含8个类型的线,轮廓。这些对象表示-1(训练),+1(训练),-1(分类),+1(分类),支持向量,正确分类,错误分类。万博1manbetx

另请参阅

|

相关主题