Классификационные поля для наблюдений, не используемых в обучении
возвращает перекрестно проверенные классификационные поля, полученные перекрестно проверенной, двоичной, линейной классификационной моделью m = kfoldMargin(CVMdl)CVMdl. То есть для каждой складки kfoldMargin оценивает классификационные границы для наблюдений, которые он выполняет при обучении с использованием всех других наблюдений.
m содержит классификационные поля для каждой регуляризационной прочности в линейных классификационных моделях, которые содержат CVMdl.
CVMdl - Перекрестная проверенная, двоичная, линейная классификационная модельClassificationPartitionedLinear объект моделиПерекрестная проверенная, двоичная, линейная модель классификации, заданная как ClassificationPartitionedLinear объект модели. Можно создать ClassificationPartitionedLinear модель с использованием fitclinear и указание любого из аргументов пары "имя-значение", например CrossVal.
Чтобы получить оценки, kfoldMargin применяет те же данные, что и для перекрестной проверки линейной классификационной модели (X и Y).
m - Перекрестная проверка классификационных полейПерекрестные проверенные классификационные поля, возвращенные как числовой вектор или матрица.
m is n -by - L, где n - количество наблюдений в данных, которые создали CVMdl (см. X и Y) и L количество сильных сторон регуляризации в CVMdl (то есть numel(CVMdl.Trained{1}.Lambda)).
м - перекрестный подтвержденный классификационный запас i наблюдений с использованием линейной классификационной модели, которая имеет силу регуляризации (i, j)CVMdl.Trained {1} ..Lambda (j)
Типы данных: single | double
Загрузите набор данных NLP.
load nlpdataX является разреженной матрицей данных предиктора, и 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. Предварительно обработайте данные как в Estimate k-Fold Cross-Validation Margins.
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-fold с помощью прямоугольных графиков.
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. Предварительно обработайте данные как в Estimate k-Fold Cross-Validation Margins.
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. Более высокие значения лямбды приводят к разреженности переменной предиктора, которая является хорошим качеством классификатора.
Выберите силу регуляризации, которая происходит непосредственно перед тем, как центры распределений запаса 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).
ClassificationLinear | ClassificationPartitionedLinear | kfoldEdge | kfoldPredict | margin
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.