fscnca

Выбор признаков с помощью анализа компонента окружения для классификации

Описание

пример

mdl = fscnca(X,Y) выполняет выбор признаков для классификации с помощью предикторов в X и ответы в Y.

fscnca изучает веса функции при помощи диагональной адаптации анализа компонента окружения (NCA) с регуляризацией.

пример

mdl = fscnca(X,Y,Name,Value) выполняет выбор признаков для классификации с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".

Примеры

свернуть все

Сгенерируйте игрушечные данные, где переменная отклика зависит от 3-х, 9-х, и 15-х предикторов.

rng(0,'twister'); % For reproducibility
N = 100;
X = rand(N,20);
y = -ones(N,1);
y(X(:,3).*X(:,9)./X(:,15) < 0.4) = 1;

Подбирайте аналитическую модель компонента окружения для классификации.

mdl = fscnca(X,y,'Solver','sgd','Verbose',1);
 o Tuning initial learning rate: NumTuningIterations = 20, TuningSubsetSize = 100

|===============================================|
|    TUNING    | TUNING SUBSET |    LEARNING    |
|     ITER     |   FUN VALUE   |      RATE      |
|===============================================|
|            1 | -3.755936e-01 |   2.000000e-01 |
|            2 | -3.950971e-01 |   4.000000e-01 |
|            3 | -4.311848e-01 |   8.000000e-01 |
|            4 | -4.903195e-01 |   1.600000e+00 |
|            5 | -5.630190e-01 |   3.200000e+00 |
|            6 | -6.166993e-01 |   6.400000e+00 |
|            7 | -6.255669e-01 |   1.280000e+01 |
|            8 | -6.255669e-01 |   1.280000e+01 |
|            9 | -6.255669e-01 |   1.280000e+01 |
|           10 | -6.255669e-01 |   1.280000e+01 |
|           11 | -6.255669e-01 |   1.280000e+01 |
|           12 | -6.255669e-01 |   1.280000e+01 |
|           13 | -6.255669e-01 |   1.280000e+01 |
|           14 | -6.279210e-01 |   2.560000e+01 |
|           15 | -6.279210e-01 |   2.560000e+01 |
|           16 | -6.279210e-01 |   2.560000e+01 |
|           17 | -6.279210e-01 |   2.560000e+01 |
|           18 | -6.279210e-01 |   2.560000e+01 |
|           19 | -6.279210e-01 |   2.560000e+01 |
|           20 | -6.279210e-01 |   2.560000e+01 |

 o Solver = SGD, MiniBatchSize = 10, PassLimit = 5

|==========================================================================================|
|   PASS   |     ITER     | AVG MINIBATCH | AVG MINIBATCH |   NORM STEP   |    LEARNING    |
|          |              |   FUN VALUE   |   NORM GRAD   |               |      RATE      |
|==========================================================================================|
|        0 |            9 | -5.658450e-01 |  4.492407e-02 |  9.290605e-01 |   2.560000e+01 |
|        1 |           19 | -6.131382e-01 |  4.923625e-02 |  7.421541e-01 |   1.280000e+01 |
|        2 |           29 | -6.225056e-01 |  3.738784e-02 |  3.277588e-01 |   8.533333e+00 |
|        3 |           39 | -6.233366e-01 |  4.947901e-02 |  5.431133e-01 |   6.400000e+00 |
|        4 |           49 | -6.238576e-01 |  3.445763e-02 |  2.946188e-01 |   5.120000e+00 |

         Two norm of the final step = 2.946e-01
Relative two norm of the final step = 6.588e-02, TolX = 1.000e-06
EXIT: Iteration or pass limit reached.

Постройте выбранные функции. Веса несоответствующих функций должны быть близко к нулю.

figure()
plot(mdl.FeatureWeights,'ro')
grid on
xlabel('Feature index')
ylabel('Feature weight')

Figure contains an axes object. The axes object contains an object of type line.

fscnca правильно обнаруживает соответствующие функции.

Загрузка демонстрационных данных

