exponenta event banner

fitrsvm

Подгонка модели опорной векторной машинной регрессии

Описание

fitrsvm обучает или перекрестно проверяет регрессионную модель машины опорных векторов (SVM) на наборе данных умеренно-размерного предиктора. fitrsvm поддерживает отображение данных предиктора с использованием функций ядра и поддерживает минимизацию мягкой границы SMO, ISDA или L1 посредством квадратичного программирования для минимизации целевой функции.

Чтобы обучить линейную регрессионную модель SVM на высокомерном наборе данных, то есть наборах данных, которые включают много переменных предиктора, используйте fitrlinear вместо этого.

Для получения информации о модели SVM для двоичной классификации см. раздел fitcsvm для наборов данных умеренно-размерных предикторов или fitclinear для высокоразмерных наборов данных.

пример

Mdl = fitrsvm(Tbl,ResponseVarName) возвращает полную модель регрессии обученной машины вектора поддержки (SVM) Mdl обучение с использованием значений предикторов в таблице Tbl и значения ответа в Tbl.ResponseVarName.

Mdl = fitrsvm(Tbl,formula) возвращает полную регрессионную модель SVM, обученную с использованием значений предикторов в таблице Tbl. formula является пояснительной моделью ответа и подмножеством переменных предиктора в Tbl используется для подгонки Mdl.

Mdl = fitrsvm(Tbl,Y) возвращает полную обученную регрессионную модель SVM, обученную с использованием значений предикторов в таблице Tbl и значения отклика в векторе Y.

Mdl = fitrsvm(X,Y) возвращает полную обученную регрессионную модель SVM, обученную с использованием значений предикторов в матрице X и значения отклика в векторе Y.

пример

Mdl = fitrsvm(___,Name,Value) возвращает регрессионную модель SVM с дополнительными опциями, заданными одним или несколькими аргументами пары имя-значение, с использованием любого из предыдущих синтаксисов. Например, можно указать функцию ядра или обучить перекрестно проверенную модель.

Примеры

свернуть все

Тренировка регрессионной модели машины опорных векторов (SVM) с использованием выборочных данных, хранящихся в матрицах.

Загрузить carsmall набор данных.

load carsmall
rng 'default'  % For reproducibility

Определить Horsepower и Weight в качестве переменных предиктора (X) и MPG в качестве переменной ответа (Y).

X = [Horsepower,Weight];
Y = MPG;

Обучение модели регрессии SVM по умолчанию.

Mdl = fitrsvm(X,Y)
Mdl = 
  RegressionSVM
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'
                    Alpha: [75x1 double]
                     Bias: 57.3958
         KernelParameters: [1x1 struct]
          NumObservations: 93
           BoxConstraints: [93x1 double]
          ConvergenceInfo: [1x1 struct]
          IsSupportVector: [93x1 logical]
                   Solver: 'SMO'


  Properties, Methods

Mdl является обученным RegressionSVM модель.

Проверьте модель на сходимость.

Mdl.ConvergenceInfo.Converged
ans = logical
   0

0 указывает, что модель не сходилась.

Переподготовка модели с использованием стандартизированных данных.

MdlStd = fitrsvm(X,Y,'Standardize',true)
MdlStd = 
  RegressionSVM
             ResponseName: 'Y'
    CategoricalPredictors: []
        ResponseTransform: 'none'
                    Alpha: [77x1 double]
                     Bias: 22.9131
         KernelParameters: [1x1 struct]
                       Mu: [109.3441 2.9625e+03]
                    Sigma: [45.3545 805.9668]
          NumObservations: 93
           BoxConstraints: [93x1 double]
          ConvergenceInfo: [1x1 struct]
          IsSupportVector: [93x1 logical]
                   Solver: 'SMO'


  Properties, Methods

Проверьте модель на сходимость.

MdlStd.ConvergenceInfo.Converged
ans = logical
   1

1 указывает, что модель действительно сошлась.

Вычислите среднеквадратичную ошибку повторного замещения (в выборке) для новой модели.

lStd = resubLoss(MdlStd)
lStd = 17.0256

Обучение модели регрессии машины с вектором поддержки с использованием данных abalone из репозитория машинного обучения UCI.

Загрузите данные и сохраните их в текущей папке с именем 'abalone.csv'.

url = 'https://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data';
websave('abalone.csv',url);

Считывайте данные в таблицу. Укажите имена переменных.

varnames = {'Sex'; 'Length'; 'Diameter'; 'Height'; 'Whole_weight';...
    'Shucked_weight'; 'Viscera_weight'; 'Shell_weight'; 'Rings'};
Tbl = readtable('abalone.csv','Filetype','text','ReadVariableNames',false);
Tbl.Properties.VariableNames = varnames;

Данные выборки содержат 4177 наблюдений. Все переменные предиктора непрерывны, за исключением Sex, которая является категориальной переменной с возможными значениями 'M' (для мужчин), 'F' (для женщин), и 'I' (для младенцев). Цель состоит в том, чтобы предсказать количество колец (сохраненных в Rings) на абалоне и определить его возраст с помощью физических измерений.

Обучение модели регрессии SVM с использованием гауссовой функции ядра с автоматическим масштабом ядра. Стандартизация данных.

rng default  % For reproducibility
Mdl = fitrsvm(Tbl,'Rings','KernelFunction','gaussian','KernelScale','auto',...
    'Standardize',true)
Mdl = 

  RegressionSVM
           PredictorNames: {1×8 cell}
             ResponseName: 'Rings'
    CategoricalPredictors: 1
        ResponseTransform: 'none'
                    Alpha: [3635×1 double]
                     Bias: 10.8144
         KernelParameters: [1×1 struct]
                       Mu: [1×10 double]
                    Sigma: [1×10 double]
          NumObservations: 4177
           BoxConstraints: [4177×1 double]
          ConvergenceInfo: [1×1 struct]
          IsSupportVector: [4177×1 logical]
                   Solver: 'SMO'


Окно команд показывает, что Mdl является обученным RegressionSVM и отображает список свойств.

Отображение свойств Mdl с использованием точечной нотации. Например, проверьте, сходилась ли модель и сколько итераций она выполнила.

conv = Mdl.ConvergenceInfo.Converged
iter = Mdl.NumIterations
conv =

  logical

   1


iter =

        2759

Возвращенные результаты показывают, что модель сошлась после 2759 итераций.

Загрузить carsmall набор данных.

load carsmall
rng 'default'  % For reproducibility

Определить Horsepower и Weight в качестве переменных предиктора (X) и MPG в качестве переменной ответа (Y).

X = [Horsepower Weight];
Y = MPG;

