Классификационное ребро для наблюдений, не используемых для обучения
возвращает перекрестно проверенные ребра классификации, полученные с помощью перекрестно проверенной, двоичной, линейной модели классификации 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-байт- L
вектор. e
- среднее ребро классификации по всем складкам перекрестно проверенной модели, которая использует силу регуляризации (j
)j
.
В противном случае e
является F
-by- L
матрица. e
- классификационное ребро для сгиба (i
, j
)i
модели с перекрестной проверкой, которая использует силу регуляризации j
.
Для оценки e
, kfoldEdge
использует данные, которые создали CVMdl
(см. X
и Y
).
Загрузите набор данных NLP.
load nlpdata
X
является разреженной матрицей данных предиктора, и Y
является категориальным вектором меток классов. В данных более двух классов.
Модели должны определять, получено ли количество слов на веб-странице из документации Statistics and Machine Learning Toolbox™. Итак, идентифицируйте метки, которые соответствуют веб-страницам документации Statistics and Machine Learning Toolbox™.
Ystats = Y == 'stats';
Перекрестная проверка двоичной, линейной модели классификации, которая может идентифицировать, являются ли подсчеты слов на веб-странице документации из документации Statistics and Machine Learning 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. Предварительно обработайте данные как в Estimate k-Fold Cross-Validation Edge.
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. Предварительно обработайте данные как в Estimate k-Fold Cross-Validation Edge.
load nlpdata Ystats = Y == 'stats'; X = X';
Создайте набор из 11 логарифмически разнесенных сильных сторон регуляризации через .
Lambda = logspace(-8,1,11);
Перекрестная валидация двоичной, линейной модели классификации с помощью 5-кратной перекрестной валидации и которая использует каждую из сильных сторон регуляризации. Оптимизируйте целевую функцию с помощью 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
реализует 5-кратную перекрестную валидацию, 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-кратного ребра для каждой силы регуляризации. Идентифицируйте регуляризационную прочность, которая максимизирует 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
.
Это classification edge - средневзвешенное значение классификационных полей.
Один из способов выбрать один из нескольких классификаторов, например, для выбора признаков, - выбрать классификатор, который дает наибольшее ребро.
Для каждого наблюдения classification margin двоичной классификации является различие между классификационной оценкой для истинного класса и классификационной оценкой для ложного класса.
Программное обеспечение определяет классификационный запас для двоичной классификации как
x является наблюдением. Если истинная метка x является положительным классом, то y равен 1, и -1 в противном случае. f (x) является классификационной оценкой положительного класса для x наблюдений. Классификационное поле обычно определяется как m = y f (x).
Если поля находятся в одной шкале, то они служат классификационной доверительной мерой. Среди нескольких классификаторов лучше те, которые дают большую маржу.
Для линейных классификационных моделей необработанный classification score для классификации x наблюдений, вектора-строки, в положительный класс задан как
Для модели с j прочности регуляризации, - предполагаемый вектор-столбец коэффициентов (свойство модели Beta(:,j)
) и - оцененное скалярное смещение (свойство модели Bias(j)
).
Необработанная классификационная оценка для классификации x в отрицательный класс - f (x). Программа классифицирует наблюдения в класс, который приводит к положительному счету.
Если линейная модель классификации состоит из обучающихся логистической регрессии, то программное обеспечение применяет 'logit'
преобразование счета в необработанные классификационные оценки (см. ScoreTransform
).
ClassificationLinear
| ClassificationPartitionedLinear
| edge
| kfoldMargin
| kfoldPredict
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.