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. The 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 на все данные с помощью наилучшего λ и постройте график весов функций

Используйте решатель 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' и вектор < reservedrangesplaceholder1 > -на- действительных положительных скалярных величин > -на- действительных положительных скалярных величин, где 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

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

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

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

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

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

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

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

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

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

  • 'lbfgs' - Алгоритм Broyden-Fletcher-Goldfarb-Shanno (LBFGS) с ограниченной памятью

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

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

По умолчанию это 'lbfgs' для n ≤ 1000 и 'sgd' для n > 1000.

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

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

  • 'classiferror' - Ошибка неправильной классификации

    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, <reservedrangesplaceholder1> <reservedrangesplaceholder0>) следующим образом:

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

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

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

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

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

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

Опции LBFGS

свернуть все

Размер буфера истории для Hessian приближения для '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' и положительный действительный скаляр. The 'lbfgs' решатель использует абсолютный допуск шага, и 'sgd' решатель использует относительный допуск шага.

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

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

Мини-пакетные опции LBFGS

свернуть все

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

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

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

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

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

свернуть все

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

Введенный в R2016b