Перекрестная проверка двух регрессионных моделей SVM с использованием пятикратной перекрестной проверки. Для обеих моделей укажите, чтобы стандартизировать предикторы. Для одной из моделей укажите обучение с использованием линейного ядра по умолчанию, а для другой модели - гауссово ядро.

MdlLin = fitrsvm(X,Y,'Standardize',true,'KFold',5)
MdlLin = 
  RegressionPartitionedSVM
    CrossValidatedModel: 'SVM'
         PredictorNames: {'x1'  'x2'}
           ResponseName: 'Y'
        NumObservations: 94
                  KFold: 5
              Partition: [1x1 cvpartition]
      ResponseTransform: 'none'


  Properties, Methods

MdlGau = fitrsvm(X,Y,'Standardize',true,'KFold',5,'KernelFunction','gaussian')
MdlGau = 
  RegressionPartitionedSVM
    CrossValidatedModel: 'SVM'
         PredictorNames: {'x1'  'x2'}
           ResponseName: 'Y'
        NumObservations: 94
                  KFold: 5
              Partition: [1x1 cvpartition]
      ResponseTransform: 'none'


  Properties, Methods

MdlLin.Trained
ans=5×1 cell array
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}
    {1x1 classreg.learning.regr.CompactRegressionSVM}

MdlLin и MdlGau являются RegressionPartitionedSVM перекрестно проверенные модели. Trained свойство каждой модели является массивом ячеек 5 на 1 CompactRegressionSVM модели. Модели в клетке хранят результаты обучения на 4 складках наблюдений и оставляют одну складку наблюдений.

Сравните ошибку обобщения моделей. В этом случае погрешность обобщения представляет собой погрешность со средним квадратом вне выборки.

mseLin = kfoldLoss(MdlLin)
mseLin = 17.4417
mseGau = kfoldLoss(MdlGau)
mseGau = 16.7355

Регрессионная модель SVM, использующая гауссово ядро, работает лучше, чем модель, использующая линейное ядро.

Создание модели, подходящей для прогнозирования, путем передачи всего набора данных в fitrsvmи укажите все аргументы пары имя-значение, которые дали модель с более высокой производительностью. Однако не указывайте параметры перекрестной проверки.

MdlGau = fitrsvm(X,Y,'Standardize',true,'KernelFunction','gaussian');

Чтобы предсказать МПГ комплекта автомобилей, проезжайте Mdl и таблицу, содержащую измерения лошадиных сил и веса автомобилей predict.

В этом примере показано, как оптимизировать гиперпараметры автоматически с помощью fitrsvm. В примере используется carsmall данные.

Загрузить carsmall набор данных.

load carsmall

Определить Horsepower и Weight в качестве переменных предиктора (X) и MPG в качестве переменной ответа (Y).

X = [Horsepower Weight];
Y = MPG;

Найдите гиперпараметры, которые минимизируют пятикратные потери при перекрестной проверке, используя автоматическую оптимизацию гиперпараметров.

Для воспроизводимости задайте случайное начальное число и используйте 'expected-improvement-plus' функция приобретения.

rng default
Mdl = fitrsvm(X,Y,'OptimizeHyperparameters','auto',...
    'HyperparameterOptimizationOptions',struct('AcquisitionFunctionName',...
    'expected-improvement-plus'))
|====================================================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |      Epsilon |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |              |              |
|====================================================================================================================|
|    1 | Best   |      6.8077 |      10.471 |      6.8077 |      6.8077 |      0.35664 |     0.043031 |      0.30396 |
|    2 | Best   |      2.9108 |    0.083136 |      2.9108 |      3.1259 |        70.67 |       710.65 |       1.6369 |
|    3 | Accept |      4.1884 |    0.083016 |      2.9108 |      3.1211 |       14.367 |    0.0059144 |       442.64 |
|    4 | Accept |       4.159 |    0.069749 |      2.9108 |      3.0773 |    0.0030879 |       715.31 |       2.6045 |
|    5 | Best   |       2.902 |     0.22042 |       2.902 |      2.9015 |       969.07 |        703.1 |      0.88614 |
|    6 | Accept |      4.1884 |    0.057606 |       2.902 |      2.9017 |       993.93 |       919.26 |        22.16 |
|    7 | Accept |      2.9307 |    0.084949 |       2.902 |      2.9018 |       219.88 |       613.28 |     0.015526 |
|    8 | Accept |      2.9537 |     0.33784 |       2.902 |      2.9017 |       905.17 |       395.74 |     0.021914 |
|    9 | Accept |      2.9073 |    0.061718 |       2.902 |      2.9017 |       24.242 |        647.2 |      0.17855 |
|   10 | Accept |      2.9044 |      0.2384 |       2.902 |      2.9017 |       117.27 |       173.98 |      0.73387 |
|   11 | Accept |      2.9035 |    0.062417 |       2.902 |      2.9016 |       1.3516 |       131.19 |    0.0093404 |
|   12 | Accept |      4.0917 |    0.054662 |       2.902 |       2.902 |     0.012201 |       962.58 |    0.0092777 |
|   13 | Accept |      2.9525 |     0.95828 |       2.902 |       2.902 |        77.38 |       65.508 |    0.0093299 |
|   14 | Accept |      2.9352 |    0.085972 |       2.902 |      2.9019 |       21.591 |       166.43 |     0.035214 |
|   15 | Accept |      2.9341 |     0.10187 |       2.902 |      2.9019 |       45.286 |       207.56 |     0.009379 |
|   16 | Accept |      2.9104 |    0.069236 |       2.902 |      2.9018 |     0.064315 |       23.313 |    0.0093341 |
|   17 | Accept |      2.9056 |     0.07306 |       2.902 |      2.9018 |      0.33909 |       40.311 |     0.053394 |
|   18 | Accept |      2.9335 |     0.12493 |       2.902 |      2.8999 |       0.9904 |       41.169 |    0.0099688 |
|   19 | Accept |      2.9885 |    0.062909 |       2.902 |      2.8994 |    0.0010647 |         32.9 |     0.013178 |
|   20 | Accept |      4.1884 |     0.06077 |       2.902 |         2.9 |    0.0014524 |       1.9514 |       856.49 |
|====================================================================================================================|
| Iter | Eval   | Objective:  | Objective   | BestSoFar   | BestSoFar   | BoxConstraint|  KernelScale |      Epsilon |
|      | result | log(1+loss) | runtime     | (observed)  | (estim.)    |              |              |              |
|====================================================================================================================|
|   21 | Accept |       2.904 |    0.083477 |       2.902 |      2.8835 |       88.487 |       405.92 |      0.44372 |
|   22 | Accept |      2.9107 |    0.075228 |       2.902 |      2.8848 |       344.34 |          992 |      0.28418 |
|   23 | Accept |       2.904 |    0.065833 |       2.902 |      2.8848 |      0.92028 |       70.985 |      0.52233 |
|   24 | Accept |      2.9145 |    0.058443 |       2.902 |      2.8822 |    0.0011412 |       18.159 |      0.16652 |
|   25 | Best   |      2.8909 |     0.17477 |      2.8909 |      2.8848 |       0.7614 |         17.3 |       1.9075 |
|   26 | Accept |      2.9188 |     0.10147 |      2.8909 |      2.8816 |      0.31049 |       18.301 |      0.35285 |
|   27 | Accept |      2.9327 |    0.074353 |      2.8909 |      2.8811 |     0.015362 |       20.395 |       1.6596 |
|   28 | Accept |       2.897 |     0.12567 |      2.8909 |      2.8811 |       3.3454 |       46.537 |        2.224 |
|   29 | Accept |      4.1884 |    0.064233 |      2.8909 |       2.881 |        983.2 |      0.52308 |       910.91 |
|   30 | Accept |      2.9167 |    0.085177 |      2.8909 |      2.8821 |    0.0011533 |       10.597 |     0.029731 |

