Край классификации для наблюдений, не используемых для обучения
возвращает перекрестно проверенные границы классификации, полученные перекрестно проверенной, двоичной, линейной моделью классификации e = kfoldEdge(CVMdl)CVMdl. То есть, для каждого раза, kfoldEdge оценивает край классификации для наблюдений, который он выдает, когда он тренируется с использованием всех других наблюдений.
e содержит край классификации для каждой силы регуляризации в моделях линейной классификации, которые содержат CVMdl.
использует дополнительные параметры, указанные одним или несколькими e = kfoldEdge(CVMdl,Name,Value)Name,Value аргументы пары. Например, укажите, какие сгибы следует использовать для расчета кромки.
CVMdl - Модель перекрестной, двоичной, линейной классификацииClassificationPartitionedLinear объект моделиПерекрестно проверенная, двоичная, линейная модель классификации, указанная как ClassificationPartitionedLinear объект модели. Можно создать ClassificationPartitionedLinear модель с использованием fitclinear и указание любого из аргументов пары «имя-значение» перекрестной проверки, например, CrossVal.
Для получения оценок kfoldEdge применяет те же данные, которые используются для перекрестной проверки модели линейной классификации (X и Y).
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
'Folds' - Сворачивание индексов для использования при прогнозировании классификации и оценки1:CVMdl.KFold (по умолчанию) | числовой вектор положительных целых чиселСворачивание индексов для использования при прогнозировании классификационной оценки, указанной как пара, разделенная запятыми, состоящая из 'Folds' и числовой вектор положительных целых чисел. Элементы Folds должен быть в диапазоне от 1 через CVMdl.KFold.
Пример: 'Folds',[1 4 10]
Типы данных: single | double
'Mode' - Уровень агрегирования границ'average' (по умолчанию) | 'individual'Уровень агрегирования краев, указанный как пара, разделенная запятыми, состоящая из 'Mode' и 'average' или 'individual'.
| Стоимость | Описание |
|---|---|
'average' | Возвращает границы классификации, усредненные по всем складкам |
'individual' | Возвращает границы классификации для каждой гибки |
Пример: 'Mode','individual'
e - Перекрестно проверенные границы классификацииПерекрестно проверенные края классификации, возвращаемые в виде числового скаляра, вектора или матрицы.
Давайте L - количество сильных сторон регуляризации в перекрестно проверенных моделях (то есть L является numel(CVMdl.Trained{1}.Lambda)) и F - количество складок (хранящихся в CVMdl.KFold).
Если Mode является 'average', то e является 1-by-L вектор. e( - средний край классификации по всем складкам перекрестно проверенной модели, в которой используется сила регуляризации j)j.
В противном случае e является Fоколо-L матрица. e( является классификационным ребром для гибки i,j)i перекрестной проверенной модели, в которой используется сила регуляризации j.
Оценить e, kfoldEdge использует созданные данные CVMdl (см. X и Y).
Загрузите набор данных NLP.
load nlpdataX является разреженной матрицей данных предиктора, и Y является категориальным вектором меток класса. В данных имеется более двух классов.
Модели должны определять, содержится ли подсчет слов на веб-странице в документации Toolbox™ статистики и машинного обучения. Таким образом, определите метки, соответствующие страницам документации Toolbox™ статистики и машинного обучения.
Ystats = Y == 'stats';Перекрестная проверка бинарной модели линейной классификации, которая может определить, находится ли подсчет слов на веб-странице документации из документации Toolbox™ статистики и машинного обучения.
rng(1); % For reproducibility CVMdl = fitclinear(X,Ystats,'CrossVal','on');
CVMdl является ClassificationPartitionedLinear модель. По умолчанию программное обеспечение реализует 10-кратную перекрестную проверку. Можно изменить количество сгибов с помощью 'KFold' аргумент пары имя-значение.
Оцените среднее значение не складываемых кромок.
e = kfoldEdge(CVMdl)
e = 8.1243
Кроме того, можно получить кромки по складке, указав пару имя-значение. 'Mode','individual' в kfoldEdge.
Одним из способов выбора элемента является сравнение k-образных кромок из нескольких моделей. Исходя исключительно из этого критерия, классификатор с наивысшим ребром является лучшим классификатором.
Загрузите набор данных NLP. Выполните предварительную обработку данных, как в разделе Оценка k-кратного края перекрестной проверки.
load nlpdata Ystats = Y == 'stats'; X = X';
Создайте два набора данных:
fullX содержит все предикторы.
partX содержит 1/2 предикторов, выбранных случайным образом.
rng(1); % For reproducibility p = size(X,1); % Number of predictors halfPredIdx = randsample(p,ceil(0.5*p)); fullX = X; partX = X(halfPredIdx,:);
Перекрестная проверка двух бинарных, линейных моделей классификации: одна, которая использует все предикторы, и одна, которая использует половину предикторов. Оптимизируйте целевую функцию с помощью SpaRSA и укажите, что наблюдения соответствуют столбцам.
CVMdl = fitclinear(fullX,Ystats,'CrossVal','on','Solver','sparsa',... 'ObservationsIn','columns'); PCVMdl = fitclinear(partX,Ystats,'CrossVal','on','Solver','sparsa',... 'ObservationsIn','columns');
CVMdl и PCVMdl являются ClassificationPartitionedLinear модели.
Оцените k-кратное ребро для каждого классификатора.
fullEdge = kfoldEdge(CVMdl)
fullEdge = 16.5629
partEdge = kfoldEdge(PCVMdl)
partEdge = 13.9030
Основываясь на k-кратных ребрах, классификатор, который использует все предикторы, является лучшей моделью.
Чтобы определить хорошую силу лассо-штрафа для модели линейной классификации, которая использует учащегося логистической регрессии, сравните k-кратные края.
Загрузите набор данных NLP. Выполните предварительную обработку данных, как в разделе Оценка k-кратного края перекрестной проверки.
load nlpdata Ystats = Y == 'stats'; X = X';
Создайте набор из 11 логарифмически разнесенных уровней регуляции от до .
Lambda = logspace(-8,1,11);
Перекрестная проверка двоичной модели линейной классификации с использованием пятикратной перекрестной проверки, которая использует каждую из сильных сторон регуляризации. Оптимизируйте целевую функцию с помощью SpaRSA. Понизить допуск на градиенте целевой функции до 1e-8.
rng(10); % For reproducibility CVMdl = fitclinear(X,Ystats,'ObservationsIn','columns','KFold',5,... 'Learner','logistic','Solver','sparsa','Regularization','lasso',... 'Lambda',Lambda,'GradientTolerance',1e-8)
CVMdl =
ClassificationPartitionedLinear
CrossValidatedModel: 'Linear'
ResponseName: 'Y'
NumObservations: 31572
KFold: 5
Partition: [1x1 cvpartition]
ClassNames: [0 1]
ScoreTransform: 'none'
Properties, Methods
CVMdl является ClassificationPartitionedLinear модель. Поскольку fitclinear реализует пятикратную перекрестную проверку, CVMdl содержит 5 ClassificationLinear модели, которые программное обеспечение обучает на каждой складке.
Оцените края для каждой складки и силы регуляризации.
eFolds = kfoldEdge(CVMdl,'Mode','individual')
eFolds = 5×11
0.9958 0.9958 0.9958 0.9958 0.9958 0.9925 0.9768 0.9231 0.8468 0.8127 0.8127
0.9991 0.9991 0.9991 0.9991 0.9991 0.9939 0.9779 0.9183 0.8263 0.8128 0.8128
0.9992 0.9992 0.9992 0.9992 0.9992 0.9942 0.9780 0.9183 0.8254 0.8128 0.8128
0.9974 0.9974 0.9974 0.9974 0.9974 0.9931 0.9773 0.9191 0.8477 0.8130 0.8130
0.9977 0.9977 0.9977 0.9977 0.9977 0.9942 0.9782 0.9185 0.8380 0.8127 0.8127
eFolds представляет собой матрицу рёбер 5 на 11. Строки соответствуют складкам, а столбцы соответствуют прочностям регуляризации в Lambda. Вы можете использовать eFolds для выявления плохо работающих складок, то есть необычно низких кромок.
Оцените среднюю кромку по всем складкам для каждой силы регуляризации.
e = kfoldEdge(CVMdl)
e = 1×11
0.9978 0.9978 0.9978 0.9978 0.9978 0.9936 0.9776 0.9195 0.8368 0.8128 0.8128
Определите, насколько хорошо модели обобщаются, построив график средних значений 5-кратного края для каждой силы регуляризации. Определите силу регуляризации, которая максимизирует пятикратную кромку по сетке.
figure; plot(log10(Lambda),log10(e),'-o') [~, maxEIdx] = max(e); maxLambda = Lambda(maxEIdx); hold on plot(log10(maxLambda),log10(e(maxEIdx)),'ro'); ylabel('log_{10} 5-fold edge') xlabel('log_{10} Lambda') legend('Edge','Max edge') hold off