load ovariancancer; 
whos
  Name        Size                Bytes  Class     Attributes

  grp       216x1                 25056  cell                
  obs       216x4000            3456000  single              

Этот пример использует набор данных рака яичника с высоким разрешением, который был сгенерирован с помощью массива белка WCX2. После некоторых шагов предварительной обработки набор данных имеет две переменные: obs и grp. obs переменная состоит 216 наблюдений с 4 000 функций. Каждый элемент в grp задает группу к который соответствующая строка obs принадлежит.

Разделите данные на наборы обучающих данных и наборы тестов

Используйте cvpartition разделить данные на набор обучающих данных размера 160 и набор тестов размера 56. И набор обучающих данных и набор тестов имеют примерно те же пропорции группы как в grp.

rng(1); % For reproducibility
cvp = cvpartition(grp,'holdout',56)
cvp = 
Hold-out cross validation partition
   NumObservations: 216
       NumTestSets: 1
         TrainSize: 160
          TestSize: 56
Xtrain = obs(cvp.training,:);
ytrain = grp(cvp.training,:);
Xtest  = obs(cvp.test,:);
ytest  = grp(cvp.test,:);

Определите, необходим ли выбор признаков

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

nca = fscnca(Xtrain,ytrain,'FitMethod','none');
L = loss(nca,Xtest,ytest)
L = 0.0893

Эта опция вычисляет ошибку обобщения модели выбора признаков анализа компонента окружения (NCA) использование начальных весов функции (в этом случае веса функции по умолчанию) обеспеченный в fscnca.

Соответствуйте NCA без параметра регуляризации (Lambda = 0)

nca = fscnca(Xtrain,ytrain,'FitMethod','exact','Lambda',0,...
      'Solver','sgd','Standardize',true);
L = loss(nca,Xtest,ytest)
L = 0.0714

Улучшение на значении потерь предполагает, что выбор признаков является хорошей идеей. Настройка λ значение обычно улучшает результаты.

Настройте параметр регуляризации для NCA использование пятикратной перекрестной проверки

Настройка λ средние значения, находящие λ значение, которое производит минимальную потерю классификации. Настроиться λ использование перекрестной проверки:

1. Разделите обучающие данные в пять сгибов и извлеките количество валидации (тест) наборы. Для каждого сгиба, cvpartition присвоения четыре пятых данных как набор обучающих данных и одна пятая данных как набор тестов.

cvp = cvpartition(ytrain,'kfold',5);
numvalidsets = cvp.NumTestSets;

Присвоение λ значения и создают массив, чтобы сохранить значения функции потерь.

n = length(ytrain);
lambdavals = linspace(0,20,20)/n;
lossvals = zeros(length(lambdavals),numvalidsets);

2. Обучите модель NCA каждому λ значение, с помощью набора обучающих данных в каждом сгибе.

3. Вычислите потерю классификации для соответствующего набора тестов в сгибе с помощью модели NCA. Запишите значение потерь.

4. Повторите этот процесс для всех сгибов и всех λ значения.

for i = 1:length(lambdavals)
    for k = 1:numvalidsets
        X = Xtrain(cvp.training(k),:);
        y = ytrain(cvp.training(k),:);
        Xvalid = Xtrain(cvp.test(k),:);
        yvalid = ytrain(cvp.test(k),:);

        nca = fscnca(X,y,'FitMethod','exact', ...
             'Solver','sgd','Lambda',lambdavals(i), ...
             'IterationLimit',30,'GradientTolerance',1e-4, ...
             'Standardize',true);
                  
        lossvals(i,k) = loss(nca,Xvalid,yvalid,'LossFunction','classiferror');
    end
end

Вычислите среднюю потерю, полученную из сгибов для каждого λ значение.

meanloss = mean(lossvals,2);

Постройте средние значения потерь по сравнению с λ значения.

figure()
plot(lambdavals,meanloss,'ro-')
xlabel('Lambda')
ylabel('Loss (MSE)')
grid on