Figure contains an axes. The axes with title Min objective vs. Number of function evaluations contains 2 objects of type line. These objects represent Min observed objective, Estimated min objective.

__________________________________________________________
Optimization completed.
MaxObjectiveEvaluations of 30 reached.
Total function evaluations: 30
Total elapsed time: 45.8801 seconds
Total objective function evaluation time: 14.2709

Best observed feasible point:
    BoxConstraint    KernelScale    Epsilon
    _____________    ___________    _______

       0.7614           17.3        1.9075 

Observed objective function value = 2.8909
Estimated objective function value = 2.8957
Function evaluation time = 0.17477

Best estimated feasible point (according to models):
    BoxConstraint    KernelScale    Epsilon
    _____________    ___________    _______

       88.487          405.92       0.44372

Estimated objective function value = 2.8821
Estimated function evaluation time = 0.10546
Mdl = 
  RegressionSVM
                         ResponseName: 'Y'
                CategoricalPredictors: []
                    ResponseTransform: 'none'
                                Alpha: [86x1 double]
                                 Bias: 46.2480
                     KernelParameters: [1x1 struct]
                      NumObservations: 93
    HyperparameterOptimizationResults: [1x1 BayesianOptimization]
                       BoxConstraints: [93x1 double]
                      ConvergenceInfo: [1x1 struct]
                      IsSupportVector: [93x1 logical]
                               Solver: 'SMO'


  Properties, Methods

Поиск по оптимизации BoxConstraint, KernelScale, и Epsilon. Результатом является регрессия с минимальными оценочными потерями перекрестной проверки.

Входные аргументы

свернуть все

Образец данных, используемых для обучения модели, указанный как таблица. Каждая строка Tbl соответствует одному наблюдению, и каждый столбец соответствует одной прогнозирующей переменной. Дополнительно, Tbl может содержать один дополнительный столбец для переменной ответа. Многозначные переменные и массивы ячеек, отличные от массивов ячеек символьных векторов, не допускаются.

Если Tbl содержит переменную ответа, и вы хотите использовать все оставшиеся переменные в Tbl в качестве предикторов, затем укажите переменную ответа, используя ResponseVarName.

Если Tbl содержит переменную ответа, и требуется использовать только подмножество остальных переменных в Tbl в качестве предикторов, затем укажите формулу, используя formula.

Если Tbl не содержит переменную ответа, затем укажите переменную ответа, используя Y. Длина переменной ответа и количество строк Tbl должно быть равным.

Если строка Tbl или элемент Y содержит, по крайней мере, один NaN, то fitrsvm удаляет эти строки и элементы из обоих аргументов при обучении модели.

Чтобы указать имена предикторов в порядке их появления в Tbl, используйте PredictorNames аргумент пары имя-значение.

Типы данных: table

Имя переменной ответа, указанное как имя переменной в Tbl. Переменная ответа должна быть числовым вектором.

Необходимо указать ResponseVarName в виде вектора символов или строкового скаляра. Например, если Tbl сохраняет переменную ответа Y как Tbl.Y, затем укажите его как 'Y'. В противном случае программа обрабатывает все столбцы Tbl, в том числе Y, в качестве предикторов при обучении модели.

Типы данных: char | string

Пояснительная модель переменной ответа и подмножество переменных предиктора, указанное как вектор символов или строковый скаляр в форме 'Y~x1+x2+x3'. В этой форме Y представляет переменную ответа, и x1, x2, и x3 представляют переменные предиктора.

Задание подмножества переменных в Tbl в качестве предикторов для обучения модели используйте формулу. Если задать формулу, программа не будет использовать переменные в Tbl которые не отображаются в formula.

Имена переменных в формуле должны быть обоими именами переменных в Tbl (Tbl.Properties.VariableNames) и допустимые идентификаторы MATLAB ®. Имена переменных можно проверить вTbl с помощью isvarname функция. Если имена переменных недопустимы, их можно преобразовать с помощью matlab.lang.makeValidName функция.

Типы данных: char | string

Данные ответа, указанные как n-by-1 числовой вектор. Длина Y и количество строк Tbl или X должно быть равным.

Если строка Tbl или X, или элемент Y, содержит, по крайней мере, один NaN, то fitrsvm удаляет эти строки и элементы из обоих аргументов при обучении модели.

Чтобы указать имя переменной ответа, используйте ResponseName аргумент пары имя-значение.

Типы данных: single | double

Данные предиктора, которым соответствует регрессионная модель SVM, заданная как n-by-p-числовая матрица. n - число наблюдений, а p - число переменных предиктора.

Длина Y и количество строк X должно быть равным.

Если строка X или элемент Y содержит, по крайней мере, один NaN, то fitrsvm удаляет эти строки и элементы из обоих аргументов.

Чтобы указать имена предикторов в порядке их появления в X, используйте PredictorNames аргумент пары имя-значение.

Типы данных: single | double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'KernelFunction','gaussian','Standardize',true,'CrossVal','on' обучает 10-кратную перекрестно проверенную регрессионную модель SVM с использованием гауссова ядра и стандартизированных обучающих данных.

Примечание

Нельзя использовать любой аргумент пары имя-значение перекрестной проверки вместе с 'OptimizeHyperparameters' аргумент пары имя-значение. Можно изменить перекрестную проверку для 'OptimizeHyperparameters' только с помощью 'HyperparameterOptimizationOptions' аргумент пары имя-значение.

Поддержка параметров векторной машины

свернуть все

Ограничение поля для альфа-коэффициентов, указанное как пара, разделенная запятыми, состоящая из 'BoxConstraint' и положительное скалярное значение.

