Классификационные поля для наблюдений, не используемых в обучении
возвращает перекрестно проверенные классификационные поля, полученные перекрестно проверенной, двоичной, линейной классификационной моделью 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 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. Предварительно обработайте данные как в 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.