Figure contains an axes object. The axes object contains an object of type line.

Найдите лучшее значение lambda, которое соответствует минимальной средней потере.

[~,idx] = min(meanloss) % Find the index
idx = 2
bestlambda = lambdavals(idx) % Find the best lambda value
bestlambda = 0.0066
bestloss = meanloss(idx)
bestloss = 0.0313

Подбирайте nca модель на всех данных, использующих лучше всего λ и постройте веса функции

Используйте решатель lbfgs и стандартизируйте значения предиктора.

nca = fscnca(Xtrain,ytrain,'FitMethod','exact','Solver','sgd',...
    'Lambda',bestlambda,'Standardize',true,'Verbose',1);
 o Tuning initial learning rate: NumTuningIterations = 20, TuningSubsetSize = 100

|===============================================|
|    TUNING    | TUNING SUBSET |    LEARNING    |
|     ITER     |   FUN VALUE   |      RATE      |
|===============================================|
|            1 |  2.403497e+01 |   2.000000e-01 |
|            2 |  2.275050e+01 |   4.000000e-01 |
|            3 |  2.036845e+01 |   8.000000e-01 |
|            4 |  1.627647e+01 |   1.600000e+00 |
|            5 |  1.023512e+01 |   3.200000e+00 |
|            6 |  3.864283e+00 |   6.400000e+00 |
|            7 |  4.743816e-01 |   1.280000e+01 |
|            8 | -7.260138e-01 |   2.560000e+01 |
|            9 | -7.260138e-01 |   2.560000e+01 |
|           10 | -7.260138e-01 |   2.560000e+01 |
|           11 | -7.260138e-01 |   2.560000e+01 |
|           12 | -7.260138e-01 |   2.560000e+01 |
|           13 | -7.260138e-01 |   2.560000e+01 |
|           14 | -7.260138e-01 |   2.560000e+01 |
|           15 | -7.260138e-01 |   2.560000e+01 |
|           16 | -7.260138e-01 |   2.560000e+01 |
|           17 | -7.260138e-01 |   2.560000e+01 |
|           18 | -7.260138e-01 |   2.560000e+01 |
|           19 | -7.260138e-01 |   2.560000e+01 |
|           20 | -7.260138e-01 |   2.560000e+01 |

 o Solver = SGD, MiniBatchSize = 10, PassLimit = 5

|==========================================================================================|
|   PASS   |     ITER     | AVG MINIBATCH | AVG MINIBATCH |   NORM STEP   |    LEARNING    |
|          |              |   FUN VALUE   |   NORM GRAD   |               |      RATE      |
|==========================================================================================|
|        0 |            9 |  4.016078e+00 |  2.835465e-02 |  5.395984e+00 |   2.560000e+01 |
|        1 |           19 | -6.726156e-01 |  6.111354e-02 |  5.021138e-01 |   1.280000e+01 |
|        1 |           29 | -8.316555e-01 |  4.024186e-02 |  1.196031e+00 |   1.280000e+01 |
|        2 |           39 | -8.838656e-01 |  2.333416e-02 |  1.225834e-01 |   8.533333e+00 |
|        3 |           49 | -8.669034e-01 |  3.413162e-02 |  3.421902e-01 |   6.400000e+00 |
|        3 |           59 | -8.906936e-01 |  1.946295e-02 |  2.232511e-01 |   6.400000e+00 |
|        4 |           69 | -8.778630e-01 |  3.561290e-02 |  3.290645e-01 |   5.120000e+00 |
|        4 |           79 | -8.857135e-01 |  2.516638e-02 |  3.902979e-01 |   5.120000e+00 |

         Two norm of the final step = 3.903e-01
Relative two norm of the final step = 6.171e-03, TolX = 1.000e-06
EXIT: Iteration or pass limit reached.

Постройте веса функции.

figure()
plot(nca.FeatureWeights,'ro')
xlabel('Feature index')
ylabel('Feature weight')
grid on

Figure contains an axes object. The axes object contains an object of type line.

Выберите функции с помощью весов функции и относительного порога.