Абсолютное значение Alpha коэффициенты не могут превышать значение BoxConstraint.

Дефолт BoxConstraint значение для 'gaussian' или 'rbf' функция ядра iqr(Y)/1.349, где iqr(Y) - межквартильный диапазон переменной ответа Y. Для всех остальных ядер используется значение по умолчанию BoxConstraint значение равно 1.

Пример: BoxConstraint,10

Типы данных: single | double

Функция ядра, используемая для вычисления матрицы Gram, указанной как пара, разделенная запятыми, состоящая из 'KernelFunction' и значение в этой таблице.

СтоимостьОписаниеФормула
'gaussian' или 'rbf'Ядро гауссовой или радиальной базовой функции (RBF)

G (xj, xk) = exp (−‖xj−xk‖2)

'linear'Линейное ядро

G (xj, xk) =xj′xk

'polynomial'Полиномиальное ядро. Использовать 'PolynomialOrder',q для указания ядра полинома порядка q.

G (xj, xk) = (1+xj′xk) q

Можно задать собственную функцию ядра, например: kernel, путем установки 'KernelFunction','kernel'. kernel должен иметь следующую форму:

function G = kernel(U,V)
где:

  • U является матрицей m-by-p.

  • V является матрицей n-by-p.

  • G является матрицей m-by-n Gram строк U и V.

И kernel.m должен находиться в пути MATLAB.

Рекомендуется избегать использования общих имен для функций ядра. Например, вызовите функцию sigmoid kernel 'mysigmoid' вместо 'sigmoid'.

Пример: 'KernelFunction','gaussian'

Типы данных: char | string

Параметр масштаба ядра, заданный как разделенная запятыми пара, состоящая из 'KernelScale' и 'auto' или положительный скаляр. Программное обеспечение делит все элементы матрицы предиктора X по значению KernelScale. Затем программное обеспечение применяет соответствующую норму ядра для вычисления матрицы Gram.

  • При указании 'auto'затем программное обеспечение выбирает соответствующий масштабный коэффициент с использованием эвристической процедуры. Эта эвристическая процедура использует субдискретизацию, поэтому оценки могут варьироваться от одного вызова к другому. Поэтому для воспроизведения результатов установите начальное число случайного числа, используя rng перед тренировкой.

  • При указании KernelScale и свою собственную функцию ядра, например, 'KernelFunction','kernel', то программное обеспечение выдает ошибку. Необходимо применить масштабирование в пределах kernel.

Пример: 'KernelScale','auto'

Типы данных: double | single | char | string

Порядок полиномиальных функций ядра, указанный как разделенная запятыми пара, состоящая из 'PolynomialOrder' и положительное целое число.

Если установить 'PolynomialOrder' и KernelFunction не является 'polynomial', то программное обеспечение выдает ошибку.

Пример: 'PolynomialOrder',2

Типы данных: double | single

Параметр смещения ядра, указанный как разделенная запятыми пара, состоящая из 'KernelOffset' и неотрицательный скаляр.

Программное обеспечение добавляет KernelOffset к каждому элементу матрицы Gram.

Значения по умолчанию:

  • 0 если решателем является SMO (то есть задается 'Solver','SMO')

  • 0.1 если решателем является ISDA (то есть задается 'Solver','ISDA')

Пример: 'KernelOffset',0

Типы данных: double | single

Половина ширины полосы, нечувствительной к эпсилону, указанной как пара, разделенная запятыми, состоящая из 'Epsilon' и неотрицательное скалярное значение.

Дефолт Epsilon значение равно iqr(Y)/13.49, которая представляет собой оценку десятой части стандартного отклонения с использованием межквартильного диапазона переменной отклика Y. Если iqr(Y) равно нулю, тогда значение по умолчанию Epsilon значение равно 0,1.

Пример: 'Epsilon',0.3

Типы данных: single | double

Флаг для стандартизации данных предиктора, указанный как пара, разделенная запятыми, состоящая из 'Standardize' и true (1) или false (0).

Если установить 'Standardize',true:

  • Программное обеспечение центрирует и масштабирует каждый столбец данных предиктора (X) по средневзвешенному столбцу и стандартному отклонению соответственно (для получения подробной информации о взвешенной стандартизации см. Алгоритмы). MATLAB не стандартизирует данные, содержащиеся в фиктивных столбцах переменных, созданных для категориальных предикторов.

  • Программное обеспечение обучает модель, используя стандартизированную матрицу предиктора, но сохраняет нестандартные данные в свойстве модели X.

Пример: 'Standardize',true

Типы данных: logical

Процедура оптимизации, заданная как пара, разделенная запятыми, состоящая из 'Solver' и значение в этой таблице.

СтоимостьОписание
'ISDA'Итеративный алгоритм одиночных данных (см. [30])
'L1QP'Использование quadprog (Optimization Toolbox) для реализации L1 мягкой минимизации полей с помощью квадратичного программирования. Для этого параметра требуется лицензия Optimization Toolbox™. Дополнительные сведения см. в разделе Определение квадратного программирования (панель инструментов оптимизации).
'SMO'Последовательная минимальная оптимизация (см. [17])

Значения по умолчанию:

  • 'ISDA' при установке 'OutlierFraction' до положительного значения

  • 'SMO' иначе

Пример: 'Solver','ISDA'

Начальные оценки альфа-коэффициентов, указанных как пара, разделенная запятыми, состоящая из 'Alpha' и числовой вектор. Длина Alpha должно быть равно количеству строк X.

  • Каждый элемент Alpha соответствует наблюдению в X.

  • Alpha не может содержать никаких NaNs.

  • При указании Alpha и любой из аргументов пары имя-значение перекрестной проверки ('CrossVal', 'CVPartition', 'Holdout', 'KFold', или 'Leaveout'), то программное обеспечение возвращает ошибку.

Если Y содержит любые отсутствующие значения, затем удалите все строки Y, X, и Alpha которые соответствуют отсутствующим значениям. То есть введите:

idx = ~isnan(Y);
Y = Y(idx);
X = X(idx,:);
alpha = alpha(idx);
Затем, пройти Y, X, и alpha в качестве ответа, предикторов и начальных альфа-оценок соответственно.

Значение по умолчанию: zeros(size(Y,1)).

Пример: 'Alpha',0.1*ones(size(X,1),1)

Типы данных: single | double

Размер кэша, указанный как разделенная запятыми пара, состоящая из 'CacheSize' и 'maximal' или положительный скаляр.

Если CacheSize является 'maximal', то программное обеспечение резервирует достаточно памяти для хранения всей матрицы n-на-n Gram.

Если CacheSize является положительным скаляром, то программное обеспечение резервирует CacheSize мегабайт памяти для обучения модели.

