主要内容

이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。

베이즈최적화를사용하여SVM분류기피팅최적화하기

이예제에서는fitcsvm함수와OptimizeHyperparameters이름——값쌍을사용하여SVM분류를최적화하는방법을보여줍니다。이분류는가우스혼합모델의점위치를사용한것입니다。统计学习的要素、Hastie Tibshirani,弗里德曼(2009)의17페이지에이모델에대한설명이나와있습니다。이모델은평균과(1,0)단위분산의2차원독립정규분포로분산되고”녹색”클래스에속하는10개기준점을생성하는것으로시작합니다。또한,평균과(0,1)단위분산의2차원독립정규분포로분산되고”빨간색”클래스에속하는10개기준점도생성합니다。다음과같이각클래스(녹색과빨간색)에대해임의100개의점을생성합니다。

  1. 해당색상별로임의로균일하게분포하는기준점을선택합니다。

  2. 평균이我/ 5인이고분산이(여기서는2×2단위행렬임)2차원정규분포를띠는독립적인임의의점을생성합니다。이예제에서는분산I / 50을사용하여최적화의이점을더확실하게보여줍니다。

점과분류기생성하기

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 = 0 (100,2);i = 1:10 0 grnpts(我:)= mvnrnd (grnpop(兰迪(10):)、眼睛(2)* 0.02);redpts(我)= mvnrnd (redpop(兰迪(10):)、眼睛(2)* 0.02);结束

데이터점을표시합니다。

图绘制(grnpts (: 1), grnpts (:, 2),“去”)举行情节(redpts (: 1) redpts (:, 2),“罗”)举行

图中包含一个坐标轴。轴线包含2个线型对象。

분류를위한데이터준비하기

데이터를한행렬에저장하고,각점의클래스에레이블을지정하는벡터grp를생성합니다。

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

교차검증준비하기

교차검증에사용할분할을설정합니다。이단계에서는최적화가각단계에사용하는훈련세트와검정세트를정합니다。

c = cvpartition (200“KFold”10);

피팅최적화하기

양호한피팅,즉교차검증손실이적은피팅을구하려면베이즈최적화를사용하도록옵션을설정하십시오。모든최적화에동일한교차검증분할c를사용합니다。

재현이가능하도록“expected-improvement-plus”획득함수를사용합니다。

选择=结构(“优化”“bayesopt”“ShowPlots”,真的,“CVPartition”c...“AcquisitionFunctionName”“expected-improvement-plus”);svmmod = fitcsvm (grp cdata,“KernelFunction”“rbf”...“OptimizeHyperparameters”“汽车”“HyperparameterOptimizationOptions”选择)
|=====================================================================================================| | Iter | Eval客观客观| | | BestSoFar | BestSoFar | BoxConstraint | KernelScale | | |结果| | |运行时(观察)| (estim) | | ||=====================================================================================================| | 最好1 | | 0.345 | 0.24139 | 0.345 | 0.345 | 0.00474 | 306.44 | | 2 |最好| 0.115 | 0.16228 | 0.115 | 0.12678 | 430.31 | 1.4864 | | 3 |接受| 0.52 | 0.13937 | 0.115 | 0.1152 | 0.028415 | 0.014369 | | 4 |接受| 0.61 | 0.2731 | 0.115 |0.11504 | 133.94 | 0.0031427 | | 5 |接受| 0.34 | 0.35782 | 0.115 | 0.11504 | 0.010993 | 5.7742 | | 6 |最好| 0.085 | 0.12094 | 0.085 | 0.085039 | 885.63 | 0.68403 | | | 7日接受| 0.105 | 0.11976 | 0.085 | 0.085428 | 0.3057 | 0.58118 | | 8 |接受| 0.21 | 0.13908 | 0.085 | 0.09566 | 0.16044 | 0.91824 | | | 9日接受| 0.085 | 0.18319 | 0.08510 | 0.08725 | 972.19 | 0.46259 | | |接受| 0.1 | 0.27818 | 0.085 | 0.090952 | 990.29 | 0.491 | |最好11 | | 0.08 | 0.11533 | 0.08 | 0.079362 | 2.5195 | 0.291 | | | 12日接受| 0.09 | 0.12483 | 0.08 | 0.08402 | 14.338 | 0.44386 | | | 13日接受| 0.1 | 0.12396 | 0.08 | 0.08508 | 0.0022577 | 0.23803 | | | 14日接受| 0.11 | 0.11322 | 0.08 |最好15 | 0.087378 | 0.2115 | 0.32109 | | | 0.07 | 0.15379 | 0.07 | 0.081507 | 910.2 | 0.25218 | | 16最好| | 0.065 | 0.17069 | 0.065 | 0.072457 | 953.22 | 0.26253 | | | 17日接受| 0.075 | 0.28338 | 0.065 | 0.072554 | 998.74 | 0.23087 | | | 18日接受| 0.295 | 0.12518 | 0.065 | 0.072647 | 996.18 | 44.626 | | | 19日接受| 0.07 | 0.14373 | 0.065 |0.06946 | 985.37 | 0.27389 | | 20 | Accept | 0.165 | 0.14863 | 0.065 | 0.071622 | 0.065103 | 0.13679 | |=====================================================================================================| | Iter | Eval | Objective | Objective | BestSoFar | BestSoFar | BoxConstraint| KernelScale | | | result | | runtime | (observed) | (estim.) | | | |=====================================================================================================| | 21 | Accept | 0.345 | 0.13785 | 0.065 | 0.071764 | 971.7 | 999.01 | | 22 | Accept | 0.61 | 0.1561 | 0.065 | 0.071967 | 0.0010168 | 0.0010005 | | 23 | Accept | 0.345 | 0.12046 | 0.065 | 0.071959 | 0.0010674 | 999.18 | | 24 | Accept | 0.35 | 0.11488 | 0.065 | 0.071863 | 0.0010003 | 40.628 | | 25 | Accept | 0.24 | 0.26111 | 0.065 | 0.072124 | 996.55 | 10.423 | | 26 | Accept | 0.61 | 0.19622 | 0.065 | 0.072068 | 958.64 | 0.0010026 | | 27 | Accept | 0.47 | 0.14015 | 0.065 | 0.07218 | 993.69 | 0.029723 | | 28 | Accept | 0.3 | 0.12165 | 0.065 | 0.072291 | 993.15 | 170.01 | | 29 | Accept | 0.16 | 0.27222 | 0.065 | 0.072104 | 992.81 | 3.8594 | | 30 | Accept | 0.365 | 0.12858 | 0.065 | 0.072112 | 0.0010017 | 0.044287 |

