Поля классификации для наблюдений, не используемых в обучении
возвращает перекрестные подтвержденные поля классификации, полученные перекрестным подтвержденным, двоичным файлом, линейной моделью m
= kfoldMargin(CVMdl
)CVMdl
классификации. Таким образом, для каждого сгиба,
kfoldMargin
оценивает поля классификации для наблюдений, что это протягивает, когда это обучает использование всех других наблюдений.
m
содержит поля классификации для каждой силы регуляризации в линейных моделях классификации, которые включают CVMdl
.
CVMdl
— Перекрестный подтвержденный, двоичный файл, линейная модель классификацииClassificationPartitionedLinear
объект моделиПерекрестный подтвержденный, двоичный файл, линейная модель классификации в виде ClassificationPartitionedLinear
объект модели. Можно создать ClassificationPartitionedLinear
использование модели fitclinear
и определение любой из перекрестной проверки, аргументов пары "имя-значение", например, CrossVal
.
Чтобы получить оценки, kfoldMargin применяется, те же данные раньше перекрестный подтверждали линейную модель классификации (X
и Y
).
m
— Перекрестные подтвержденные поля классификацииПерекрестные подтвержденные поля классификации, возвращенные как числовой вектор или матрица.
m
n-by-L, где n является количеством наблюдений в данных, которые создали CVMdl
(см. X
и Y
) и L является количеством сильных мест регуляризации в CVMdl
(то есть, numel(CVMdl.Trained{1}.Lambda)
).
m (
перекрестное подтвержденное поле классификации наблюдения i с помощью линейной модели классификации, которая имеет силу регуляризации i
J
)CVMdl. Обученный {1}.Lambda (
.j
)
Типы данных: single
| double
Загрузите набор данных 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'
аргумент пары "имя-значение".
Оцените перекрестные подтвержденные поля.
m = kfoldMargin(CVMdl); size(m)
ans = 1×2
31572 1
m
31572 1 вектор. m(j)
среднее значение полей из сгиба для наблюдения j
.
Постройте поля k-сгиба с помощью диаграмм.
figure;
boxplot(m);
h = gca;
h.YLim = [-5 30];
title('Distribution of Cross-Validated Margins')
Один способ выполнить выбор признаков состоит в том, чтобы сравнить поля 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-сгиба для каждого классификатора. Постройте распределение наборов полей k-сгиба с помощью диаграмм.
fullMargins = kfoldMargin(CVMdl); partMargins = kfoldMargin(PCVMdl); figure; boxplot([fullMargins partMargins],'Labels',... {'All Predictors','Half of the Predictors'}); h = gca; h.YLim = [-30 60]; title('Distribution of Cross-Validated Margins')
Распределения полей этих двух классификаторов подобны.
Чтобы определить хорошую силу штрафа лассо для линейной модели классификации, которая использует ученика логистической регрессии, сравните распределения полей k-сгиба.
Загрузите набор данных NLP. Предварительно обработайте данные как в Оценочных Полях Перекрестной проверки k-сгиба.
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
модели, которые программное обеспечение обучает на каждом сгибе.
Оцените поля k-сгиба для каждой силы регуляризации.
m = kfoldMargin(CVMdl); size(m)
ans = 1×2
31572 11
m
31572 11 матрица перекрестных подтвержденных полей для каждого наблюдения. Столбцы соответствуют сильным местам регуляризации.
Постройте поля k-сгиба для каждой силы регуляризации. Поскольку баллы логистической регрессии находятся в [0,1], поля находятся в [-1,1]. Перемасштабируйте поля, чтобы помочь идентифицировать силу регуляризации, которая максимизирует поля по сетке.
figure boxplot(10000.^m) ylabel('Exponentiated test-sample margins') xlabel('Lambda indices')
Несколько значений Lambda
дайте к распределениям поля k-сгиба, которые уплотнены около 10000. Более высокие значения lambda приводят к разреженности переменного предиктора, которая является хорошим качеством классификатора.
Выберите силу регуляризации, которая происходит непосредственно перед тем, как центры распределений поля k-сгиба начинают уменьшаться.
LambdaFinal = Lambda(5);
Обучите линейную модель классификации использование целого набора данных и задайте желаемую силу регуляризации.
MdlFinal = fitclinear(X,Ystats,'ObservationsIn','columns', ... 'Learner','logistic','Solver','sparsa','Regularization','lasso', ... 'Lambda',LambdaFinal);
Чтобы оценить метки для новых наблюдений, передайте MdlFinal
и новые данные к predict
.
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
).
ClassificationPartitionedLinear
| kfoldEdge
| ClassificationLinear
| kfoldPredict
| margin
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.