Пример: 'CacheSize','maximal'

Типы данных: double | single | char | string

Флаг для отсечения альфа-коэффициентов, указанный как разделенная запятыми пара, состоящая из 'ClipAlphas' и либо true или false.

Предположим, что альфа-коэффициент для наблюдения j равен αj, а ограничение поля для наблюдения j равно Cj, j = 1,..., n, где n - размер обучающей выборки.

СтоимостьОписание
trueПри каждой итерации, если αj находится вблизи 0 или около Cj, то MATLAB устанавливает αj в 0 или в Cj соответственно.
falseMATLAB не изменяет альфа-коэффициенты во время оптимизации.

MATLAB сохраняет конечные значения α в Alpha свойство обучаемого объекта модели SVM.

ClipAlphas может влиять на сходимость SMO и ISDA.

Пример: 'ClipAlphas',false

Типы данных: logical

Количество итераций между выводом диагностического сообщения оптимизации, указанного как пара, разделенная запятыми, состоящая из 'NumPrint' и неотрицательное целое число.

При указании 'Verbose',1 и 'NumPrint',numprint, то программное обеспечение отображает все диагностические сообщения оптимизации от SMO и ISDA каждый numprint итерации в окне команд.

Пример: 'NumPrint',500

Типы данных: double | single

Ожидаемая доля отклонений в данных обучения, указанная как пара, разделенная запятыми, состоящая из 'OutlierFraction' и числовой скаляр в интервале [0,1). fitrsvm удаляет наблюдения с большими градиентами, обеспечивая, чтобы fitrsvm удаляет часть наблюдений, указанную в OutlierFraction к моменту достижения сходимости. Эта пара имя-значение допустима только тогда, когда 'Solver' является 'ISDA'.

Пример: 'OutlierFraction',0.1

Типы данных: single | double

Флажок для замены повторяющихся наблюдений одиночными наблюдениями в учебных данных, указанных как разделенная запятыми пара, состоящая из 'RemoveDuplicates' и true или false.

Если RemoveDuplicates является true, то fitrsvm заменяет повторяющиеся наблюдения в учебных данных одним наблюдением с одинаковым значением. Вес одиночного наблюдения равен сумме весов соответствующих снятых дубликатов (см. Weights).

Совет

Если набор данных содержит много повторяющихся наблюдений, укажите 'RemoveDuplicates',true может значительно сократить время сходимости.

Типы данных: logical

Уровень детализации, указанный как разделенная запятыми пара, состоящая из 'Verbose' и 0, 1, или 2. Значение Verbose управляет объемом информации об оптимизации, отображаемой программой в окне команд, и сохраняет эту информацию в виде структуры в Mdl.ConvergenceInfo.History.

В этой таблице представлены доступные параметры уровня детализации.

СтоимостьОписание
0Программа не отображает и не сохраняет информацию о сходимости.
1Программа отображает диагностические сообщения и сохраняет критерии сходимости каждый numprint итерации, где numprint - значение аргумента пары имя-значение 'NumPrint'.
2Программа отображает диагностические сообщения и сохраняет критерии сходимости на каждой итерации.

Пример: 'Verbose',1

Типы данных: double | single

Другие опции регрессии

свернуть все

Список категориальных предикторов, указанный как одно из значений в этой таблице.

СтоимостьОписание
Вектор положительных целых чисел

Каждая запись в векторе представляет собой значение индекса, соответствующее столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся в диапазоне от 1 до p, где p - количество предикторов, используемых для обучения модели.

Если fitrsvm использует подмножество входных переменных в качестве предикторов, затем функция индексирует предикторы, используя только подмножество. 'CategoricalPredictors' значения не подсчитывают переменную отклика, переменную веса наблюдения и любые другие переменные, которые функция не использует.

Логический вектор

A true ввод означает, что соответствующий столбец данных предиктора является категориальной переменной. Длина вектора равна p.

Символьная матрицаКаждая строка матрицы является именем предикторной переменной. Имена должны соответствовать записям в PredictorNames. Поместите имена с дополнительными пробелами, чтобы каждая строка символьной матрицы имела одинаковую длину.
Строковый массив или массив ячеек символьных векторовКаждый элемент массива является именем переменной предиктора. Имена должны соответствовать записям в PredictorNames.
'all'Все предикторы категоричны.

По умолчанию, если данные предиктора находятся в таблице (Tbl), fitrsvm предполагает, что переменная категорична, если она является логическим вектором, категориальным вектором, символьным массивом, строковым массивом или массивом ячеек символьных векторов. Если данные предиктора являются матрицей (X), fitrsvm предполагает, что все предикторы непрерывны. Чтобы определить любые другие предикторы как категориальные предикторы, укажите их с помощью 'CategoricalPredictors' аргумент «имя-значение».

Для выявленных категориальных предикторов fitrsvm создает фиктивные переменные, используя две различные схемы, в зависимости от того, неупорядочена или упорядочена категориальная переменная. Для неупорядоченной категориальной переменной fitrsvm создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной fitrsvm создает на одну фиктивную переменную меньше числа категорий. Дополнительные сведения см. в разделе Автоматическое создание фиктивных переменных.

Пример: 'CategoricalPredictors','all'

Типы данных: single | double | logical | char | string | cell

Имена переменных предиктора, заданные как строковый массив уникальных имен или массив ячеек уникальных векторов символов. Функциональные возможности PredictorNames зависит от способа ввода данных обучения.

  • Если вы поставляете X и Y, то вы можете использовать PredictorNames назначение имен переменным предиктора в X.

    • Порядок имен в PredictorNames должен соответствовать порядку столбцов X. То есть PredictorNames{1} является именем X(:,1), PredictorNames{2} является именем X(:,2)и так далее. Также, size(X,2) и numel(PredictorNames) должно быть равным.

    • По умолчанию PredictorNames является {'x1','x2',...}.

  • Если вы поставляете Tbl, то вы можете использовать PredictorNames чтобы выбрать, какие переменные предиктора использовать в обучении. То есть fitrsvm использует только переменные предиктора в PredictorNames и переменную ответа во время обучения.

    • PredictorNames должен быть подмножеством Tbl.Properties.VariableNames и не может включать имя переменной ответа.

    • По умолчанию PredictorNames содержит имена всех переменных предиктора.

    • Хорошей практикой является определение предикторов для обучения с использованием 'PredictorNames' или formulaно не оба.

Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}

Типы данных: string | cell

Имя переменной ответа, указанное как вектор символа или скаляр строки.

  • Если вы поставляете Y, то вы можете использовать 'ResponseName' для указания имени переменной ответа.

  • Если вы поставляете ResponseVarName или formula, то вы не можете использовать 'ResponseName'.