tol    = 0.02;
selidx = find(nca.FeatureWeights > tol*max(1,max(nca.FeatureWeights)))
selidx = 72×1

   565
   611
   654
   681
   737
   743
   744
   750
   754
   839
      ⋮

Вычислите потерю классификации с помощью набора тестов.

L = loss(nca,Xtest,ytest)
L = 0.0179

Классифицируйте наблюдения, использующие выбранные функции

Извлеките функции с весами функции, больше, чем 0 от обучающих данных.

features = Xtrain(:,selidx);

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

svmMdl = fitcsvm(features,ytrain);

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

L = loss(svmMdl,Xtest(:,selidx),ytest)
L = single
    0

Входные параметры

свернуть все

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

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

Класс помечает в виде категориального вектора, логического вектора, числового вектора, массива строк, массива ячеек из символьных векторов длины n или символьная матрица со строками n, где n является количеством наблюдений. Элемент i или строка i Y метка класса, соответствующая строке i X (наблюдение i).

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

Аргументы name-value

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

Пример: 'Solver','sgd','Weights',W,'Lambda',0.0003 задает решатель как стохастический градиентный спуск, веса наблюдения как значения в векторном W, и устанавливает параметр регуляризации в 0,0003.
Подбор кривой опциям

свернуть все

Метод для того, чтобы подбирать модель в виде разделенной запятой пары, состоящей из 'FitMethod' и одно из следующего:

  • 'exact' — Выполняет подбор кривой с помощью всех данных.

  • 'none' — Никакой подбор кривой. Используйте эту опцию, чтобы оценить ошибку обобщения модели NCA с помощью начальных весов функции, предоставленных в вызове fscnca.

  • 'average' — Делит данные на разделы (подмножества), соответствует каждому разделу с помощью exact метод, и возвращает среднее значение весов функции. Можно задать количество разделов с помощью NumPartitions аргумент пары "имя-значение".

Пример: 'FitMethod','none'

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

Пример: 'NumPartitions',15

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

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

Как количество наблюдений увеличения n, также уменьшается шанс сверхподбора кривой уменьшениям и необходимому количеству регуляризации. Смотрите Идентифицируют Соответствующие Функции Параметра Регуляризации Классификации и Мелодии, чтобы Обнаружить Функции Используя NCA для Классификации, чтобы изучить, как настроить параметр регуляризации.

Пример: 'Lambda',0.002

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

Ширина ядра в виде разделенной запятой пары, состоящей из 'LengthScale' и положительный действительный скаляр.

Значение шкалы расстояний 1 разумно, когда все предикторы находятся по той же шкале. Если предикторы в X имеют совсем другие величины, затем рассматривают стандартизацию значений предиктора с помощью 'Standardize',true и установка 'LengthScale',1.

Пример: 'LengthScale',1.5

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

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

Упорядоченная целевая функция для оптимизации весов функции невыпукла. В результате использование различных начальных весов функции может дать различные результаты. Установка всех начальных весов функции к 1 обычно работает хорошо, но в некоторых случаях, случайная инициализация с помощью rand(p,1) может дать лучшие качественные решения.

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

Веса наблюдения в виде разделенной запятой пары, состоящей из 'ObservationWeights' и n-by-1 вектор из действительных положительных скалярных величин. Используйте веса наблюдения, чтобы задать более высокую важность некоторых наблюдений по сравнению с другими. Веса по умолчанию присваивают равную важность для всех наблюдений.

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

Априорные вероятности для каждого класса в виде разделенной запятой пары, состоящей из 'Prior' и одно из следующего:

  • 'empirical'fscnca получает предшествующие вероятности класса из частот класса.

  • 'uniform'fscnca наборы все равные вероятности класса.

  • Структура с двумя полями:

    • ClassProbs — Вектор из вероятностей класса. Если это числовые значения с общим количеством, больше, чем 1, fsnca нормирует их, чтобы составить в целом 1.

    • ClassNames — Имена классов, соответствующие вероятностям класса в ClassProbs.

