exponenta event banner

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. The axes 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 наблюдений с 4000 элементами. Каждый элемент в 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. The axes contains an object of type line.

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

[~,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 на все данные, используя best λ, и постройте график весов элементов

Используйте решатель 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. The axes 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 должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как 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-на-1 действительных положительных скаляров, где p - количество предикторов в обучающих данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Индикатор уровня детализации для отображения сводки сходимости, указанный как разделенная запятыми пара, состоящая из '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' - Ошибка классификации

    l (yi, yj) = {1если yi≠yj,0otherwise.

  • @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 (yi, yj) следующим образом:

f (w) =1n∑i=1n∑j=1,j≠inpijl (yi, yj) +λ∑r=1pwr2,

где w - вектор веса признака, n - число наблюдений, а p - число переменных предиктора. pij - это вероятность того, что xj является точкой отсчета для xi. Дополнительные сведения см. в разделе Выбор функций NCA для классификации.

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

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

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

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

Варианты LBFGS

свернуть все

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

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

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

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

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

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

  • 'weakwolfe' - Слабый поиск линии Wolfe

  • 'strongwolfe' - Сильный поиск линии Wolfe

  • '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 объект.

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