Линейная модель для бинарной классификации высоко-размерных данных
ClassificationLinear
обученный линейный объект модели для бинарной классификации; линейная модель является моделью логистической регрессии или машиной опорных векторов (SVM). fitclinear
соответствует ClassificationLinear
модель путем минимизации целевой функции с помощью методов, которые уменьшают время вычисления для высоко-размерных наборов данных (например, стохастический градиентный спуск). Потеря классификации плюс срок регуляризации составляет целевую функцию.
В отличие от других моделей классификации, и для экономичного использования памяти, ClassificationLinear
объекты модели не хранят обучающие данные. Однако они действительно хранят, например, предполагаемые линейные коэффициенты модели, вероятности предшествующего класса и силу регуляризации.
Можно использовать, обучил ClassificationLinear
модели, чтобы предсказать метки или музыку классификации к новым данным. Для получения дополнительной информации смотрите predict
.
Создайте ClassificationLinear
объект при помощи fitclinear
.
Lambda
— Сила срока регуляризацииСила срока регуляризации, заданная как неотрицательный скаляр или вектор неотрицательных значений.
Типы данных: double |
single
Learner
— Линейный тип модели классификации'logistic'
| 'svm'
Линейный тип модели классификации, заданный как 'logistic'
или 'svm'
.
В этой таблице,
β является вектором коэффициентов p.
x является наблюдением от переменных предикторов p.
b является скалярным смещением.
Значение | Алгоритм | Функция потерь | FittedLoss Значение |
---|---|---|---|
'logistic' | Логистическая регрессия | (Логистическое) отклонение: | 'logit' |
'svm' | Машина опорных векторов | Стержень: | 'hinge' |
Beta
— Линейные содействующие оценкиЛинейные содействующие оценки, заданные как числовой вектор с длиной, равняются количеству предикторов.
Типы данных: double
Bias
— Предполагаемый срок смещенияПредполагаемый срок смещения или прерывание модели, заданное в виде числа.
Типы данных: double
FittedLoss
— Функция потерь раньше подбирала линейную модель'hinge'
| 'logit'
Функция потерь раньше подбирала линейную модель, заданную как 'hinge'
или 'logit'
.
Значение | Алгоритм | Функция потерь | Learner Значение |
---|---|---|---|
'hinge' | Машина опорных векторов | Стержень: | 'svm' |
'logit' | Логистическая регрессия | (Логистическое) отклонение: | 'logistic' |
Regularization
— Тип штрафа сложности'lasso (L1)'
| 'ridge (L2)'
Тип штрафа сложности, заданный как 'lasso (L1)'
или 'ridge (L2)'
.
Программное обеспечение составляет целевую функцию для минимизации от суммы средней функции потерь (см. FittedLoss
) и значение регуляризации из этой таблицы.
Значение | Описание |
---|---|
'lasso (L1)' | Лассо (L 1) штраф: |
'ridge (L2)' | Гребень (L 2) штраф: |
λ задает силу срока регуляризации (см. Lambda
).
Программное обеспечение исключает срок смещения (β 0) от штрафа регуляризации.
CategoricalPredictors
— Индексы категориальных предикторов[]
Индексы категориальных предикторов, значение которых всегда пусто ([]
) потому что ClassificationLinear
модель не поддерживает категориальные предикторы.
ClassNames
— Уникальные метки классаУникальные метки класса используются в обучении, заданном как категориальное или символьный массив, логический или числовой вектор или массив ячеек из символьных векторов. ClassNames
имеет совпадающий тип данных, когда класс маркирует Y
. (Программное обеспечение обрабатывает строковые массивы как массивы ячеек из символьных векторов.)
ClassNames
также определяет порядок класса.
Типы данных: categorical
| char
| logical
| single
| double
| cell
Cost
— Затраты MisclassificationЭто свойство доступно только для чтения.
Затраты Misclassification, заданные как квадратная числовая матрица. Cost
имеет строки и столбцы K, где K является количеством классов.
Стойте (
стоимость классификации точки в класс i
J
)j
если его истинным классом является i
. Порядок строк и столбцов Cost
соответствует порядку классов в ClassNames
.
Типы данных: double
ModelParameters
— Параметры используются в учебной моделиПараметры использовали в обучении ClassificationLinear
модель, заданная как структура.
Доступ к полям ModelParameters
использование записи через точку. Например, получите доступ к относительному допуску на линейных коэффициентах и сроке смещения при помощи Mdl.ModelParameters.BetaTolerance
.
Типы данных: struct
PredictorNames
— Имена предиктораПредиктор называет в порядке их внешнего вида в данных о предикторе X
, заданный как массив ячеек из символьных векторов. Длина PredictorNames
равно количеству столбцов в X
.
Типы данных: cell
ExpandedPredictorNames
— Расширенные имена предиктораРасширенные имена предиктора, заданные как массив ячеек из символьных векторов.
Поскольку ClassificationLinear
модель не поддерживает категориальные предикторы, ExpandedPredictorNames
и PredictorNames
равны.
Типы данных: cell
Prior
— Предшествующие вероятности классаЭто свойство доступно только для чтения.
Предшествующие вероятности класса, заданные как числовой вектор. Prior
имеет столько же элементов сколько классы в ClassNames
, и порядок элементов соответствует элементам ClassNames
.
Типы данных: double
ScoreTransform
— Выиграйте функцию преобразования'doublelogit'
| 'invlogit'
| 'ismax'
| 'logit'
| 'none'
| указатель на функцию |...Выиграйте функцию преобразования, чтобы примениться к предсказанным баллам, определенному функцией имени или указателю на функцию.
Для линейных моделей классификации и перед преобразованием, предсказанным счетом классификации к наблюдению x (вектор-строка) является f (x) = x β + b, где β и b соответствуют Mdl.Beta
и Mdl.Bias
, соответственно.
Чтобы изменить преобразование счета функционируют к, например, function
, используйте запись через точку.
Для встроенной функции введите этот код и замените function
со значением в таблице.
Mdl.ScoreTransform = 'function';
Значение | Описание |
---|---|
'doublelogit' | 1/(1 + e –2x) |
'invlogit' | журнал (x / (1 – x)) |
'ismax' | Устанавливает счет к классу с самым большим счетом к 1 , и устанавливает музыку ко всем другим классам к 0 |
'logit' | 1/(1 + e –x) |
'none' или 'identity' | x (никакое преобразование) |
'sign' | – 1 для x <0 0 для x = 0 1 для x> 0 |
'symmetric' | 2x – 1 |
'symmetricismax' | Устанавливает счет к классу с самым большим счетом к 1 , и устанавливает музыку ко всем другим классам к –1 |
'symmetriclogit' | 2/(1 + e –x) – 1 |
Для функции MATLAB® или функции, которую вы задаете, вводят ее указатель на функцию.
Mdl.ScoreTransform = @function;
function
должен принять матрицу исходной музыки к каждому классу, и затем возвратить матричное представление одного размера преобразованной музыки к каждому классу.
Типы данных: char |
function_handle
ResponseName
— Имя переменной откликаИмя переменной отклика, заданное как вектор символов.
Типы данных: char
ребро | Ребро классификации для линейных моделей классификации |
потеря | Потеря классификации для линейных моделей классификации |
поле | Поля классификации для линейных моделей классификации |
предсказать | Предскажите метки для линейных моделей классификации |
selectModels | Выберите подмножество упорядоченных, бинарных линейных моделей классификации |
Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).
Обучите двоичный файл, линейная модель классификации использование машин опорных векторов, двойного SGD и гребенчатой регуляризации.
Загрузите набор данных NLP.
load nlpdata
X
разреженная матрица данных о предикторе и Y
категориальный вектор меток класса. В данных существует больше чем два класса.
Идентифицируйте метки, которые соответствуют веб-страницам документации Statistics and Machine Learning Toolbox™.
Ystats = Y == 'stats';
Обучите двоичный файл, линейная модель классификации, которая может идентифицировать, являются ли подсчеты слов в веб-странице документации из документации Statistics and Machine Learning Toolbox™. Обучите модель с помощью целого набора данных. Определите, как хорошо алгоритм оптимизации подбирает модель к данным путем извлечения подходящих сводных данных.
rng(1); % For reproducibility
[Mdl,FitInfo] = fitclinear(X,Ystats)
Mdl = ClassificationLinear ResponseName: 'Y' ClassNames: [0 1] ScoreTransform: 'none' Beta: [34023x1 double] Bias: -1.0059 Lambda: 3.1674e-05 Learner: 'svm' Properties, Methods
FitInfo = struct with fields:
Lambda: 3.1674e-05
Objective: 5.3783e-04
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 238561
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.0562
BetaTolerance: 1.0000e-04
DeltaGradient: 1.4582
DeltaGradientTolerance: 1
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [31572x1 double]
History: []
FitTime: 0.1688
Solver: {'dual'}
Mdl
ClassificationLinear
модель. Можно передать Mdl
и учебные или новые данные к loss
смотреть ошибку классификации в выборке. Или, можно передать Mdl
и новые данные о предикторе к predict
предсказать класс помечает для новых наблюдений.
FitInfo
массив структур, содержащий, среди прочего, состояние завершения (TerminationStatus
) и сколько времени решатель взял, чтобы подбирать модель к данным (FitTime
). Это - хорошая практика, чтобы использовать FitInfo
определить, являются ли измерения завершения оптимизации удовлетворительными. Поскольку учебное время мало, можно попытаться переобучить модель, но увеличить количество проходов через данные. Это может улучшить меры как DeltaGradient
.
Загрузите набор данных NLP.
load nlpdata n = size(X,1); % Number of observations
Идентифицируйте метки, которые соответствуют веб-страницам документации Statistics and Machine Learning Toolbox™.
Ystats = Y == 'stats';
Протяните 5% данных.
rng(1); % For reproducibility cvp = cvpartition(n,'Holdout',0.05)
cvp = Hold-out cross validation partition NumObservations: 31572 NumTestSets: 1 TrainSize: 29994 TestSize: 1578
cvp
CVPartition
объект, который задает случайный раздел n данных в наборы обучающих данных и наборы тестов.
Обучите двоичный файл, линейная модель классификации использование набора обучающих данных, который может идентифицировать, являются ли подсчеты слов в веб-странице документации из документации Statistics and Machine Learning Toolbox™. В течение более быстрого учебного времени ориентируйте матрицу данных предиктора так, чтобы наблюдения были в столбцах.
idxTrain = training(cvp); % Extract training set indices X = X'; Mdl = fitclinear(X(:,idxTrain),Ystats(idxTrain),'ObservationsIn','columns');
Предскажите наблюдения и ошибку классификации для хранения выборка.
idxTest = test(cvp); % Extract test set indices labels = predict(Mdl,X(:,idxTest),'ObservationsIn','columns'); L = loss(Mdl,X(:,idxTest),Ystats(idxTest),'ObservationsIn','columns')
L = 7.1753e-04
Mdl
неправильно классифицирует меньше чем 1% наблюдений из выборки.
Указания и ограничения по применению:
Когда вы обучаете линейную модель классификации при помощи fitclinear
, следующие ограничения применяются.
Значение аргумента ввода данных предиктора (X
) должна быть полная, числовая матрица.
Класс помечает значение входного параметра (Y
) не может быть категориальный массив.
Значение 'ClassNames'
аргументом пары "имя-значение" или свойством не может быть категориальный массив.
Можно задать только одну силу регуляризации, любой 'auto'
или неотрицательный скаляр для 'Lambda'
аргумент пары "имя-значение".
Значение 'ScoreTransform'
аргументом пары "имя-значение" не может быть анонимная функция.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
ClassificationECOC
| ClassificationKernel
| ClassificationPartitionedLinear
| ClassificationPartitionedLinearECOC
| fitclinear
| predict
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.