Пример: 'Prior','uniform'

Индикатор для стандартизации данных о предикторе в виде разделенной запятой пары, состоящей из 'Standardize' и любой false или true. Для получения дополнительной информации смотрите Удар Стандартизации.

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

Типы данных: логический

Индикатор уровня многословия для отображения сводных данных сходимости в виде разделенной запятой пары, состоящей из 'Verbose' и одно из следующего:

  • 0 — Никакие сводные данные сходимости

  • 1 — сводные данные Сходимости, включая норму градиента и значений целевой функции

  • > 1 — Больше информации о сходимости, в зависимости от алгоритма подбора

    При использовании 'minibatch-lbfgs' решатель и уровень многословия> 1, информация о сходимости включает итерацию журнал от промежуточных мини-пакетных подгонок LBFGS.

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

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

Тип решателя для оценки весов функции в виде разделенной запятой пары, состоящей из 'Solver' и одно из следующего:

  • 'lbfgs' — Ограниченная память Бройден Флетчер Голдфарб Шэнно (LBFGS) алгоритм

  • 'sgd' — Алгоритм стохастического градиентного спуска (SGD)

  • 'minibatch-lbfgs' — Стохастический градиентный спуск с алгоритмом LBFGS применился к мини-пакетам

Значением по умолчанию является 'lbfgs' для n ≤ 1000, и 'sgd' для n> 1000.

Пример: 'solver','minibatch-lbfgs'