Пример: 'ResponseName','response'

Типы данных: char | string

Преобразование ответа, указанное как 'none' или дескриптор функции. Значение по умолчанию: 'none', что означает @(y)y, или нет трансформации. Для функции MATLAB или определяемой функции используйте ее дескриптор функции для преобразования ответа. Дескриптор функции должен принимать вектор (исходные значения ответа) и возвращать вектор того же размера (преобразованные значения ответа).

Пример: Предположим, что вы создаете дескриптор функции, который применяет экспоненциальное преобразование к входному вектору с помощью myfunction = @(y)exp(y). Затем можно указать преобразование ответа как 'ResponseTransform',myfunction.

Типы данных: char | string | function_handle

Веса наблюдения, указанные как разделенная запятыми пара, состоящая из 'Weights' и вектор числовых значений. Размер Weights должно равняться количеству строк в X. fitrsvm нормализует значения Weights для суммирования в 1.

Типы данных: single | double

Параметры перекрестной проверки

свернуть все

Флаг перекрестной проверки, заданный как пара, разделенная запятыми, состоящая из 'CrossVal' и либо 'on' или 'off'.

При указании 'on', то программное обеспечение реализует 10-кратную перекрестную проверку.

Чтобы переопределить этот параметр перекрестной проверки, используйте один из следующих аргументов пары имя-значение: CVPartition, Holdout, KFold, или Leaveout. Чтобы создать модель с перекрестной проверкой, можно использовать только один аргумент пары имя-значение перекрестной проверки одновременно.

Можно также выполнить перекрестную проверку модели позже с помощью crossval способ.

Пример: 'CrossVal','on'

Раздел перекрестной проверки, указанный как cvpartition объект секционирования, созданный cvpartition. Объект секционирования определяет тип перекрестной проверки и индексирования для наборов обучения и проверки.

Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.

Пример: Предположим, что вы создаете случайный раздел для пятикратной перекрестной проверки 500 наблюдений с помощью cvp = cvpartition(500,'KFold',5). Затем можно указать модель с перекрестной проверкой с помощью 'CVPartition',cvp.

Доля данных, используемых для проверки удержания, заданная как скалярное значение в диапазоне (0,1). При указании 'Holdout',p, затем программное обеспечение выполняет следующие действия:

  1. Случайный выбор и резервирование p*100% данных в качестве данных проверки и обучение модели с использованием остальных данных.

  2. Храните компактную обучаемую модель в Trained свойства перекрестной проверенной модели.

Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'Holdout',0.1

Типы данных: double | single

Число сгибов для использования в модели с перекрестной проверкой, указанное как положительное целое значение больше 1. При указании 'KFold',k, затем программное обеспечение выполняет следующие действия:

  1. Случайное разбиение данных на k наборы.

  2. Для каждого набора зарезервируйте набор в качестве данных проверки и обучайте модель с помощью другого k - 1 комплект.

  3. Сохранить k компактные, обученные модели в k-by-1 клеточный вектор в Trained свойства перекрестной проверенной модели.

Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'KFold',5

Типы данных: single | double

Флаг перекрестной проверки «оставить один», указанный как 'on' или 'off'. При указании 'Leaveout','on', то для каждого из n наблюдений (где n - количество наблюдений, исключая отсутствующие наблюдения, указанные в NumObservations свойство модели), программное обеспечение выполняет следующие действия:

  1. Зарезервируйте одно наблюдение в качестве данных проверки и обучите модель, используя другие наблюдения n-1.

  2. Храните n компактных обученных моделей в клеточном векторе n-by-1 в Trained свойства перекрестной проверенной модели.

Чтобы создать модель с перекрестной проверкой, можно указать только один из следующих четырех аргументов: CVPartition, Holdout, KFold, или Leaveout.

Пример: 'Leaveout','on'

Элементы управления сходимостью

свернуть все

Допуск для разности градиентов между верхними и нижними нарушителями, полученный SMO или ISDA, указанный как пара, разделенная запятыми, состоящая из 'DeltaGradientTolerance' и неотрицательный скаляр.

Пример: 'DeltaGradientTolerance',1e-4

Типы данных: single | double

Допустимая величина зазора, полученная SMO или ISDA, указанная как пара, разделенная запятыми, состоящая из 'GapTolerance' и неотрицательный скаляр.

Если GapTolerance является 0, то fitrsvm не использует этот параметр для проверки сходимости.

Пример: 'GapTolerance',1e-4

Типы данных: single | double

Максимальное число итераций числовой оптимизации, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число.

Программное обеспечение возвращает обученную модель независимо от того, успешно ли сходится процедура оптимизации. Mdl.ConvergenceInfo содержит информацию о сходимости.

Пример: 'IterationLimit',1e8

Типы данных: double | single

Допуск на нарушение Karush-Kuhn-Tucker (KKT), указанный как разделенная запятыми пара, состоящая из 'KKTTolerance' и неотрицательное скалярное значение.

Эта пара имя-значение применяется только в том случае, если 'Solver' является 'SMO' или 'ISDA'.

Если KKTTolerance является 0, то fitrsvm не использует этот параметр для проверки сходимости.

Пример: 'KKTTolerance',1e-4

Типы данных: single | double

Число итераций между сокращениями активного набора, указанного как пара, разделенная запятыми, состоящая из 'ShrinkagePeriod' и неотрицательное целое число.

Если установить 'ShrinkagePeriod',0, то программное обеспечение не сжимает активный аппарат.

Пример: 'ShrinkagePeriod',1000

Типы данных: double | single

Оптимизация гиперпараметров

свернуть все

Параметры для оптимизации, указанные как пара, разделенная запятыми, состоящая из 'OptimizeHyperparameters' и одно из следующих:

  • 'none' - Не оптимизировать.

  • 'auto' - Использование {'BoxConstraint','KernelScale','Epsilon'}.

  • 'all' - Оптимизируйте все подходящие параметры.

  • Строковый массив или массив ячеек допустимых имен параметров.

  • Вектор optimizableVariable объекты, обычно выходные данные hyperparameters.

Оптимизация пытается минимизировать потери при перекрестной проверке (ошибка) для fitrsvm путем изменения параметров. Для управления типом перекрестной проверки и другими аспектами оптимизации используйте HyperparameterOptimizationOptions пара имя-значение.

Примечание

'OptimizeHyperparameters' значения переопределяют любые значения, заданные с помощью других аргументов пары «имя-значение». Например, настройка 'OptimizeHyperparameters' кому 'auto' вызывает 'auto' значения для применения.

