Обучить классификатор SVM и намеренно заставить решатель не сойтись с решением. Затем возобновите обучение классификатора без необходимости перезапуска всего процесса обучения. Сравните значения потерь при повторном замещении для частично обученного классификатора и полностью обученного классификатора.
Загрузить ionosphere набор данных.
Обучение классификатора SVM. Укажите, что процедура оптимизации использует не более 100 итераций. Контролировать алгоритм, указывающий, что программное обеспечение печатает диагностическую информацию каждый 50 итерации.
|===================================================================================================================================|
| Iteration | Set | Set Size | Feasibility | Delta | KKT | Number of | Objective | Constraint |
| | | | Gap | Gradient | Violation | Supp. Vec. | | Violation |
|===================================================================================================================================|
| 0 |active| 351 | 9.971591e-01 | 2.000000e+00 | 1.000000e+00 | 0 | 0.000000e+00 | 0.000000e+00 |
| 50 |active| 351 | 8.064425e-01 | 3.736929e+00 | 2.161317e+00 | 60 | -3.628863e+01 | 5.551115e-17 |
SVM optimization did not converge to the required tolerance.
Программа распечатывает итеративный экран в окне команд. Распечатка указывает на то, что процедура оптимизации не была конвергирована в решение.
Оцените потерю повторного замещения частично обученного классификатора SVM.
Ошибка неправильной классификации обучающей выборки составляет приблизительно 12%.
Возобновить обучение классификатора для другого 1500 итерации. Укажите, что программное обеспечение печатает диагностическую информацию каждый 250 итерации.
|===================================================================================================================================|
| Iteration | Set | Set Size | Feasibility | Delta | KKT | Number of | Objective | Constraint |
| | | | Gap | Gradient | Violation | Supp. Vec. | | Violation |
|===================================================================================================================================|
| 250 |active| 351 | 2.097627e-01 | 1.965259e+00 | 1.211407e+00 | 102 | -7.577701e+01 | 1.956768e-15 |
| 500 |active| 351 | 3.625797e-03 | 9.547707e-02 | 5.710587e-02 | 103 | -7.819434e+01 | 2.337974e-15 |
| 750 |active| 351 | 5.810633e-04 | 2.683463e-02 | 1.500555e-02 | 103 | -7.820914e+01 | 2.724383e-15 |
| 1000 |active| 351 | 7.464431e-05 | 2.218816e-03 | 1.276094e-03 | 103 | -7.820958e+01 | 2.277258e-15 |
| 1067 |active| 351 | 4.748866e-05 | 9.882221e-04 | 5.178619e-04 | 103 | -7.820959e+01 | 2.257309e-15 |
Exiting Active Set upon convergence due to DeltaGradient.
UpdatedSVMModel =
ClassificationSVM
ResponseName: 'Y'
CategoricalPredictors: []
ClassNames: {'b' 'g'}
ScoreTransform: 'none'
NumObservations: 351
Alpha: [103x1 double]
Bias: -3.8827
KernelParameters: [1x1 struct]
BoxConstraints: [351x1 double]
ConvergenceInfo: [1x1 struct]
IsSupportVector: [351x1 logical]
Solver: 'SMO'
Properties, Methods
Программное обеспечение возобновляется при итерации 1000 и использует тот же уровень детализации, что и заданный при обучении модели с помощью fitcsvm. Распечатка показывает, что алгоритм сошелся. Поэтому UpdatedSVMModel является полностью обученным ClassificationSVM классификатор.
Ошибка неправильной классификации обучающей выборки полностью обученного классификатора составляет приблизительно 8%.