Несколько значений Lambda получить такие же высокие края. Более высокие значения лямбда приводят к предикторной переменной разреженности, которая является хорошим качеством классификатора.
Выберите силу регуляризации, которая возникает непосредственно перед тем, как край начнет уменьшаться.
LambdaFinal = Lambda(5);
Обучение модели линейной классификации с использованием всего набора данных и определение силы регуляризации LambdaFinal.
MdlFinal = fitclinear(X,Ystats,'ObservationsIn','columns',... 'Learner','logistic','Solver','sparsa','Regularization','lasso',... 'Lambda',LambdaFinal);
Чтобы оценить метки для новых наблюдений, передайте MdlFinal и новые данные для predict.
Край классификации - это средневзвешенное значение полей классификации.
Один из способов выбора из нескольких классификаторов, например, выбор элемента, - выбор классификатора, который дает наибольший край.
Поле классификации для двоичной классификации является для каждого наблюдения разницей между оценкой классификации для истинного класса и оценкой классификации для ложного класса.
Программа определяет поле классификации для двоичной классификации как
x).
x - это наблюдение. Если истинная метка x является положительным классом, то y равно 1, а в противном случае -1. f (x) - показатель классификации положительного класса для наблюдения x. Обычно запас классификации определяется как m = yf (x).
Если поля находятся в одной шкале, то они служат мерой достоверности классификации. Среди нескольких классификаторов лучше те, которые дают большую маржу.
Для моделей линейной классификации необработанный показатель классификации для классификации наблюдения x, вектора строки, в положительный класс определяется как
+ bj.
Для модели с силой регуляризации j - оцененный вектор-столбец коэффициентов (свойство модели Beta(:,j)) и - оценочное скалярное смещение (свойство модели Bias(j)).
Необработанный показатель классификации для классификации x в отрицательный класс равен -f (x). Программа классифицирует наблюдения в класс, который дает положительную оценку.
Если модель линейной классификации состоит из учащихся с логистической регрессией, то программное обеспечение применяет 'logit' преобразование баллов в необработанные оценки классификации (см. ScoreTransform).
ClassificationLinear | ClassificationPartitionedLinear | edge | kfoldMargin | kfoldPredict
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.