图中包含一个坐标轴。标题为“最小目标vs.函数计算数”的轴包含2个类型为line的对象。这些对象代表最小观测目标、最小估计目标。

图中包含一个坐标轴。以目标函数模型为标题的轴包含线、面、轮廓等5个对象。这些对象表示观测点,模型均值,下一个点,模型最小可行值。

__________________________________________________________ 优化完成。maxobjective达到30个。总函数计算:30总运行时间:52.3583秒总目标函数计算时间:5.1671最佳观测可行点:BoxConstraint KernelScale _____________ ___________ 953.22 0.26253观测目标函数值= 0.065估计目标函数值= 0.073726函数评估时间= 0.17069最佳估计可行点(根据模型):BoxConstraint KernelScale _____________ ___________ 985.37 0.27389估计的目标函数值= 0.072112估计的函数计算时间= 0.17908
svmmod = ClassificationSVM ResponseName:‘Y’CategoricalPredictors:[]类名:[1]ScoreTransform:“没有一个”NumObservations: 200 HyperparameterOptimizationResults: [1 x1 BayesianOptimization]α:[77 x1双]偏见:-0.2352 KernelParameters: [1 x1 struct] BoxConstraints: x1双[200]ConvergenceInfo: [1 x1 struct] IsSupportVector:金宝app[200x1 logical] Solver: 'SMO'属性,方法

최적화된모델의손실을구합니다。

lossnew = kfoldLoss (fitcsvm (grp cdata,“CVPartition”c“KernelFunction”“rbf”...“BoxConstraint”svmmod.HyperparameterOptimizationResults.XAtMinObjective.BoxConstraint,...“KernelScale”, svmmod.HyperparameterOptimizationResults.XAtMinObjective.KernelScale))
lossnew = 0.0650

이손실은최적화결과에서관”측된목적함수값“아래에보고되는손실과동일합니다。

최적화된분류기를시각화합니다。

d = 0.02;[x1Grid, x2Grid] = meshgrid (min (cdata (: 1)): d:马克斯(cdata (: 1)),...分钟(cdata (:, 2)): d:马克斯(cdata (:, 2)));xGrid = [x1Grid (:), x2Grid (:));[~,分数]=预测(svmmod xGrid);图;h =南(3,1);%预先配置h (1:2) = gscatter (cdata (: 1), cdata (:, 2), grp,“rg”' + *’);持有h(3) =情节(cdata (svmmod.IsSu金宝apppportVector, 1),...cdata (svmmod.I金宝appsSupportVector, 2),“柯”);轮廓(x1Grid x2Grid,重塑(分数(:,2),大小(x1Grid)), [0 0),“k”);传奇(h, {' 1 '“+ 1”“金宝app支持向量”},“位置”“东南”);轴平等的持有

图中包含一个坐标轴。轴包含线条、轮廓等4个对象。这些对象代表-1,+1,支持向量。金宝app

참고항목

|

관련항목