Выбор признаков с помощью анализа компонента окружения для классификации
выполняет выбор признаков для классификации с дополнительными опциями, заданными одним или несколькими аргументами пары "имя-значение".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
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'
— Ширина ядра
(значение по умолчанию) | положительный действительный скалярШирина ядра в виде разделенной запятой пары, состоящей из 'LengthScale'
и положительный действительный скаляр.
Значение шкалы расстояний 1 разумно, когда все предикторы находятся по той же шкале. Если предикторы в X
имеют совсем другие величины, затем рассматривают стандартизацию значений предиктора с помощью 'Standardize',true
и установка 'LengthScale',1
.
Пример: 'LengthScale',1.5
Типы данных: double |
single
'InitialFeatureWeights'
— Начальные веса функцииones(p,1)
(значение по умолчанию) | p-by-1 вектор из действительных положительных скалярных величинНачальные веса функции в виде разделенной запятой пары, состоящей из 'InitialFeatureWeights'
и p-by-1 вектор из действительных положительных скалярных величин, где 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
Типы данных: логический
'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'
— Ошибка Misclassification
@
— Пользовательский указатель функции потерь. Функция потерь имеет эту форму. 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) можно следующим образом:
где w является вектором веса функции, n является количеством наблюдений, и p является количеством переменных предикторов. ij p является вероятностью, что x j является контрольной точкой для x i. Для получения дополнительной информации см. Выбор признаков NCA для Классификации.
Пример: 'LossFunction',@lossfun
'CacheSize'
— Емкость памяти1000MB
(значение по умолчанию) | целое числоЕмкость памяти, в Мбайте, чтобы использовать для целевой функции и расчета градиента в виде разделенной запятой пары, состоящей из 'CacheSize'
и целое число.
Пример: 'CacheSize',1500MB
Типы данных: double |
single
'HessianHistorySize'
— Размер буфера истории для приближения Гессиана
(значение по умолчанию) | положительное целое числоРазмер буфера истории для приближения Гессиана для 'lbfgs'
решатель в виде разделенной запятой пары, состоящей из 'HessianHistorySize'
и положительное целое число. В каждой итерации функция использует новый HessianHistorySize
итерации, чтобы создать приближение к обратному Гессиану.
Пример: 'HessianHistorySize',20
Типы данных: double |
single
'InitialStepSize'
— Начальный размер шага'auto'
(значение по умолчанию) | положительный действительный скалярНачальный размер шага для 'lbfgs'
решатель в виде разделенной запятой пары, состоящей из 'InitialStepSize'
и положительный действительный скаляр. По умолчанию функция определяет начальный размер шага автоматически.
Типы данных: double |
single
'LineSearchMethod'
— Метод поиска линии'weakwolfe'
(значение по умолчанию) | 'strongwolfe'
| 'backtracking'
Метод поиска линии в виде разделенной запятой пары, состоящей из 'LineSearchMethod'
и одно из следующего:
'weakwolfe'
— Слабый поиск линии Вольфа
'strongwolfe'
— Сильный поиск линии Вольфа
'backtracking'
— Отслеживание в обратном порядке поиска линии
Пример: 'LineSearchMethod','backtracking'
'MaxLineSearchIterations'
— Максимальное количество линии ищет итерации
(значение по умолчанию) | положительное целое числоМаксимальное количество линии ищет итерации в виде разделенной запятой пары, состоящей из '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'
(значение по умолчанию) | положительное целое число Максимальное количество проходит через все наблюдения 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.