Модель линейной регрессии для высоко-размерных данных
RegressionLinear
обученный линейный объект модели для регрессии; линейная модель является регрессией машины опорных векторов моделью линейной регрессии или (SVM). fitrlinear
соответствует RegressionLinear
модель путем минимизации целевой функции с помощью методов, которые уменьшают время вычисления для высоко-размерных наборов данных (например, стохастический градиентный спуск). Потеря регрессии плюс срок регуляризации составляет целевую функцию.
В отличие от других моделей регрессии, и для экономичного использования памяти, RegressionLinear
объекты модели не хранят обучающие данные. Однако они действительно хранят, например, предполагаемые линейные коэффициенты модели, оцененные коэффициенты и силу регуляризации.
Можно использовать, обучил RegressionLinear
модели, чтобы предсказать ответы для новых данных. Для получения дополнительной информации смотрите predict
.
Создайте RegressionLinear
объект при помощи fitrlinear
.
Epsilon
— Половина ширины нечувствительной к эпсилону полосыПоловина ширины нечувствительной полосы эпсилона, заданной как неотрицательный скаляр.
Если Learner
не 'svm'
, затем Epsilon
пустой массив ([]
).
Типы данных: single
| double
Lambda
— Сила срока регуляризацииСила срока регуляризации, заданная как неотрицательный скаляр или вектор неотрицательных значений.
Типы данных: double |
single
Learner
— Тип модели линейной регрессии'leastsquares'
| 'svm'
Тип модели линейной регрессии, заданный как 'leastsquares'
или 'svm'
.
В этой таблице,
β является вектором коэффициентов p.
x является наблюдением от переменных предикторов p.
b является скалярным смещением.
Значение | Алгоритм | Функция потерь | FittedLoss Значение |
---|---|---|---|
'leastsquares' | Линейная регрессия через обычные наименьшие квадраты | Среднеквадратическая ошибка (MSE): | 'mse' |
'svm' | Регрессия машины опорных векторов | Нечувствительный к эпсилону: | 'epsiloninsensitive' |
Beta
— Линейные содействующие оценкиЛинейные содействующие оценки, заданные как числовой вектор с длиной, равняются количеству предикторов.
Типы данных: double
Bias
— Предполагаемый срок смещенияПредполагаемый срок смещения или прерывание модели, заданное в виде числа.
Типы данных: double
FittedLoss
— Функция потерь раньше подбирала линейную модель'epsiloninsensitive'
| 'mse'
Функция потерь раньше подбирала модель, заданную как 'epsiloninsensitive'
или 'mse'
.
Значение | Алгоритм | Функция потерь | Learner Значение |
---|---|---|---|
'epsiloninsensitive' | Регрессия машины опорных векторов | Нечувствительный к эпсилону: | 'svm' |
'mse' | Линейная регрессия через обычные наименьшие квадраты | Среднеквадратическая ошибка (MSE): | 'leastsquares' |
Regularization
— Тип штрафа сложности'lasso (L1)'
| 'ridge (L2)'
Тип штрафа сложности, заданный как 'lasso (L1)'
или 'ridge (L2)'
.
Программное обеспечение составляет целевую функцию для минимизации от суммы средней функции потерь (см. FittedLoss
) и значение регуляризации из этой таблицы.
Значение | Описание |
---|---|
'lasso (L1)' | Лассо (L 1) штраф: |
'ridge (L2)' | Гребень (L 2) штраф: |
λ задает силу срока регуляризации (см. Lambda
).
Программное обеспечение исключает срок смещения (β 0) от штрафа регуляризации.
ModelParameters
— Параметры используются в учебной моделиПараметры использовали в обучении RegressionLinear
модель, заданная как структура.
Доступ к полям ModelParameters
использование записи через точку. Например, получите доступ к относительному допуску на линейных коэффициентах и сроке смещения при помощи Mdl.ModelParameters.BetaTolerance
.
Типы данных: struct
PredictorNames
— Имена предиктораПредиктор называет в порядке их внешнего вида в данных о предикторе X
, заданный как массив ячеек из символьных векторов. Длина PredictorNames
равно количеству столбцов в X
.
Типы данных: cell
ExpandedPredictorNames
— Расширенные имена предиктораРасширенные имена предиктора, заданные как массив ячеек из символьных векторов.
Поскольку RegressionLinear
модель не поддерживает категориальные предикторы, ExpandedPredictorNames
и PredictorNames
равны.
Типы данных: cell
ResponseName
— Имя переменной откликаИмя переменной отклика, заданное как вектор символов.
Типы данных: char
ResponseTransform
— Функция преобразования ответа'none'
| указатель на функциюФункция преобразования ответа, заданная как 'none'
или указатель на функцию. ResponseTransform
описывает, как программное обеспечение преобразовывает необработанные значения ответа.
Для функции MATLAB® или функции, которую вы задаете, вводят ее указатель на функцию. Например, можно ввести Mdl.ResponseTransform = @function
, где function
принимает числовой вектор исходных ответов и возвращает числовой вектор, одного размера содержащий преобразованные ответы.
Типы данных: char |
function_handle
потеря | Потеря регрессии для моделей линейной регрессии |
предсказать | Предскажите ответ модели линейной регрессии |
selectModels | Выберите подбиравшие упорядоченные модели линейной регрессии |
Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB).
Обучите модель линейной регрессии, использующую SVM, двойной SGD и гребенчатую регуляризацию.
Симулируйте 10 000 наблюдений из этой модели
10000 1000 разреженная матрица с 10%-ми ненулевыми стандартными нормальными элементами.
e является случайной нормальной ошибкой со средним значением 0 и стандартным отклонением 0.3.
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
Обучите модель линейной регрессии. По умолчанию, fitrlinear
машины опорных векторов использования с гребенчатым штрафом, и оптимизируют использующий двойной SGD для SVM. Определите, как хорошо алгоритм оптимизации подбирает модель к данным путем извлечения подходящих сводных данных.
[Mdl,FitInfo] = fitrlinear(X,Y)
Mdl = RegressionLinear ResponseName: 'Y' ResponseTransform: 'none' Beta: [1000x1 double] Bias: -0.0056 Lambda: 1.0000e-04 Learner: 'svm' Properties, Methods
FitInfo = struct with fields:
Lambda: 1.0000e-04
Objective: 0.2725
PassLimit: 10
NumPasses: 10
BatchLimit: []
NumIterations: 100000
GradientNorm: NaN
GradientTolerance: 0
RelativeChangeInBeta: 0.4907
BetaTolerance: 1.0000e-04
DeltaGradient: 1.5816
DeltaGradientTolerance: 0.1000
TerminationCode: 0
TerminationStatus: {'Iteration limit exceeded.'}
Alpha: [10000x1 double]
History: []
FitTime: 0.0796
Solver: {'dual'}
Mdl
RegressionLinear
модель. Можно передать Mdl
и учебные или новые данные к loss
смотреть среднеквадратическую ошибку в выборке. Или, можно передать Mdl
и новые данные о предикторе к predict
предсказать ответы для новых наблюдений.
FitInfo
массив структур, содержащий, среди прочего, состояние завершения (TerminationStatus
) и сколько времени решатель взял, чтобы подбирать модель к данным (FitTime
). Это - хорошая практика, чтобы использовать FitInfo
определить, являются ли измерения завершения оптимизации удовлетворительными. В этом случае, fitrlinear
достигнутый максимальное количество итераций. Поскольку учебное время быстро, можно переобучить модель, но увеличить количество проходов через данные. Или, попробуйте другой решатель, такой как LBFGS.
Симулируйте 10 000 наблюдений из этой модели
10000 1000 разреженная матрица с 10%-ми ненулевыми стандартными нормальными элементами.
e является случайной нормальной ошибкой со средним значением 0 и стандартным отклонением 0.3.
rng(1) % For reproducibility
n = 1e4;
d = 1e3;
nz = 0.1;
X = sprandn(n,d,nz);
Y = X(:,100) + 2*X(:,200) + 0.3*randn(n,1);
Протяните 5% данных.
rng(1); % For reproducibility cvp = cvpartition(n,'Holdout',0.05)
cvp = Hold-out cross validation partition NumObservations: 10000 NumTestSets: 1 TrainSize: 9500 TestSize: 500
cvp
CVPartition
объект, который задает случайный раздел n данных в наборы обучающих данных и наборы тестов.
Обучите модель линейной регрессии использование набора обучающих данных. В течение более быстрого учебного времени ориентируйте матрицу данных предиктора так, чтобы наблюдения были в столбцах.
idxTrain = training(cvp); % Extract training set indices X = X'; Mdl = fitrlinear(X(:,idxTrain),Y(idxTrain),'ObservationsIn','columns');
Предскажите наблюдения и среднеквадратическую ошибку (MSE) для хранения выборка.
idxTest = test(cvp); % Extract test set indices yHat = predict(Mdl,X(:,idxTest),'ObservationsIn','columns'); L = loss(Mdl,X(:,idxTest),Y(idxTest),'ObservationsIn','columns')
L = 0.1851
Выборка затяжки MSE 0.1852.
Указания и ограничения по применению:
Когда вы обучаете модель линейной регрессии при помощи fitrlinear
, следующие ограничения применяются.
Значение аргумента ввода данных предиктора (X
) должна быть полная числовая матрица.
Можно задать только одну силу регуляризации, любой 'auto'
или неотрицательный скаляр для 'Lambda'
аргумент пары "имя-значение".
Значение 'ResponseTransform'
аргументом пары "имя-значение" не может быть анонимная функция.
Для получения дополнительной информации смотрите Введение в Генерацию кода.
RegressionPartitionedLinear
| fitrlinear
| plotPartialDependence
| predict
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
Вы щелкнули по ссылке, которая соответствует команде MATLAB:
Выполните эту команду, введя её в командном окне MATLAB.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.