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

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

Найдите лучшее значение 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 имя аргумента и 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