Функция потерь в виде разделенной запятой пары, состоящей из 'LossFunction' и одно из следующих.

  • 'classiferror' — Ошибка Misclassification

    l(yi,yj)={1еслиyiyj,0в противном случае.

  • @lossfun — Пользовательский указатель функции потерь. Функция потерь имеет эту форму.

    function L = lossfun(Yu,Yv)
    % calculation of loss
    ...
    Yu u-by-1 вектор и Yv v-by-1 вектор. L u-by-v, матрица потери оценивает таким образом что L(i,j) значение потерь для Yu(i) и Yv(j).

Целевая функция для минимизации включает функцию потерь l (y i, y j) можно следующим образом:

f(w)=1ni=1nj=1,jinpijl(yi,yj)+λr=1pwr2,

где w является вектором веса функции, n является количеством наблюдений, и p является количеством переменных предикторов. ij p является вероятностью, что x j является контрольной точкой для x i. Для получения дополнительной информации см. Выбор признаков NCA для Классификации.

Пример: 'LossFunction',@lossfun

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

Пример: 'CacheSize',1500MB

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

Опции LBFGS

свернуть все

Размер буфера истории для приближения Гессиана для 'lbfgs' решатель в виде разделенной запятой пары, состоящей из 'HessianHistorySize' и положительное целое число. В каждой итерации функция использует новый HessianHistorySize итерации, чтобы создать приближение к обратному Гессиану.

Пример: 'HessianHistorySize',20

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

Начальный размер шага для 'lbfgs' решатель в виде разделенной запятой пары, состоящей из 'InitialStepSize' и положительный действительный скаляр. По умолчанию функция определяет начальный размер шага автоматически.

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

Метод поиска линии в виде разделенной запятой пары, состоящей из 'LineSearchMethod' и одно из следующего:

  • 'weakwolfe' — Слабый поиск линии Вольфа

  • 'strongwolfe' — Сильный поиск линии Вольфа

  • 'backtracking' — Отслеживание в обратном порядке поиска линии

Пример: 'LineSearchMethod','backtracking'

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

Пример: 'MaxLineSearchIterations',25

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

Относительный допуск сходимости на норме градиента для решателя lbfgsВ виде разделенной запятой пары, состоящей из 'GradientTolerance' и положительный действительный скаляр.

Пример: 'GradientTolerance',0.000002

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

Опции SGD

свернуть все

Начальная скорость обучения для 'sgd' решатель в виде разделенной запятой пары, состоящей из 'InitialLearningRate' и положительный действительный скаляр.

При использовании решателя вводят 'sgd', скорость обучения затухает по итерациям начиная со значения, заданного для 'InitialLearningRate'.

'auto' по умолчанию средние значения, что начальная скорость обучения определяется с помощью экспериментов на небольших подмножествах данных. Используйте NumTuningIterations аргумент пары "имя-значение", чтобы задать количество итераций для того, чтобы автоматически настроить начальную скорость обучения. Используйте TuningSubsetSize аргумент пары "имя-значение", чтобы задать количество наблюдений, чтобы использовать для того, чтобы автоматически настроить начальную скорость обучения.

Поскольку решатель вводит 'minibatch-lbfgs', можно установить 'InitialLearningRate' к очень высокому значению. В этом случае функция применяет LBFGS к каждому мини-пакету отдельно с начальными весами функции от предыдущего мини-пакета.

Чтобы убедиться выбранная начальная скорость обучения уменьшает объективное значение с каждой итерацией, постройте Iteration по сравнению с Objective значения, сохраненные в mdl.FitInfo свойство.

Можно использовать refit метод с 'InitialFeatureWeights' равняйтесь mdl.FeatureWeights начинать с текущего решения и запускать дополнительные итерации

Пример: 'InitialLearningRate',0.9

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

Количество наблюдений, чтобы использовать в каждом пакете для 'sgd' решатель в виде разделенной запятой пары, состоящей из 'MiniBatchSize' и положительное целое число от 1 до n.

Пример: 'MiniBatchSize',25

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

Максимальное количество проходит через все наблюдения n для решателя 'sgd'В виде разделенной запятой пары, состоящей из 'PassLimit' и положительное целое число. Каждый проходит через все данные, называется эпохой.

Пример: 'PassLimit',10

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

Частота пакетов для отображения сводных данных сходимости для 'sgd' решатель в виде разделенной запятой пары, состоящей из 'NumPrint' и положительное целое число. Этот аргумент применяется когда 'Verbose' значение больше 0. NumPrint мини-пакеты обрабатываются для каждой линии сводных данных сходимости, которые отображены на командной строке.

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

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

Количество настраивающихся итераций для 'sgd' решатель в виде разделенной запятой пары, состоящей из 'NumTuningIterations' и положительное целое число. Эта опция допустима только для 'InitialLearningRate','auto'.

Пример: 'NumTuningIterations',15

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

Количество наблюдений, чтобы использовать для настройки начальной скорости обучения в виде разделенной запятой пары, состоящей из 'TuningSubsetSize' и положительное целочисленное значение от 1 до n. Эта опция допустима только для 'InitialLearningRate','auto'.

Пример: 'TuningSubsetSize',25

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

SGD или опции LBFGS

свернуть все

Максимальное количество итераций в виде разделенной запятой пары, состоящей из 'IterationLimit' и положительное целое число. Значение по умолчанию 10000 для SGD и 1000 для LBFGS и мини-пакетного LBFGS.

Каждый проходит через пакет, итерация. Каждый проходит через все данные, эпоха. Если данные разделены на мини-пакеты k, то каждая эпоха эквивалентна итерациям k.

Пример: 'IterationLimit',250

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

Допуск сходимости на размере шага в виде разделенной запятой пары, состоящей из 'StepTolerance' и положительный действительный скаляр. 'lbfgs' решатель использует абсолютный допуск шага и 'sgd' решатель использует относительный допуск шага.

Пример: 'StepTolerance',0.000005

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

Мини-обработайте опции LBFGS в пакетном режиме

свернуть все

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

Пример: 'MiniBatchLBFGSIterations',15

Мини-пакетный алгоритм LBFGS является комбинацией SGD и методов LBFGS. Поэтому все аргументы пары "имя-значение", которые применяются к SGD и решателям LBFGS также, применяются к мини-пакетному алгоритму LBFGS.

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

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

свернуть все

Аналитическая модель компонента окружения для классификации, возвращенной как FeatureSelectionNCAClassification объект.

Введенный в R2017b