Выбор элемента с использованием анализа компонентов окрестности для классификации
выполняет выбор элемента для классификации с дополнительными опциями, заданными одним или несколькими аргументами пары имя-значение.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;
whosName 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

Найдите наилучшее значение лямбды, соответствующее минимальным средним потерям.
[~,idx] = min(meanloss) % Find the indexidx = 2
bestlambda = lambdavals(idx) % Find the best lambda valuebestlambda = 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

Выберите элементы, используя веса элементов и относительный порог.
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
X - Значения предикторных переменныхЗначения предикторных переменных, определенные как матрица n-by-p, где n - количество наблюдений, а p - число предикторных переменных.
Типы данных: single | double
Y - Этикетки классовМетки класса, указанные как категориальный вектор, логический вектор, числовой вектор, строковый массив, массив ячеек символьных векторов длиной 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' | 'average'Метод подгонки модели, указанный как разделенная запятыми пара, состоящая из 'FitMethod' и одно из следующих:
'exact' - Выполняет подгонку с использованием всех данных.
'none' - Без подгонки. Эта опция используется для оценки ошибки обобщения модели NCA с использованием начальных весов функций, предоставленных в вызове fscnca.
'average' - Делит данные на разделы (подмножества), подгоняет каждый раздел с помощью exact и возвращает среднее значение весов элемента. Можно указать количество разделов с помощью NumPartitions аргумент пары имя-значение.
Пример: 'FitMethod','none'
'NumPartitions' - Количество разделовmax(2,min(10,n)) (по умолчанию) | целое число от 2 до nКоличество разделов для разделения данных для использования с 'FitMethod','average' опция, заданная как пара, разделенная запятыми, состоящая из 'NumPartitions' и целое число от 2 до n, где n - число наблюдений.
Пример: 'NumPartitions',15
Типы данных: double | single
'Lambda' - Параметр регуляризацииПараметр регуляризации для предотвращения переполнения, указанный как пара, разделенная запятыми, состоящая из 'Lambda' и неотрицательный скаляр.
По мере увеличения числа наблюдений n вероятность переоснащения также уменьшается и требуемая величина регуляризации. См. раздел Определение соответствующих функций для классификации и Настройка параметра регуляризации для обнаружения функций с помощью NCA для классификации, чтобы узнать, как настроить параметр регуляризации.
Пример: 'Lambda',0.002
Типы данных: double | single
'LengthScale' - Ширина ядра1 (по умолчанию) | положительный вещественный скалярШирина ядра, указанная как разделенная запятыми пара, состоящая из 'LengthScale' и положительный действительный скаляр.
Значение шкалы длины 1 является разумным, когда все предикторы находятся в одной шкале. Если предикторы в X имеют очень разные величины, затем рассмотрите возможность стандартизации значений предиктора с помощью 'Standardize',true и настройка 'LengthScale',1.
Пример: 'LengthScale',1.5
Типы данных: double | single
'InitialFeatureWeights' - Начальные веса элементовones(p,1) (по умолчанию) | вектор p-by-1 действительных положительных скаляровНачальные веса элементов, указанные как разделенная запятыми пара, состоящая из 'InitialFeatureWeights' и вектор p-на-1 действительных положительных скаляров, где p - количество предикторов в обучающих данных.
Регуляризованная целевая функция для оптимизации весов признаков является неконвексной. В результате использование различных начальных весов признаков может дать разные результаты. Установка всех начальных весов элементов на 1 обычно работает хорошо, но в некоторых случаях случайная инициализация с использованием rand(p,1) может дать более качественные решения.
Типы данных: double | single
'Weights' - Наблюдательные весаВеса наблюдения, указанные как разделенная запятыми пара, состоящая из 'ObservationWeights' и вектор n-на-1 действительных положительных скаляров. Используйте веса наблюдений, чтобы указать более высокую важность некоторых наблюдений по сравнению с другими. Веса по умолчанию придают одинаковое значение всем наблюдениям.
Типы данных: double | single
'Prior' - Предварительные вероятности для каждого класса'empirical' (по умолчанию) | 'uniform' | структураПредыдущие вероятности для каждого класса, указанные как пара, разделенная запятыми, состоящая из 'Prior' и одно из следующих:
'empirical' — fscnca получает предшествующие вероятности классов из частот классов.
'uniform' — fscnca устанавливает все вероятности классов равными.
Структура с двумя полями:
ClassProbs - Вектор вероятностей классов. Если это числовые значения с общим значением больше 1, fsnca нормализует их до 1.
ClassNames - имена классов, соответствующие вероятностям классов в ClassProbs.
Пример: 'Prior','uniform'
'Standardize' - Индикатор для стандартизации данных предиктораfalse (по умолчанию) | trueИндикатор для стандартизации данных предиктора, указанный как пара, разделенная запятыми, состоящая из 'Standardize' и либо false или true. Дополнительные сведения см. в разделе Влияние стандартизации.
Пример: 'Standardize',true
Типы данных: logical
'Verbose' - Индикатор уровня детализацииИндикатор уровня детализации для отображения сводки сходимости, указанный как разделенная запятыми пара, состоящая из 'Verbose' и одно из следующих:
0 - Сводка сходимости отсутствует
1 - Сводка сходимости, включая норму значений градиента и целевой функции
> 1 - Дополнительная информация о сходимости в зависимости от алгоритма подгонки
При использовании 'minibatch-lbfgs' решатель и уровень детализации > 1, информация сходимости включает итерацию журнала из промежуточных мини-пакетов LBFGS.
Пример: 'Verbose',1
Типы данных: double | single
'Solver' - Тип решателя'lbfgs' | 'sgd' | 'minibatch-lbfgs'Тип решателя для оценки весов элементов, указанный как разделенная запятыми пара, состоящая из 'Solver' и одно из следующих:
'lbfgs' - Алгоритм Бройдена-Флетчера-Гольдфарба-Шанно (LBFGS) с ограниченной памятью
'sgd' - Алгоритм стохастического градиентного спуска (SGD)
'minibatch-lbfgs' - Стохастический градиентный спуск с алгоритмом LBFGS, применяемым к мини-партиям
По умолчанию: 'lbfgs' для n ≤ 1000 и 'sgd' для n > 1000.
Пример: 'solver','minibatch-lbfgs'
'LossFunction' - Функция потерь'classiferror' (по умолчанию) | дескриптор функцииФункция потерь, заданная как разделенная запятыми пара, состоящая из 'LossFunction' и одно из следующих.
'classiferror' - Ошибка классификации
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) следующим образом:
+λ∑r=1pwr2,
где w - вектор веса признака, n - число наблюдений, а p - число переменных предиктора. pij - это вероятность того, что xj является точкой отсчета для xi. Дополнительные сведения см. в разделе Выбор функций NCA для классификации.
Пример: 'LossFunction',@lossfun
'CacheSize' - Размер памяти1000MB (по умолчанию) | целое числоРазмер памяти, в МБ, используемый для вычисления целевой функции и градиента, определяемый как разделенная запятыми пара, состоящая из 'CacheSize' и целое число.
Пример: 'CacheSize',1500MB
Типы данных: double | single
'HessianHistorySize' - Размер буфера истории для гессенского приближения15 (по умолчанию) | положительное целое числоРазмер буфера истории для гессенского приближения для 'lbfgs' решатель, указанный как пара, разделенная запятыми, состоящая из 'HessianHistorySize' и положительное целое число. В каждой итерации функция использует самую последнюю HessianHistorySize итерации для построения аппроксимации к обратному гессенскому.
Пример: 'HessianHistorySize',20
Типы данных: double | single
'InitialStepSize' - Начальный размер шага'auto' (по умолчанию) | положительный вещественный скалярНачальный размер шага для 'lbfgs' решатель, указанный как пара, разделенная запятыми, состоящая из 'InitialStepSize' и положительный действительный скаляр. По умолчанию функция автоматически определяет начальный размер шага.
Типы данных: double | single
'LineSearchMethod' - Метод поиска строк'weakwolfe' (по умолчанию) | 'strongwolfe' | 'backtracking'Метод поиска строк, указанный как разделенная запятыми пара, состоящая из 'LineSearchMethod' и одно из следующих:
'weakwolfe' - Слабый поиск линии Wolfe
'strongwolfe' - Сильный поиск линии Wolfe
'backtracking' - Поиск по обратной линии
Пример: 'LineSearchMethod','backtracking'
'MaxLineSearchIterations' - Максимальное число итераций поиска строк20 (по умолчанию) | положительное целое числоМаксимальное количество итераций поиска строк, указанное как пара, разделенная запятыми, состоящая из 'MaxLineSearchIterations' и положительное целое число.
Пример: 'MaxLineSearchIterations',25
Типы данных: double | single
'GradientTolerance' - Относительный допуск сходимости1e-6 (по умолчанию) | положительный вещественный скалярОтносительный допуск сходимости для градиентной нормы для решателя lbfgs, указанная как пара, разделенная запятыми, состоящая из 'GradientTolerance' и положительный действительный скаляр.
Пример: 'GradientTolerance',0.000002
Типы данных: double | single
'InitialLearningRate' - Коэффициент начального обучения для 'sgd' решающее устройство'auto' (по умолчанию) | положительный вещественный скалярНачальный уровень обучения для 'sgd' решатель, указанный как пара, разделенная запятыми, состоящая из 'InitialLearningRate' и положительный действительный скаляр.
При использовании типа решателя 'sgd'скорость обучения замедляется по итерациям, начиная со значения, указанного для 'InitialLearningRate'.
Дефолт 'auto' означает, что начальная скорость обучения определяется с помощью экспериментов над небольшими подмножествами данных. Используйте NumTuningIterations аргумент пары имя-значение для указания количества итераций для автоматической настройки начальной скорости обучения. Используйте TuningSubsetSize аргумент пары «имя-значение» для указания количества наблюдений, используемых для автоматической настройки начальной скорости обучения.
Для типа решателя 'minibatch-lbfgs', можно установить 'InitialLearningRate' к очень высокому значению. В этом случае функция применяет LBFGS к каждой мини-партии отдельно с начальными весами признаков из предыдущей мини-партии.
Чтобы убедиться, что выбранная начальная скорость обучения уменьшает целевое значение с каждой итерацией, постройте график Iteration по сравнению с Objective значения, сохраненные в mdl.FitInfo собственность.
Вы можете использовать refit метод с 'InitialFeatureWeights' равно mdl.FeatureWeights для запуска из текущего решения и выполнения дополнительных итераций
Пример: 'InitialLearningRate',0.9
Типы данных: double | single
'MiniBatchSize' - Количество наблюдений, используемых в каждой партии для 'sgd' решающее устройствоКоличество наблюдений, используемых в каждой партии для 'sgd' решатель, указанный как пара, разделенная запятыми, состоящая из 'MiniBatchSize' и положительное целое число от 1 до n.
Пример: 'MiniBatchSize',25
Типы данных: double | single
'PassLimit' - Максимальное количество проходов для решателя 'sgd'5 (по умолчанию) | положительное целое число Максимальное количество проходов через все n наблюдений для решателя 'sgd', указанная как пара, разделенная запятыми, состоящая из 'PassLimit' и положительное целое число. Каждый проход через все данные называется эпохой.
Пример: 'PassLimit',10
Типы данных: double | single
'NumPrint' - Частота пакетов для отображения сводки сходимостиЧастота пакетов для отображения сводки сходимости для 'sgd' решатель, указанный как пара, разделенная запятыми, состоящая из 'NumPrint' и положительное целое число. Этот аргумент применяется, когда 'Verbose' значение больше 0. NumPrint мини-пакеты обрабатываются для каждой строки сводки сходимости, которая отображается в командной строке.
Пример: 'NumPrint',5
Типы данных: double | single
'NumTuningIterations' - количество итераций настройки;Количество итераций настройки для 'sgd' решатель, указанный как пара, разделенная запятыми, состоящая из 'NumTuningIterations' и положительное целое число. Этот параметр действителен только для 'InitialLearningRate','auto'.
Пример: 'NumTuningIterations',15
Типы данных: double | single
'TuningSubsetSize' - Количество наблюдений, используемых для настройки начальной успеваемостиКоличество наблюдений, используемых для настройки начальной скорости обучения, указанной как разделенная запятыми пара, состоящая из 'TuningSubsetSize' и положительное целое значение от 1 до n. Этот параметр допустим только для 'InitialLearningRate','auto'.
Пример: 'TuningSubsetSize',25
Типы данных: double | single
'IterationLimit' - Максимальное число итерацийМаксимальное количество итераций, указанное как пара, разделенная запятыми, состоящая из 'IterationLimit' и положительное целое число. Значение по умолчанию - 10000 для SGD и 1000 для LBFGS и мини-партии LBFGS.
Каждый проход через партию является итерацией. Каждый проход через все данные является эпохой. Если данные разделены на k мини-пакетов, то каждая эпоха эквивалентна k итерациям.
Пример: 'IterationLimit',250
Типы данных: double | single
'StepTolerance' - Допуск сходимости для размера шагаДопуск сходимости для размера шага, указанный как пара, разделенная запятыми, состоящая из 'StepTolerance' и положительный действительный скаляр. 'lbfgs' решатель использует абсолютный допуск шага, и 'sgd' решатель использует относительный допуск шага.
Пример: 'StepTolerance',0.000005
Типы данных: double | single
'MiniBatchLBFGSIterations' - Максимальное количество итераций на шаг LBFGS мини-партииМаксимальное количество итераций на шаг LBFGS мини-партии, указанное как пара, разделенная запятыми, состоящая из 'MiniBatchLBFGSIterations' и положительное целое число.
Пример: 'MiniBatchLBFGSIterations',15
Мини-пакетный алгоритм LBFGS представляет собой комбинацию методов SGD и LBFGS. Поэтому все аргументы пары имя-значение, которые применяются к решателям SGD и LBFGS, также применяются к алгоритму LBFGS мини-партии.
Типы данных: double | single
mdl - Модель анализа компонентов окрестности для классификацииFeatureSelectionNCAClassification объектМодель анализа компонентов окрестности для классификации, возвращенная как FeatureSelectionNCAClassification объект.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.