Обучите модель классификации нейронных сетей
Использовать fitcnet
для обучения feedforward, полносвязной нейронной сети для классификации. Первый полностью соединенный слой нейронной сети имеет соединение с сетевого входа (данные предиктора), и каждый последующий слой имеет соединение с предыдущего уровня. Каждый полносвязный слой умножает вход на весовую матрицу и затем добавляет вектор смещения. Функция активации следует за каждым полносвязным слоем. Конечный полносвязный слой и последующая функция активации softmax производят выход сети, а именно классификационных оценок (апостериорные вероятности) и предсказанные метки. Для получения дополнительной информации см. «Нейронные Структуры сети».
возвращает модель классификации нейронной сети Mdl
= fitcnet(Tbl
,ResponseVarName
)Mdl
обучен с использованием предикторов в таблице Tbl
и метки классов в ResponseVarName
табличная переменная.
задает опции, использующие один или несколько аргументов имя-значение в дополнение к любой комбинации входных аргументов в предыдущих синтаксисах. Например, можно настроить количество выходов и функций активации для полносвязных слоев путем определения Mdl
= fitcnet(___,Name,Value
)LayerSizes
и Activations
аргументы имя-значение.
Обучите классификатор нейронной сети и оцените эффективность классификатора на тестовом наборе.
Прочтите образец файла CreditRating_Historical.dat
в таблицу. Данные предиктора состоят из финансовых коэффициентов и отраслевой информации для списка корпоративных клиентов. Переменная ответа состоит из кредитных рейтингов, присвоенных рейтинговым агентством. Предварительный просмотр первых нескольких строк набора данных.
creditrating = readtable("CreditRating_Historical.dat");
head(creditrating)
ans=8×8 table
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA Industry Rating
_____ ______ ______ _______ ________ _____ ________ _______
62394 0.013 0.104 0.036 0.447 0.142 3 {'BB' }
48608 0.232 0.335 0.062 1.969 0.281 8 {'A' }
42444 0.311 0.367 0.074 1.935 0.366 1 {'A' }
48631 0.194 0.263 0.062 1.017 0.228 4 {'BBB'}
43768 0.121 0.413 0.057 3.647 0.466 12 {'AAA'}
39255 -0.117 -0.799 0.01 0.179 0.082 4 {'CCC'}
62236 0.087 0.158 0.049 0.816 0.324 2 {'BBB'}
39354 0.005 0.181 0.034 2.597 0.388 7 {'AA' }
Потому что каждое значение в ID
переменная является уникальным идентификатором клиента, то есть length(unique(creditrating.ID))
равно количеству наблюдений в creditrating
, а ID
переменная является плохим предиктором. Удалите ID
переменная из таблицы и преобразуйте Industry
переменная к categorical
переменная.
creditrating = removevars(creditrating,"ID");
creditrating.Industry = categorical(creditrating.Industry);
Преобразуйте Rating
переменная отклика на порядковый categorical
переменная.
creditrating.Rating = categorical(creditrating.Rating, ... ["AAA","AA","A","BBB","BB","B","CCC"],"Ordinal",true);
Разделите данные на обучающие и тестовые наборы. Используйте приблизительно 80% наблюдений для обучения модели нейронной сети и 20% наблюдений для тестирования эффективности обученной модели на новых данных. Использование cvpartition
для разбиения данных на разделы.
rng("default") % For reproducibility of the partition c = cvpartition(creditrating.Rating,"Holdout",0.20); trainingIndices = training(c); % Indices for the training set testIndices = test(c); % Indices for the test set creditTrain = creditrating(trainingIndices,:); creditTest = creditrating(testIndices,:);
Обучите классификатор нейронной сети путем передачи обучающих данных creditTrain
на fitcnet
функция.
Mdl = fitcnet(creditTrain,"Rating")
Mdl = ClassificationNeuralNetwork PredictorNames: {'WC_TA' 'RE_TA' 'EBIT_TA' 'MVE_BVTD' 'S_TA' 'Industry'} ResponseName: 'Rating' CategoricalPredictors: 6 ClassNames: [AAA AA A BBB BB B CCC] ScoreTransform: 'none' NumObservations: 3146 LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [1000×7 table] Properties, Methods
Mdl
является обученным ClassificationNeuralNetwork
классификатор. Вы можете использовать запись через точку для доступа к свойствам Mdl
. Для примера можно задать Mdl.TrainingHistory
для получения дополнительной информации об истории обучения модели нейронной сети.
Оцените эффективность классификатора на тестовом наборе путем вычисления ошибки классификации тестового набора. Визуализируйте результаты с помощью матрицы неточностей.
testAccuracy = 1 - loss(Mdl,creditTest,"Rating", ... "LossFun","classiferror")
testAccuracy = 0.8003
confusionchart(creditTest.Rating,predict(Mdl,creditTest))
Задайте структуру классификатора нейронной сети, включая размер полносвязных слоев.
Загрузите ionosphere
набор данных, который содержит данные радиолокационного сигнала. X
содержит данные предиктора и Y
- переменная отклика, значения которой представляют либо хорошие («g»), либо плохие («b») радиолокационные сигналы.
load ionosphere
Разделите данные на обучающие данные (XTrain
и YTrain
) и тестовые данные (XTest
и YTest
) при помощи стратифицированного раздела удержания. Резервируйте приблизительно 30% наблюдений для проверки и используйте остальные наблюдения для обучения.
rng("default") % For reproducibility of the partition cvp = cvpartition(Y,"Holdout",0.3); XTrain = X(training(cvp),:); YTrain = Y(training(cvp)); XTest = X(test(cvp),:); YTest = Y(test(cvp));
Обучите классификатор нейронной сети. Задайте, чтобы иметь 35 выходов в первом полностью соединенном слое и 20 выходов во втором полностью соединенном слое. По умолчанию оба слоя используют функцию активации с выпрямленным линейным модулем (ReLU). Можно изменить функции активации для полносвязных слоев с помощью Activations
аргумент имя-значение.
Mdl = fitcnet(XTrain,YTrain, ... "LayerSizes",[35 20])
Mdl = ClassificationNeuralNetwork ResponseName: 'Y' CategoricalPredictors: [] ClassNames: {'b' 'g'} ScoreTransform: 'none' NumObservations: 246 LayerSizes: [35 20] Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [47×7 table] Properties, Methods
Доступ к весам и смещениям для полносвязных слоев обученного классификатора с помощью LayerWeights
и LayerBiases
свойства Mdl
. Первые два элемента каждого свойства соответствуют значениям для первых двух полносвязных слоев, а третий элемент соответствует значениям для последнего полносвязного слоя с функцией активации softmax для классификации. Для примера отобразите веса и смещения для второго полносвязного слоя.
Mdl.LayerWeights{2}
ans = 20×35
0.0481 0.2501 -0.1535 -0.0934 0.0760 -0.0579 -0.2465 1.0411 0.3712 -1.2007 1.1162 0.4296 0.4045 0.5005 0.8839 0.4624 -0.3154 0.3454 -0.0487 0.2648 0.0732 0.5773 0.4286 0.0881 0.9468 0.2981 0.5534 1.0518 -0.0224 0.6894 0.5527 0.7045 -0.6124 0.2145 -0.0790
-0.9489 -1.8343 0.5510 -0.5751 -0.8726 0.8815 0.0203 -1.6379 2.0315 1.7599 -1.4153 -1.4335 -1.1638 -0.1715 1.1439 -0.7661 1.1230 -1.1982 -0.5409 -0.5821 -0.0627 -0.7038 -0.0817 -1.5773 -1.4671 0.2053 -0.7931 -1.6201 -0.1737 -0.7762 -0.3063 -0.8771 1.5134 -0.4611 -0.0649
-0.1910 0.0246 -0.3511 0.0097 0.3160 -0.0693 0.2270 -0.0783 -0.1626 -0.3478 0.2765 0.4179 0.0727 -0.0314 -0.1798 -0.0583 0.1375 -0.1876 0.2518 0.2137 0.1497 0.0395 0.2859 -0.0905 0.4325 -0.2012 0.0388 -0.1441 -0.1431 -0.0249 -0.2200 0.0860 -0.2076 0.0132 0.1737
-0.0415 -0.0059 -0.0753 -0.1477 -0.1621 -0.1762 0.2164 0.1710 -0.0610 -0.1402 0.1452 0.2890 0.2872 -0.2616 -0.4204 -0.2831 -0.1901 0.0036 0.0781 -0.0826 0.1588 -0.2782 0.2510 -0.1069 -0.2692 0.2306 0.2521 0.0306 0.2524 -0.4218 0.2478 0.2343 -0.1031 0.1037 0.1598
1.1848 1.6142 -0.1352 0.5774 0.5491 0.0103 0.0209 0.7219 -0.8643 -0.5578 1.3595 1.5385 1.0015 0.7416 -0.4342 0.2279 0.5667 1.1589 0.7100 0.1823 0.4171 0.7051 0.0794 1.3267 1.2659 0.3197 0.3947 0.3436 -0.1415 0.6607 1.0071 0.7726 -0.2840 0.8801 0.0848
0.2486 -0.2920 -0.0004 0.2806 0.2987 -0.2709 0.1473 -0.2580 -0.0499 -0.0755 0.2000 0.1535 -0.0285 -0.0520 -0.2523 -0.2505 -0.0437 -0.2323 0.2023 0.2061 -0.1365 0.0744 0.0344 -0.2891 0.2341 -0.1556 0.1459 0.2533 -0.0583 0.0243 -0.2949 -0.1530 0.1546 -0.0340 -0.1562
-0.0516 0.0640 0.1824 -0.0675 -0.2065 -0.0052 -0.1682 -0.1520 0.0060 0.0450 0.0813 -0.0234 0.0657 0.3219 -0.1871 0.0658 -0.2103 0.0060 -0.2831 -0.1811 -0.0988 0.2378 -0.0761 0.1714 -0.1596 -0.0011 0.0609 0.4003 0.3687 -0.2879 0.0910 0.0604 -0.2222 -0.2735 -0.1155
-0.6192 -0.7804 -0.0506 -0.4205 -0.2584 -0.2020 -0.0008 0.0534 1.0185 -0.0307 -0.0539 -0.2020 0.0368 -0.1847 0.0886 -0.4086 -0.4648 -0.3785 0.1542 -0.5176 -0.3207 0.1893 -0.0313 -0.5297 -0.1261 -0.2749 -0.6152 -0.5914 -0.3089 0.2432 -0.3955 -0.1711 0.1710 -0.4477 0.0718
0.5049 -0.1362 -0.2218 0.1637 -0.1282 -0.1008 0.1445 0.4527 -0.4887 0.0503 0.1453 0.1316 -0.3311 -0.1081 -0.7699 0.4062 -0.1105 -0.0855 0.0630 -0.1469 -0.2533 0.3976 0.0418 0.5294 0.3982 0.1027 -0.0973 -0.1282 0.2491 0.0425 0.0533 0.1578 -0.8403 -0.0535 -0.0048
1.1109 -0.0466 0.4044 0.6366 0.1863 0.5660 0.2839 0.8793 -0.5497 0.0057 0.3468 0.0980 0.3364 0.4669 0.1466 0.7883 -0.1743 0.4444 0.4535 0.1521 0.7476 0.2246 0.4473 0.2829 0.8881 0.4666 0.6334 0.3105 0.9571 0.2808 0.6483 0.1180 -0.4558 1.2486 0.2453
⋮
Mdl.LayerBiases{2}
ans = 20×1
0.6147
0.1891
-0.2767
-0.2977
1.3655
0.0347
0.1509
-0.4839
-0.3960
0.9248
⋮
Конечный полносвязный слой имеет два выхода, по одному для каждого класса в переменной отклика. Количество выходов слоя соответствует первой размерности весов слоя и смещений слоя.
size(Mdl.LayerWeights{end})
ans = 1×2
2 20
size(Mdl.LayerBiases{end})
ans = 1×2
2 1
Чтобы оценить эффективность обученного классификатора, вычислите ошибку классификации тестового набора для Mdl
.
testError = loss(Mdl,XTest,YTest, ... "LossFun","classiferror")
testError = 0.0774
accuracy = 1 - testError
accuracy = 0.9226
Mdl
точно классифицирует приблизительно 92% наблюдений в тестовом наборе.
При каждой итерации процесса обучения вычислите потерю валидации нейронной сети. Остановите процесс обучения раньше, если потеря валидации достигнет разумного минимума.
Загрузите patients
набор данных. Составьте таблицу из набора данных. Каждая строка соответствует одному пациенту, и каждый столбец соответствует диагностической переменной. Используйте Smoker
переменная как переменная отклика, а остальная часть переменных как предикторы.
load patients
tbl = table(Diastolic,Systolic,Gender,Height,Weight,Age,Smoker);
Разделите данные на набор обучающих данных tblTrain
и набор валидации tblValidation
при помощи стратифицированного раздела удержания. Программа резервирует приблизительно 30% наблюдений для набора данных валидации и использует остальную часть наблюдений для набора обучающих данных.
rng("default") % For reproducibility of the partition c = cvpartition(tbl.Smoker,"Holdout",0.30); trainingIndices = training(c); validationIndices = test(c); tblTrain = tbl(trainingIndices,:); tblValidation = tbl(validationIndices,:);
Обучите классификатор нейронной сети при помощи набора обучающих данных. Задайте Smoker
столбец tblTrain
как переменная отклика. Оцените модель при каждой итерации с помощью набора валидации. Задайте, чтобы отобразить информацию о обучении при каждой итерации с помощью Verbose
аргумент имя-значение. По умолчанию процесс обучения заканчивается раньше, если потеря перекрестной энтропии валидации больше или равна минимальной потере перекрестной энтропии валидации, вычисленной до сих пор, шесть раз подряд. Чтобы изменить количество раз, в течение которого потеря валидации может быть больше или равной минимуму, задайте ValidationPatience
аргумент имя-значение.
Mdl = fitcnet(tblTrain,"Smoker", ... "ValidationData",tblValidation, ... "Verbose",1);
|==========================================================================================| | Iteration | Train Loss | Gradient | Step | Iteration | Validation | Validation | | | | | | Time (sec) | Loss | Checks | |==========================================================================================| | 1| 2.602935| 26.866935| 0.262009| 0.001800| 2.793048| 0| | 2| 1.470816| 42.594723| 0.058323| 0.001460| 1.247046| 0| | 3| 1.299292| 25.854432| 0.034910| 0.000456| 1.507857| 1| | 4| 0.710465| 11.629107| 0.013616| 0.000617| 0.889157| 0| | 5| 0.647783| 2.561740| 0.005753| 0.000957| 0.766728| 0| | 6| 0.645541| 0.681579| 0.001000| 0.000706| 0.776072| 1| | 7| 0.639611| 1.544692| 0.007013| 0.005517| 0.776320| 2| | 8| 0.604189| 5.045676| 0.064190| 0.000534| 0.744919| 0| | 9| 0.565364| 5.851552| 0.068845| 0.000504| 0.694226| 0| | 10| 0.391994| 8.377717| 0.560480| 0.000370| 0.425466| 0| |==========================================================================================| | Iteration | Train Loss | Gradient | Step | Iteration | Validation | Validation | | | | | | Time (sec) | Loss | Checks | |==========================================================================================| | 11| 0.383843| 0.630246| 0.110270| 0.000749| 0.428487| 1| | 12| 0.369289| 2.404750| 0.084395| 0.000531| 0.405728| 0| | 13| 0.357839| 6.220679| 0.199197| 0.000353| 0.378480| 0| | 14| 0.344974| 2.752717| 0.029013| 0.000330| 0.367279| 0| | 15| 0.333747| 0.711398| 0.074513| 0.000328| 0.348499| 0| | 16| 0.327763| 0.804818| 0.122178| 0.000348| 0.330237| 0| | 17| 0.327702| 0.778169| 0.009810| 0.000365| 0.329095| 0| | 18| 0.327277| 0.020615| 0.004377| 0.000380| 0.329141| 1| | 19| 0.327273| 0.010018| 0.003313| 0.000432| 0.328773| 0| | 20| 0.327268| 0.019497| 0.000805| 0.000776| 0.328831| 1| |==========================================================================================| | Iteration | Train Loss | Gradient | Step | Iteration | Validation | Validation | | | | | | Time (sec) | Loss | Checks | |==========================================================================================| | 21| 0.327228| 0.113983| 0.005397| 0.000509| 0.329085| 2| | 22| 0.327138| 0.240166| 0.012159| 0.000333| 0.329406| 3| | 23| 0.326865| 0.428912| 0.036841| 0.000381| 0.329952| 4| | 24| 0.325797| 0.255227| 0.139585| 0.000339| 0.331246| 5| | 25| 0.325181| 0.758050| 0.135868| 0.000890| 0.332035| 6| |==========================================================================================|
Создайте график, который сравнивает потери перекрестной энтропии обучения и потери перекрестной энтропии валидации при каждой итерации. По умолчанию fitcnet
сохраняет информацию о потерях внутри TrainingHistory
свойство объекта Mdl
. Вы можете получить доступ к этой информации с помощью записи через точку.
iteration = Mdl.TrainingHistory.Iteration; trainLosses = Mdl.TrainingHistory.TrainingLoss; valLosses = Mdl.TrainingHistory.ValidationLoss; plot(iteration,trainLosses,iteration,valLosses) legend(["Training","Validation"]) xlabel("Iteration") ylabel("Cross-Entropy Loss")
Проверьте итерацию, которая соответствует минимальным потерям при валидации. Конечная возвращенная модель Mdl
- модель, обученная на этой итерации.
[~,minIdx] = min(valLosses); iteration(minIdx)
ans = 19
Оцените потерю перекрестной валидации моделей нейронной сети с различными сильными сторонами регуляризации и выберите силу регуляризации, соответствующую оптимальной модели.
Прочтите образец файла CreditRating_Historical.dat
в таблицу. Данные предиктора состоят из финансовых коэффициентов и отраслевой информации для списка корпоративных клиентов. Переменная ответа состоит из кредитных рейтингов, присвоенных рейтинговым агентством. Предварительный просмотр первых нескольких строк набора данных.
creditrating = readtable("CreditRating_Historical.dat");
head(creditrating)
ans=8×8 table
ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA Industry Rating
_____ ______ ______ _______ ________ _____ ________ _______
62394 0.013 0.104 0.036 0.447 0.142 3 {'BB' }
48608 0.232 0.335 0.062 1.969 0.281 8 {'A' }
42444 0.311 0.367 0.074 1.935 0.366 1 {'A' }
48631 0.194 0.263 0.062 1.017 0.228 4 {'BBB'}
43768 0.121 0.413 0.057 3.647 0.466 12 {'AAA'}
39255 -0.117 -0.799 0.01 0.179 0.082 4 {'CCC'}
62236 0.087 0.158 0.049 0.816 0.324 2 {'BBB'}
39354 0.005 0.181 0.034 2.597 0.388 7 {'AA' }
Потому что каждое значение в ID
переменная является уникальным идентификатором клиента, то есть length(unique(creditrating.ID))
равно количеству наблюдений в creditrating
, а ID
переменная является плохим предиктором. Удалите ID
переменная из таблицы и преобразуйте Industry
переменная к categorical
переменная.
creditrating = removevars(creditrating,"ID");
creditrating.Industry = categorical(creditrating.Industry);
Преобразуйте Rating
переменная отклика на порядковый categorical
переменная.
creditrating.Rating = categorical(creditrating.Rating, ... ["AAA","AA","A","BBB","BB","B","CCC"],"Ordinal",true);
Создайте cvpartition
объект для стратифицированной 5-кратной перекрестной проверки. cvp
разделяет данные на пять складок, где каждая складка имеет примерно одинаковые пропорции различных кредитных рейтингов. Установите значение по умолчанию для случайного seed для воспроизводимости раздела.
rng("default") cvp = cvpartition(creditrating.Rating,"KFold",5);
Вычислите ошибку классификации перекрестной валидации для классификаторов нейронных сетей с различными сильными сторонами регуляризации. Попробуйте силы регуляризации порядка 1/n, где n - количество наблюдений. Задайте, чтобы стандартизировать данные перед обучением моделей нейронной сети.
1/size(creditrating,1)
ans = 2.5432e-04
lambda = (0:0.5:5)*1e-4; cvloss = zeros(length(lambda),1); for i = 1:length(lambda) cvMdl = fitcnet(creditrating,"Rating","Lambda",lambda(i), ... "CVPartition",cvp,"Standardize",true); cvloss(i) = kfoldLoss(cvMdl,"LossFun","classiferror"); end
Постройте график результатов. Найдите силу регуляризации, соответствующую самой низкой ошибке классификации перекрестной валидации.
plot(lambda,cvloss) xlabel("Regularization Strength") ylabel("Cross-Validation Loss")
[~,idx] = min(cvloss); bestLambda = lambda(idx)
bestLambda = 5.0000e-05
Обучите классификатор нейронной сети с помощью bestLambda
прочность на регуляризацию.
Mdl = fitcnet(creditrating,"Rating","Lambda",bestLambda, ... "Standardize",true)
Mdl = ClassificationNeuralNetwork PredictorNames: {'WC_TA' 'RE_TA' 'EBIT_TA' 'MVE_BVTD' 'S_TA' 'Industry'} ResponseName: 'Rating' CategoricalPredictors: 6 ClassNames: [AAA AA A BBB BB B CCC] ScoreTransform: 'none' NumObservations: 3932 LayerSizes: 10 Activations: 'relu' OutputLayerActivation: 'softmax' Solver: 'LBFGS' ConvergenceInfo: [1×1 struct] TrainingHistory: [1000×7 table] Properties, Methods
Tbl
- Выборочные данныеВыборочные данные, используемых для обучения модели, заданная как таблица. Каждая строка Tbl
соответствует одному наблюдению, и каждый столбец соответствует одной переменной предиктора. Опционально Tbl
может содержать один дополнительный столбец для переменной отклика. Многополюсные переменные и массивы ячеек, отличные от массивов ячеек векторов символов, не разрешены.
Если Tbl
содержит переменную отклика, и необходимо использовать все оставшиеся переменные в Tbl
в качестве предикторов, затем задайте переменную отклика при помощи ResponseVarName
.
Если Tbl
содержит переменную отклика, и необходимо использовать только подмножество остальных переменных в Tbl
в качестве предикторов задайте формулу при помощи formula
.
Если Tbl
не содержит переменную отклика, затем задает переменную отклика при помощи Y
. Длина переменной отклика и количество строк в Tbl
должно быть равным.
Типы данных: table
ResponseVarName
- Имя переменной откликаTbl
Имя переменной отклика, заданное как имя переменной в Tbl
.
Вы должны задать ResponseVarName
как вектор символов или строковый скаляр. Для примера, если переменная отклика Y
хранится как Tbl.Y
, затем укажите его следующим 'Y'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая Y
, как предикторы при обучении модели.
Переменная отклика должна быть категориальными символьными или строковыми массивами; логический или числовой вектор; или массив ячеек из векторов символов. Если Y
является символьным массивом, тогда каждый элемент переменной отклика должен соответствовать одной строке массива.
Хорошей практикой является определение порядка классов при помощи ClassNames
аргумент имя-значение.
Типы данных: char
| string
formula
- Объяснительная модель переменной отклика и подмножества переменных предиктораОбъяснительная модель переменной отклика и подмножества переменных предиктора, заданная в виде вектора символов или строкового скаляра в форме 'Y~x1+x2+x3'
. В этой форме Y
представляет переменную отклика, и x1
, x2
, и x3
представляют переменные предиктора.
Чтобы задать подмножество переменных в Tbl
в качестве предикторов для настройки модели используйте формулу. Если вы задаете формулу, то программное обеспечение не использует никаких переменных в Tbl
которые не появляются в formula
.
Имена переменных в формуле должны быть обоими именами переменных в Tbl
(Tbl.Properties.VariableNames
) и действительный MATLAB® идентификаторы. Можно проверить имена переменных в Tbl
при помощи isvarname
функция. Если имена переменных недопустимы, можно преобразовать их, используя matlab.lang.makeValidName
функция.
Типы данных: char
| string
Y
- Метки классовМетки классов, используемые для обучения модели, заданные как числовой, категориальный или логический вектор; символьные или строковые массивы; или массив ячеек из векторов символов.
Если Y
является символьный массив, тогда каждый элемент меток классов должен соответствовать одной строке массива.
Хорошей практикой является определение порядка классов при помощи ClassNames
аргумент имя-значение.
Типы данных: single
| double
| categorical
| logical
| char
| string
| cell
X
- Данные предиктораДанные предиктора, используемые для обучения модели, заданные как числовая матрица.
По умолчанию программа обрабатывает каждую строку X
как одно наблюдение, и каждый столбец как один предиктор.
Длина Y
и количество наблюдений в X
должно быть равным.
Чтобы задать имена предикторов в порядке их внешнего вида в X
, используйте PredictorNames
аргумент имя-значение.
Примечание
Если вы ориентируете матрицу предиктора так, чтобы наблюдения соответствовали столбцам и задавали 'ObservationsIn','columns'
, тогда вы можете испытать значительное сокращение времени расчета.
Типы данных: single
| double
Примечание
Программное обеспечение лечит NaN
, пустой символьный вектор (''
), пустая строка (""
), <missing>
, и <undefined>
элементы как отсутствующие значения и удаляет наблюдения с любой из этих характеристик:
Отсутствующее значение в переменной отклика (для примера, Y
или ValidationData
{2}
)
По крайней мере, одно отсутствующее значение в наблюдении предиктора (для примера, строка в X
или ValidationData{1}
)
NaN
значение или 0
вес (для примера, значение в Weights
или ValidationData{3}
)
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
fitcnet(X,Y,'LayerSizes',[10 10],'Activations',["relu","tanh"])
задает создание нейронной сети с двумя полносвязными слоями, каждый с 10 выходами. Первый слой использует функцию активации выпрямленного линейного модуля (ReLU), а второй - функцию активации гиперболического тангенса.'LayerSizes'
- Размеры полносвязных слоев10
(по умолчанию) | положительный целочисленный векторРазмеры полносвязных слоев в модели нейронной сети, заданные как положительный целочисленный вектор. i-й элемент LayerSizes
- количество выходов в i-м полностью соединенном слое модели нейронной сети.
LayerSizes
не включает размер последнего полносвязного слоя, который использует функцию активации softmax. Для получения дополнительной информации см. «Нейронные Структуры сети».
Пример: 'LayerSizes',[100 25 10]
'Activations'
- Функции активации для полносвязных слоев'relu'
(по умолчанию) | 'tanh'
| 'sigmoid'
| 'none'
| строковые массивы | массив ячеек из векторов символовФункции активации для полносвязных слоев модели нейронной сети, заданные как вектор символов, строковый скаляр, строковые массивы или массив ячеек из векторов символов со значениями из этой таблицы.
Значение | Описание |
---|---|
'relu' | Функция выпрямленного линейного модуля (ReLU) - выполняет операцию порога для каждого элемента входа, где любое значение, меньше нуля, устанавливается в ноль, то есть, |
'tanh' | Функция гиперболического тангенса (tanh) - применяет |
'sigmoid' | Сигмоидная функция - Выполняет следующую операцию на каждом входном элементе: |
'none' | Единичная функция - Возвращает каждый входной элемент, не выполняя никакого преобразования, то есть f (x) = x |
Если вы задаете только одну функцию активации, то Activations
- функция активации для каждого полносвязного слоя модели нейронной сети, исключая конечный полносвязный слой. Функция активации для последнего полносвязного слоя всегда является softmax (см. «Структура нейронной сети»).
Если вы задаете массив функций активации, то i-й элемент Activations
- функция активации для i-го слоя модели нейронной сети.
Пример: 'Activations','sigmoid'
'LayerWeightsInitializer'
- Функция для инициализации полносвязных весов слоев'glorot'
(по умолчанию) | 'he'
Функция для инициализации полносвязных весов слоев, заданная как 'glorot'
или 'he'
.
Значение | Описание |
---|---|
'glorot' | Инициализируйте веса с помощью инициализатора Glorot [1] (также известного как инициализатор Xavier). Для каждого слоя инитализатор Глорота независимо выбирает из равномерного распределения с нулем среднего и переменным 2/(I+O) , где I - размер и O входных параметров - размер выхода для слоя. |
'he' | Инициализируйте веса с помощью инициализатора He [2]. Для каждого слоя инициализатор He отбирает выборки из нормального распределения с нулем среднего и отклонением 2/I , где I - вход сигнала для слоя. |
Пример: 'LayerWeightsFunction','he'
'LayerBiasesInitializer'
- Тип начальных полносвязных смещений слоя'zeros'
(по умолчанию) | 'ones'
Тип смещений начального полносвязного слоя, заданный как 'zeros'
или 'ones'
.
Если вы задаете значение 'zeros'
затем каждый полностью соединенный слой имеет начальное смещение 0.
Если вы задаете значение 'ones'
затем каждый полностью соединенный слой имеет начальное смещение 1.
Пример: 'LayerBiasesInitializer','ones'
Типы данных: char
| string
'ObservationsIn'
- размерность наблюдения данных предиктора'rows'
(по умолчанию) | 'columns'
Размерность наблюдения данных предиктора, заданная как 'rows'
или 'columns'
.
Примечание
Если вы ориентируете матрицу предиктора так, чтобы наблюдения соответствовали столбцам и задавали 'ObservationsIn','columns'
, тогда вы можете испытать значительное сокращение времени расчета. Вы не можете задать 'ObservationsIn','columns'
для данных предиктора в таблице.
Пример: 'ObservationsIn','columns'
Типы данных: char
| string
'Lambda'
- Прочность термина регуляризации0
(по умолчанию) | неотрицательной скаляромСила термина регуляризации, заданная как неотрицательный скаляр. Программное обеспечение составляет целевую функцию для минимизации из функции потерь перекрестной энтропии и срока штрафа хребта (L2).
Пример: 'Lambda',1e-4
Типы данных: single
| double
'Standardize'
- Флаг для стандартизации данных предиктораfalse
или 0
(по умолчанию) | true
или 1
Флаг для стандартизации данных предиктора, заданный как числовой или логический 0
(false
) или 1
(true
). Если вы задаете Standardize
на true
затем программное обеспечение центрирует и масштабирует каждую переменную числового предиктора на соответствующее среднее значение столбца и стандартное отклонение. Программное обеспечение не стандартизирует категориальные предикторы.
Пример: 'Standardize',true
Типы данных: single
| double
| logical
'Verbose'
- Уровень подробностей0
(по умолчанию) | 1
Уровень подробностей, заданный как 0
или 1
. The 'Verbose'
аргумент name-value управляет объемом диагностической информации, которая fitcnet
отображается в командной строке.
Значение | Описание |
---|---|
0 | fitcnet не отображает диагностическую информацию. |
1 | fitcnet периодически отображает диагностическую информацию. |
По умолчанию StoreHistory
установлено в true
и fitcnet
сохраняет диагностическую информацию внутри Mdl
. Использование Mdl.TrainingHistory
для доступа к диагностической информации.
Пример: 'Verbose',1
Типы данных: single
| double
'VerboseFrequency'
- Частота подробной печати1
(по умолчанию) | положительный целочисленный скалярЧастота подробной печати, которая является количеством итераций между печатью в командное окно, заданная как положительный целочисленный скаляр. Значение 1 указывает на печать диагностической информации при каждой итерации.
Примечание
Чтобы использовать этот аргумент «имя-значение», задайте Verbose
на 1
.
Пример: 'VerboseFrequency',5
Типы данных: single
| double
'StoreHistory'
- Флаг для хранения истории обученияtrue
или 1
(по умолчанию) | false
или 0
Флаг для хранения истории обучения в виде числа или логического 0
(false
) или 1
(true
). Если StoreHistory
установлено в true
, затем программное обеспечение хранит диагностическую информацию внутри Mdl
, к которому можно получить доступ при помощи Mdl.TrainingHistory
.
Пример: 'StoreHistory',false
Типы данных: single
| double
| logical
'IterationLimit'
- Максимальное количество итераций обучения1e3
(по умолчанию) | положительный целочисленный скалярМаксимальное количество итераций обучения, заданное как положительный целочисленный скаляр.
Программное обеспечение возвращает обученную модель независимо от того, успешно ли сходится стандартная программа обучения. Mdl.ConvergenceInfo
содержит информацию о сходимости.
Пример: 'IterationLimit',1e8
Типы данных: single
| double
'GradientTolerance'
- Относительный допуск градиента1e-6
(по умолчанию) | неотрицательной скаляромОтносительный допуск градиента, заданный как неотрицательный скаляр.
Давайте быть функцией потерь при обучении t итерации, быть градиентом функции потерь относительно весов и смещений при t итерации, и быть градиентом функции потерь в начальной точке. Если , где затем процесс обучения прекращается.
Пример: 'GradientTolerance',1e-5
Типы данных: single
| double
'LossTolerance'
- допуск потерь1e-6
(по умолчанию) | неотрицательной скаляромДопуск потерь, заданный как неотрицательный скаляр.
Если потеря функции при некоторой итерации меньше LossTolerance
затем процесс обучения прекращается.
Пример: 'LossTolerance',1e-8
Типы данных: single
| double
'StepTolerance'
- Допуск размера шага1e-6
(по умолчанию) | неотрицательной скаляромДопуск размера шага, заданный как неотрицательный скаляр.
Если размер шага при некоторой итерации меньше StepTolerance
затем процесс обучения прекращается.
Пример: 'StepTolerance',1e-4
Типы данных: single
| double
'ValidationData'
- Данные валидации для обучения обнаружения сходимостиДанные валидации для настройки обнаружения сходимости, заданные как массив ячеек или таблица.
Во время процесса обучения программное обеспечение периодически оценивает потери на валидацию при помощи ValidationData
. Если потеря валидации увеличивается больше ValidationPatience
время от времени подряд, после чего программное обеспечение прекращает обучение.
Можно задать ValidationData
как таблица, если вы используете таблицу Tbl
данных предиктора, который содержит переменную отклика. В этом случае ValidationData
должны содержать те же предикторы и ответ, содержащиеся в Tbl
. Программа не применяет веса к наблюдениям, даже если Tbl
содержит вектор весов. Чтобы задать веса, вы должны задать ValidationData
как массив ячеек.
Если вы задаете ValidationData
в качестве массива ячеек он должен иметь следующий формат:
ValidationData{1}
должны иметь совпадающий тип данных и ориентацию в качестве данных предиктора. То есть, если вы используете матрицу предиктора X
, затем ValidationData{1}
должен быть m -by - p или p -by - m матрицей данных предиктора, которая имеет ту же ориентацию, что и X
. Переменные предиктора в обучающих данных X
и ValidationData{1}
должен соответствовать. Точно так же, если вы используете таблицу предикторов Tbl
данных предиктора, затем ValidationData{1}
должна быть таблицей, содержащей те же переменные предиктора, которые содержатся в Tbl
. Количество наблюдений в ValidationData{1}
и данные предиктора могут варьироваться.
ValidationData{2}
должен совпадать с типом данных и форматом переменной отклика, либо Y
или ResponseVarName
. Если ValidationData{2}
- массив меток классов, тогда он должен иметь то же количество элементов, что и количество наблюдений в ValidationData{1}
. Набор всех различных меток ValidationData{2}
должен быть подмножеством всех различных меток Y
. Если ValidationData{1}
является таблицей, тогда ValidationData{2}
может быть именем переменной отклика в таблице. Если вы хотите использовать ту же ResponseVarName
или formula
, можно задать ValidationData{2}
как []
.
Опционально можно задать ValidationData{3}
как m -мерный числовой вектор весов наблюдений или имя переменной в таблице ValidationData{1}
который содержит веса наблюдений. Программа нормирует веса с данными валидации так, чтобы их сумма равнялась 1.
Если вы задаете ValidationData
и хотите отобразить потерю валидации в командной строке, установите Verbose
на 1
.
'ValidationFrequency'
- Количество итераций между оценками валидации1
(по умолчанию) | положительный целочисленный скалярКоличество итераций между оценками валидации, заданное как положительный целочисленный скаляр. Значение 1 указывает, чтобы вычислить метрики валидации при каждой итерации.
Примечание
Чтобы использовать этот аргумент «имя-значение», необходимо задать ValidationData
.
Пример: 'ValidationFrequency',5
Типы данных: single
| double
'ValidationPatience'
- Условие остановки для валидационных оценок6
(по умолчанию) | неотрицательным целочисленным скаляромУсловие остановки для оценок валидации, заданное как неотрицательный целочисленный скаляр. Процесс обучения останавливается, если потеря проверки больше или равна минимальной потере валидации, вычисленной до сих пор ValidationPatience
раз в строку. Можно проверить Mdl.TrainingHistory
таблица, чтобы увидеть текущую сумму раз, когда потеря валидации больше или равна минимуму (Validation Checks
).
Пример: 'ValidationPatience',10
Типы данных: single
| double
'CategoricalPredictors'
- Категориальный список предикторов'all'
Категориальный список предикторов, заданный как одно из значений в этой таблице. Описания предполагают, что данные предиктора имеют наблюдения в строках и предикторы в столбцах.
Значение | Описание |
---|---|
Вектор положительных целых чисел |
Каждая запись в векторе является индексом значением, соответствующим столбцу данных предиктора, который содержит категориальную переменную. Значения индекса находятся между 1 и Если |
Логический вектор |
A |
Матрица символов | Каждая строка матрицы является именем переменной. Имена должны совпадать с записями в PredictorNames . Дополните имена дополнительными пробелами, чтобы каждая строка матрицы символов имела одинаковую длину. |
Строковые массивы или массив ячеек векторов символов | Каждый элемент массива является именем переменной. Имена должны совпадать с записями в PredictorNames . |
'all' | Все предикторы категоричны. |
По умолчанию, если данные предиктора находятся в таблице (Tbl
), fitcnet
принимает, что переменная категориальна, если это логический вектор, категориальный вектор, символьный массив, строковые массивы или массив ячеек из векторов символов. Если данные предиктора являются матрицей (X
), fitcnet
принимает, что все предикторы непрерывны. Чтобы идентифицировать любые другие предикторы как категориальные предикторы, задайте их с помощью 'CategoricalPredictors'
аргумент имя-значение.
Для идентифицированных категориальных предикторов, fitcnet
создает фиктивные переменные с помощью двух различных схем, в зависимости от того, является ли категориальная переменная неупорядоченной или упорядоченной. Для неупорядоченной категориальной переменной, fitcnet
создает одну фиктивную переменную для каждого уровня категориальной переменной. Для упорядоченной категориальной переменной, fitcnet
создает одну переменную с меньшим количеством манекенов, чем количество категорий. Для получения дополнительной информации смотрите Автоматическое создание переменных манекена.
Пример: 'CategoricalPredictors','all'
Типы данных: single
| double
| logical
| char
| string
| cell
'ClassNames'
- Имена классов, используемых для обученияИмена классов, используемых для обучения, заданные как категориальные символьные или строковые массивы; логический или числовой вектор; или массив ячеек из векторов символов. ClassNames
должен иметь тот совпадающий тип данных, что и переменная отклика в Tbl
или Y
.
Если ClassNames
является символьный массив, тогда каждый элемент должен соответствовать одной строке массива.
Использование ClassNames
кому:
Задайте порядок классов во время обучения.
Задайте порядок любой размерности входного или выходного аргумента, которая соответствует порядку классов. Для примера используйте ClassNames
для определения порядка размерностей Cost
или порядок столбцов классификационных оценок, возвращаемых predict
.
Выберите подмножество классов для обучения. Например, предположим, что набор всех различных имен классов в Y
является {'a','b','c'}
. Чтобы обучить модель с помощью наблюдений из классов 'a'
и 'c'
только, задайте 'ClassNames',{'a','c'}
.
Значение по умолчанию для ClassNames
- набор всех различных имен классов в переменной отклика в Tbl
или Y
.
Пример: 'ClassNames',{'b','g'}
Типы данных: categorical
| char
| string
| logical
| single
| double
| cell
'PredictorNames'
- Имена переменных предиктораИмена переменных предиктора, заданные как строковые массивы уникальных имен или массив ячеек из уникальных векторов символов. Функциональность 'PredictorNames'
зависит от способа предоставления обучающих данных.
Если вы поставляете X
и Y
, тогда можно использовать 'PredictorNames'
для назначения имен переменным предиктора в X
.
Порядок имен в PredictorNames
должен соответствовать порядку предиктора в X
. Принимая, что X
имеет ориентацию по умолчанию, с наблюдениями в строках и предикторами в столбцах, PredictorNames{1}
- имя X(:,1)
, PredictorNames{2}
- имя X(:,2)
и так далее. Кроме того, size(X,2)
и numel(PredictorNames)
должно быть равным.
По умолчанию PredictorNames
является {'x1','x2',...}
.
Если вы поставляете Tbl
, тогда можно использовать 'PredictorNames'
выбрать, какие переменные предиктора использовать в обучении. То есть, fitcnet
использует только переменные предиктора в PredictorNames
и переменной отклика во время обучения.
PredictorNames
должен быть подмножеством Tbl.Properties.VariableNames
и не может включать имя переменной отклика.
По умолчанию PredictorNames
содержит имена всех переменных предиктора.
Хорошей практикой является определение предикторов для обучения с использованием любой из 'PredictorNames'
или formula
, но не то и другое.
Пример: 'PredictorNames',{'SepalLength','SepalWidth','PetalLength','PetalWidth'}
Типы данных: string
| cell
'ResponseName'
- Имя переменной отклика'Y'
(по умолчанию) | символьный вектор | строковый скалярИмя переменной отклика, заданное как вектор символов или строковый скаляр.
Если вы поставляете Y
, тогда можно использовать 'ResponseName'
чтобы задать имя для переменной отклика.
Если вы поставляете ResponseVarName
или formula
, тогда вы не можете использовать 'ResponseName'
.
Пример: 'ResponseName','response'
Типы данных: char
| string
'ScoreTransform'
- Преобразование счета'none'
(по умолчанию) | 'doublelogit'
| 'invlogit'
| 'ismax'
| 'logit'
| указатель на функцию |...Преобразование счета, заданное как вектор символов, строковый скаляр или указатель на функцию.
В этой таблице результирующие векторы символов и строковые скаляры.
Значение | Описание |
---|---|
'doublelogit' | 1/(1 + e–2x) |
'invlogit' | журнал (x/( 1 - x)) |
'ismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равным 0 |
'logit' | 1/(1 + e–x) |
'none' или 'identity' | x (без преобразования) |
'sign' | -1 для x < 0 0 для x = 0 1 для x > 0 |
'symmetric' | 2 x – 1 |
'symmetricismax' | Устанавливает счет для класса с самым большим счетом равным 1 и устанавливает счета для всех других классов равной -1 |
'symmetriclogit' | 2/(1 + e–x) – 1 |
Для функции MATLAB или функции, которую вы задаете, используйте указатель на функцию для преобразования счета. Указатель на функцию должен принять матрицу (исходные счета) и вернуть матрицу того же размера (преобразованные счета).
Пример: 'ScoreTransform','logit'
Типы данных: char
| string
| function_handle
'Weights'
- Веса наблюденийTbl
Веса наблюдений, заданные как неотрицательный числовой вектор или имя переменной в Tbl
. Программа взвешивает каждое наблюдение в X
или Tbl
с соответствующим значением в Weights
. Длина Weights
должно равняться количеству наблюдений в X
или Tbl
.
Если вы задаете входные данные как таблицу Tbl
, затем Weights
может быть именем переменной в Tbl
который содержит числовой вектор. В этом случае необходимо задать Weights
как вектор символов или строковый скаляр. Для примера, если вектор весов W
хранится как Tbl.W
, затем укажите его следующим 'W'
. В противном случае программное обеспечение обрабатывает все столбцы Tbl
, включая W
, как предикторы или переменная отклика при обучении модели.
По умолчанию Weights
является ones(n,1)
, где n
количество наблюдений в X
или Tbl
.
Программное обеспечение нормализует Weights
суммировать к значению предшествующей вероятности в соответствующем классе.
Типы данных: single
| double
| char
| string
'CrossVal'
- Флаг для обучения перекрестно проверенного классификатора'off'
(по умолчанию) | 'on'
Флаг для обучения перекрестного проверенного классификатора, заданный как 'on'
или 'off'
.
Если вы задаете 'on'
затем программное обеспечение обучает перекрестно проверенный классификатор с 10 складками.
Вы можете переопределить этот параметр перекрестной проверки с помощью CVPartition
, Holdout
, KFold
, или Leaveout
аргумент имя-значение. Для создания модели с перекрестной проверкой можно использовать только один аргумент имя-значение перекрестной проверки за раз.
Другой способ - выполнить перекрестную проверку позже путем передачи Mdl
кому crossval
.
Пример: 'Crossval','on'
Типы данных: char
| string
'CVPartition'
- Раздел перекрестной проверки[]
(по умолчанию) | cvpartition
Объект разделаРаздел перекрестной проверки, заданный как cvpartition
объект раздела, созданный cvpartition
. Объект раздела задает тип перекрестной валидации и индексацию для наборов обучения и валидации.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: Предположим, что вы создаете случайный разбиение для 5-кратной перекрестной валидации при 500 наблюдениях при помощи cvp = cvpartition(500,'KFold',5)
. Затем можно задать перекрестно проверенную модель при помощи 'CVPartition',cvp
.
'Holdout'
- Доля данных для валидации отключенияДоля данных, используемых для валидации удержания, заданная в виде скалярного значения в области значений (0,1). Если вы задаете 'Holdout',p
, затем программное обеспечение завершает следующие шаги:
Случайный выбор и резервирование p*100
% данных в качестве данных валидации и train модели с использованием остальных данных.
Сохраните компактную, обученную модель в Trained
свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: 'Holdout',0.1
Типы данных: double
| single
'KFold'
- Количество складок10
(по умолчанию) | положительное целое значение, больше 1Количество складок для использования в перекрестно проверенной модели, заданное как положительное целое значение, больше 1. Если вы задаете 'KFold',k
, затем программное обеспечение завершает следующие шаги:
Случайным образом разделите данные на k
наборы.
Для каждого набора зарезервируйте набор как данные валидации и обучите модель, используя другой k
- 1 комплект.
Сохраните k
компактные, обученные модели в k
-by-1 вектор камеры в Trained
свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: 'KFold',5
Типы данных: single
| double
'Leaveout'
- Оставьте один из флагов перекрестной проверки'off'
(по умолчанию) | 'on'
Выходной флаг перекрестной проверки, заданный как 'on'
или 'off'
. Если вы задаете 'Leaveout','on'
, затем для каждого из n наблюдений (где n - количество наблюдений, исключая недостающие наблюдения, заданное в NumObservations
свойство модели), программное обеспечение завершает следующие шаги:
Зарезервируйте одно наблюдение как данные валидации и обучите модель с помощью другого n - 1 наблюдений.
Сохраните n компактные обученные модели в векторе камеры n-на-1 в Trained
свойство перекрестно проверенной модели.
Чтобы создать перекрестно проверенную модель, можно задать только один из следующих четырех аргументов в виде имя-значение: CVPartition
, Holdout
, KFold
, или Leaveout
.
Пример: 'Leaveout','on'
Mdl
- Обученный классификатор нейронной сетиClassificationNeuralNetwork
| объекта ClassificationPartitionedModel
объектОбученный классификатор нейронной сети, возвращенный как ClassificationNeuralNetwork
или ClassificationPartitionedModel
объект.
Если вы задаете любой из аргументов в виде имя-значение CrossVal
, CVPartition
, Holdout
, KFold
, или Leaveout
, затем Mdl
является ClassificationPartitionedModel
объект. В противном случае Mdl
является ClassificationNeuralNetwork
модель.
Ссылка на свойства Mdl
, используйте запись через точку.
Классификатор нейронной сети по умолчанию имеет следующую структуру слоя.
Структура | Описание |
---|---|
| Вход - Этот слой соответствует данным предиктора в Tbl или X . |
Первый полносвязный слой - Этот слой имеет 10 выходов по умолчанию.
| |
Функция активации ReLU -
| |
Конечный полносвязный слой - Этот слой имеет K выходов, где K - количество классов в переменной отклика.
| |
Функция Softmax (для двоичной и многоклассовой классификации) - Результаты соответствуют предсказанным классификационным оценкам (или апостериорной вероятности). | |
Выход - Этот слой соответствует предсказанным меткам классов. |
Для примера, который показывает, как классификатор нейронной сети с этой структурой слоя возвращает предсказания, см. «Предсказание использования структуры слоя классификатора нейронной сети».
Всегда пытайтесь стандартизировать числовые предикторы (см Standardize
). Стандартизация делает предикторы нечувствительными к шкалам, на которых они измеряются.
fitcnet
использует алгоритм Бройдена-Флектера-Голдфарба-Шанно квази-Ньютона (LBFGS) [3] ограниченной памяти в качестве метода минимизации функции потерь, где программное обеспечение минимизирует потери перекрестной энтропии.
[1] Глорот, Ксавьер и Йошуа Бенгио. «Понимание сложности настройки нейронных сетей с глубокой прямой связью». В Трудах тринадцатой международной конференции по искусственному интеллекту и статистике, стр. 249-256. 2010.
[2] He, Kaiming, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. «Delving into rectifers: Overpassing human-level эффективности on imagenet classification». В Трудах международной конференции IEEE по компьютерному зрению, стр. 1026-1034. 2015.
[3] Nocedal, J. and S. J. Wright. Численная оптимизация, 2-е изд., Нью-Йорк: Спрингер, 2006.
ClassificationNeuralNetwork
| ClassificationPartitionedModel
| CompactClassificationNeuralNetwork
| edge
| loss
| margin
| predict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.