Подходящие параметры для fitrsvm являются:

  • BoxConstraintfitrsvm поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3].

  • KernelScalefitrsvm поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e3].

  • Epsilonfitrsvm поиск среди положительных значений, по умолчанию с логарифмическим масштабированием в диапазоне [1e-3,1e2]*iqr(Y)/1.349.

  • KernelFunctionfitrsvm поиск среди 'gaussian', 'linear', и 'polynomial'.

  • PolynomialOrderfitrsvm поиск среди целых чисел в диапазоне [2,4].

  • Standardizefitrsvm поиск среди 'true' и 'false'.

Установка параметров, не используемых по умолчанию, путем передачи вектора optimizableVariable объекты, не имеющие значений по умолчанию. Например,

load carsmall
params = hyperparameters('fitrsvm',[Horsepower,Weight],MPG);
params(1).Range = [1e-4,1e6];

Проход params как значение OptimizeHyperparameters.

По умолчанию итеративное отображение отображается в командной строке, а графики отображаются в соответствии с количеством гиперпараметров в оптимизации. Для оптимизации и графиков целевой функцией является log ( 1 + потери при перекрестной проверке) для регрессии и коэффициент неправильной классификации для классификации. Для управления итеративным отображением установите Verbose области 'HyperparameterOptimizationOptions' аргумент пары имя-значение. Для управления графиками установите ShowPlots области 'HyperparameterOptimizationOptions' аргумент пары имя-значение.

Пример см. в разделе Оптимизация регрессии SVM.

Пример: 'OptimizeHyperparameters','auto'

Опции оптимизации, указанные как разделенная запятыми пара, состоящая из 'HyperparameterOptimizationOptions' и структура. Этот аргумент изменяет эффект OptimizeHyperparameters аргумент пары имя-значение. Все поля в структуре являются необязательными.

Имя поляЦенностиДефолт
Optimizer
  • 'bayesopt' - использовать байесовскую оптимизацию. Внутренний вызов этого параметра bayesopt.

  • 'gridsearch' - Использовать поиск по сетке с NumGridDivisions значения для измерения.

  • 'randomsearch' - Случайный поиск среди MaxObjectiveEvaluations точки.

'gridsearch' ищет в случайном порядке, используя равномерную выборку без замены из сетки. После оптимизации можно получить таблицу в порядке сетки с помощью команды sortrows(Mdl.HyperparameterOptimizationResults).

'bayesopt'
AcquisitionFunctionName

  • 'expected-improvement-per-second-plus'

  • 'expected-improvement'

  • 'expected-improvement-plus'

  • 'expected-improvement-per-second'

  • 'lower-confidence-bound'

  • 'probability-of-improvement'

Функции приобретения, имена которых включают per-second не дают воспроизводимых результатов, поскольку оптимизация зависит от времени выполнения целевой функции. Функции приобретения, имена которых включают plus изменять их поведение при чрезмерной эксплуатации области. Для получения дополнительной информации см. Типы функций сбора данных.

'expected-improvement-per-second-plus'
MaxObjectiveEvaluationsМаксимальное количество оценок целевой функции.30 для 'bayesopt' или 'randomsearch'и вся сетка для 'gridsearch'
MaxTime

Ограничение по времени, указанное как положительный реал. Ограничение по времени в секундах, измеренное tic и toc. Время выполнения может превышать MaxTime потому что MaxTime не прерывает оценки функций.

Inf
NumGridDivisionsДля 'gridsearch', количество значений в каждом измерении. Значение может быть вектором положительных целых чисел, дающим количество значений для каждого измерения, или скаляром, который применяется ко всем измерениям. Это поле игнорируется для категориальных переменных.10
ShowPlotsЛогическое значение, указывающее, показывать ли графики. Если trueв этом поле отображается наилучшее значение целевой функции относительно номера итерации. Если имеется один или два параметра оптимизации, и если Optimizer является 'bayesopt', то ShowPlots также строит график модели целевой функции по параметрам.true
SaveIntermediateResultsЛогическое значение, указывающее, сохранять ли результаты при Optimizer является 'bayesopt'. Если true, это поле перезаписывает переменную рабочей области с именем 'BayesoptResults' на каждой итерации. Переменная является BayesianOptimization объект.false
Verbose

Отображение в командной строке.

  • 0 - Нет итеративного дисплея

  • 1 - Итеративный дисплей

  • 2 - Итеративный дисплей с дополнительной информацией

Для получения более подробной информации см. bayesopt Verbose аргумент пары имя-значение.

1
UseParallelЛогическое значение, указывающее, выполнять ли байесовскую оптимизацию параллельно, что требует Toolbox™ параллельных вычислений. Из-за непродуктивности параллельной синхронизации параллельная байесовская оптимизация не обязательно дает воспроизводимые результаты. Дополнительные сведения см. в разделе Параллельная байесовская оптимизация.false
Repartition

Логическое значение, указывающее, следует ли перераспределять перекрестную проверку при каждой итерации. Если falseоптимизатор использует один раздел для оптимизации.

true обычно дает наиболее надежные результаты, поскольку этот параметр учитывает секционирующий шум. Однако для хороших результатов, true требуется, по крайней мере, вдвое больше оценок функций.

false
Используйте не более одного из следующих трех имен полей.
CVPartitionA cvpartition объект, созданный cvpartition.'Kfold',5 если не указано какое-либо поле перекрестной проверки
HoldoutСкаляр в диапазоне (0,1) представляет собой удерживающую фракцию.
KfoldЦелое число больше 1.

Пример: 'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',60)

Типы данных: struct

Выходные аргументы

свернуть все

Обученная регрессионная модель SVM, возвращенная как RegressionSVM модель или RegressionPartitionedSVM модель с перекрестной проверкой.

Если задать какой-либо из аргументов пары имя-значение KFold, Holdout, Leaveout, CrossVal, или CVPartition, то Mdl является RegressionPartitionedSVM модель с перекрестной проверкой. В противном случае Mdl является RegressionSVM модель.

Ограничения

fitrsvm поддерживает низко- и умеренно-размерные наборы данных. Для набора высокоразмерных данных используйте fitrlinear вместо этого.

