Выбор признаков с помощью анализа соседних компонентов для классификации
выполняет выбор признаков для классификации с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".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
. 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
Найдите лучшее значение лямбды, которое соответствует минимальной средней потере.
[~,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
Выберите функции, используя веса функций и относительный порог.
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'
и вектор < reservedrangesplaceholder1 > -на- действительных положительных скалярных величин > -на- действительных положительных скалярных величин, где p - количество предикторов в обучающих данных.
Регуляризованная целевая функция для оптимизации весов признаков является неконвексной. В результате использование различных начальных весов функций может дать различные результаты. Установка всех начальных весов функций равной 1 обычно работает хорошо, но в некоторых случаях случайная инициализация с использованием rand(p,1)
может дать лучшие качественные решения.
Типы данных: double
| single
'Weights'
- Веса наблюденийВеса наблюдений, заданные как разделенная разделенными запятой парами, состоящая из 'ObservationWeights'
и вектор n -by-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'
- Алгоритм Broyden-Fletcher-Goldfarb-Shanno (LBFGS) с ограниченной памятью
'sgd'
- алгоритм Стохастического градиентного спуска (SGD)
'minibatch-lbfgs'
- Стохастический градиентный спуск с алгоритмом LBFGS, применяемым к мини-пакетам
По умолчанию это 'lbfgs'
для n ≤ 1000 и 'sgd'
для n > 1000.
Пример: 'solver','minibatch-lbfgs'
'LossFunction'
- Функция потерь'classiferror'
(по умолчанию) | указатель на функциюФункция потерь, заданная как разделенная разделенными запятой парами, состоящая из 'LossFunction'
и одно из следующих.
'classiferror'
- Ошибка неправильной классификации
- Пользовательский указатель на функцию потерь. Функция потерь имеет эту форму. 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>) следующим образом:
где w - вектор веса функции, n - количество наблюдений, а p - количество переменных предиктора. p ij - это вероятность того, что x j является контрольной точкой для x i. Для получения дополнительной информации см. раздел «Выбор признаков NCA для классификации».
Пример: 'LossFunction',@lossfun
'CacheSize'
- Размер памяти1000MB
(по умолчанию) | целое числоРазмер памяти, в МБ, для расчета целевой функции и градиента, заданный как разделенная разделенными запятой парами, состоящая из 'CacheSize'
и целое число.
Пример: 'CacheSize',1500MB
Типы данных: double
| single
'HessianHistorySize'
- Размер буфера истории для гессианского приближения15
(по умолчанию) | положительное целое числоРазмер буфера истории для Hessian приближения для 'lbfgs'
решатель, заданный как разделенная разделенными запятой парами, состоящая из 'HessianHistorySize'
и положительное целое число. При каждой итерации функция использует самую последнюю HessianHistorySize
итерации для построения приближения к обратному Гессиану.
Пример: 'HessianHistorySize',20
Типы данных: double
| single
'InitialStepSize'
- Начальный размер шага'auto'
(по умолчанию) | положительный действительный скалярНачальный размер шага для 'lbfgs'
решатель, заданный как разделенная разделенными запятой парами, состоящая из 'InitialStepSize'
и положительный действительный скаляр. По умолчанию функция определяет начальный размер шага автоматически.
Типы данных: double
| single
'LineSearchMethod'
- Метод поиска по линии'weakwolfe'
(по умолчанию) | 'strongwolfe'
| 'backtracking'
Метод поиска по линии, заданный как разделенная разделенными запятой парами, состоящая из 'LineSearchMethod'
и одно из следующих:
'weakwolfe'
- Слабый поиск линии Вульфа
'strongwolfe'
- Сильный поиск линии Вульфа
'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'
и положительный действительный скаляр. The '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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.