Обучите классификатор 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%.