Совет

  • Если набор данных не велик, всегда старайтесь стандартизировать предикторы (см. Standardize). Стандартизация делает предикторы нечувствительными к масштабам, по которым они измеряются.

  • Рекомендуется выполнять перекрестную проверку с использованием KFold аргумент пары имя-значение. Результаты перекрестной проверки определяют, насколько хорошо обобщается модель SVM.

  • Разреженность в векторах поддержки является желательным свойством модели SVM. Чтобы уменьшить число векторов поддержки, установите BoxConstraint аргумент пары имя-значение для большого значения. Это действие также увеличивает время обучения.

  • Для оптимального времени обучения установите CacheSize насколько это позволяет ограничение памяти на компьютере.

  • Если ожидается гораздо меньше векторов поддержки, чем наблюдений в обучающем наборе, то можно значительно ускорить сходимость, сжимая активный набор с помощью аргумента пара имя-значение 'ShrinkagePeriod'. Рекомендуется использовать 'ShrinkagePeriod',1000.

  • Повторяющиеся наблюдения, которые находятся далеко от линии регрессии, не влияют на сходимость. Однако только несколько повторяющихся наблюдений, которые происходят вблизи линии регрессии, могут значительно замедлить сходимость. Для ускорения сходимости укажите 'RemoveDuplicates',true если:

    • Набор данных содержит множество повторяющихся наблюдений.

    • Вы подозреваете, что несколько повторяющихся наблюдений могут оказаться вблизи линии регрессии.

    Однако для ведения исходного набора данных во время обучения fitrsvm должен временно хранить отдельные наборы данных: исходный и без дубликатов наблюдений. Поэтому при указании true для наборов данных, содержащих несколько дубликатов, fitrsvm потребляет почти вдвое больше памяти исходных данных.

  • После обучения модели можно создать код C/C + +, который предсказывает ответы на новые данные. Для создания кода C/C + + требуется Coder™ MATLAB. Дополнительные сведения см. в разделе Введение в создание кода.

Алгоритмы

  • Математическую формулировку задач линейной и нелинейной регрессии SVM и алгоритмов решателя см. в разделе Общие сведения о поддержке векторной машинной регрессии.

  • NaN, <undefined>, пустой символьный вектор (''), пустая строка (""), и <missing> значения указывают отсутствующие значения данных. fitrsvm удаляет целые строки данных, соответствующие отсутствующему ответу. При нормализации весов fitrsvm игнорирует любой вес, соответствующий наблюдению, по меньшей мере, с одним отсутствующим предиктором. Следовательно, ограничения поля наблюдения могут не совпадать BoxConstraint.

  • fitrsvm удаляет наблюдения, имеющие нулевой вес.

  • Если установить 'Standardize',true и 'Weights', то fitrsvm стандартизирует предикторы, используя их соответствующие взвешенные средства и взвешенные стандартные отклонения. То есть fitrsvm стандартизирует предиктор j (xj) с использованием

    xj∗=xj−μj∗σj∗.

    • μj∗=1∑kwk∑kwkxjk.

    • xjk - наблюдение k (строка) предиктора j (столбец).

    • (σj∗) 2=v1v12−v2∑kwk (xjk−μj∗) 2.

    • v1=∑jwj.

    • v2=∑j (wj) 2.

  • Если данные предиктора содержат категориальные переменные, то программное обеспечение обычно использует полную фиктивную кодировку для этих переменных. Программа создает одну фиктивную переменную для каждого уровня каждой категориальной переменной.

    • PredictorNames свойство сохраняет один элемент для каждого из исходных имен переменных предиктора. Например, предположим, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Тогда PredictorNames является массивом ячеек 1 на 3 символьных векторов, содержащих исходные имена переменных предиктора.

    • ExpandedPredictorNames свойство сохраняет один элемент для каждой из переменных предиктора, включая фиктивные переменные. Например, предположим, что существует три предиктора, один из которых является категориальной переменной с тремя уровнями. Тогда ExpandedPredictorNames - клеточный массив символьных векторов, содержащий имена переменных предиктора и новых фиктивных переменных.

    • Аналогично, Beta свойство хранит один бета-коэффициент для каждого предиктора, включая фиктивные переменные.

    • SupportVectors свойство сохраняет предикторные значения для векторов поддержки, включая фиктивные переменные. Например, предположим, что существуют m векторов поддержки и три предиктора, один из которых является категориальной переменной с тремя уровнями. Тогда SupportVectors является матрицей m-на-5.

    • X свойство сохраняет данные обучения в том виде, в каком они были первоначально введены. Он не включает фиктивные переменные. Если вводом является таблица, X содержит только столбцы, используемые в качестве предикторов.

  • Для предикторов, указанных в таблице, если какая-либо из переменных содержит упорядоченные (порядковые) категории, программное обеспечение использует кодировку порядковых номеров для этих переменных.

    • Для переменной, имеющей k упорядоченных уровней, программа создает k-1 фиктивных переменных. j-я фиктивная переменная равна -1 для уровней до j и + 1 для уровней j + 1-k.

    • Имена фиктивных переменных, сохраненных в ExpandedPredictorNames свойство указывает первый уровень со значением + 1. Программа сохраняет k-1 дополнительных предикторных имен для фиктивных переменных, включая имена уровней 2, 3,..., k.

  • Все решатели реализуют L1 минимизацию мягких полей.

  • Давайте p - доля отклонений, ожидаемая в данных обучения. Если установить 'OutlierFraction',p, то программное обеспечение реализует надежное обучение. Другими словами, программное обеспечение пытается удалить 100p% наблюдений, когда алгоритм оптимизации сходится. Удаленные наблюдения соответствуют градиентам, которые являются большими по величине.

Ссылки

[1] Кларк, Д., З. Шретер, А. Адамс. «A Quantificative Comparison of Dystal and Backpropagation» («Количественное сравнение кристалла и обратного распространения»), представленный Австралийской конференции по нейронным сетям, 1996 год.

[2] Вентилятор, R.-E., P.-H. Чен и К.-Ж. Лин. «Выбор рабочего набора с использованием информации второго порядка для тренировочных машин поддержки векторов». Журнал исследований машинного обучения, том 6, 2005, стр. 1889-1918.

[3] Кекман В., Т. -М. Хуан и М. Фогт. «Итеративный алгоритм одиночных данных для обучения машин ядра из огромных наборов данных: теория и производительность». В поддержке векторных машин: теория и приложения. Под редакцией Липо Вана, 255-274. Берлин: Спрингер-Верлаг, 2005.

[4] Лихман, M. UCI Machine Learning Repository, [http://archive.ics.uci.edu/ml]. Ирвин, Калифорния: Калифорнийский университет, Школа информации и компьютерных наук.

[5] Нэш, У. Джей, Т. Л. Селлерс, С. Р. Толбот, А. Дж. Коуторн и У. Б. Форд. "Популяционная биология Абалоне (вид Haliotis) в Тасмании. И. Блэклип Абалоне (Х. рубра) с Северного побережья и островов Бассова пролива ". Отдел морского рыболовства, Технический доклад № 48, 1994 год.

[6] Во, С. «Расширение и сравнительный анализ каскадной корреляции: расширение каскадно-корреляционной архитектуры и сравнительный анализ управляемых вперед искусственных нейронных сетей». Факультет компьютерных наук Тасманийского университета, 1995 год.

Расширенные возможности

Представлен в R2015b