fscnca

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

Синтаксис

mdl = fscnca(X,Y)
mdl = fscnca(X,Y,Name,Value)

Описание

пример

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')

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

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

load ovariancancer; 
whos
  Name        Size                Bytes  Class     Attributes

  grp       216x1                 26784  cell                
  obs       216x4000            3456000  single              

Этот пример использует набор данных рака яичника с высоким разрешением, который был сгенерирован с помощью массива белка WCX2. Данные являются от FDA-NCI Клиническим Банком данных Программы Протеомики. После некоторых шагов предварительной обработки набор данных имеет две переменные: 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

Найдите лучшее значение 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.0250

Соответствуйте 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.024185e-02 |  1.196030e+00 |   1.280000e+01 |
|        2 |           39 | -8.838656e-01 |  2.333418e-02 |  1.225839e-01 |   8.533333e+00 |
|        3 |           49 | -8.669035e-01 |  3.413150e-02 |  3.421881e-01 |   6.400000e+00 |
|        3 |           59 | -8.906935e-01 |  1.946293e-02 |  2.232510e-01 |   6.400000e+00 |
|        4 |           69 | -8.778630e-01 |  3.561283e-02 |  3.290643e-01 |   5.120000e+00 |
|        4 |           79 | -8.857136e-01 |  2.516633e-02 |  3.902977e-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

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

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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