LbfgsLogisticRegressionBinaryTrainer Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной логистической регрессии, обученной с помощью метода L-BFGS.
public sealed class LbfgsLogisticRegressionBinaryTrainer : Microsoft.ML.Trainers.LbfgsTrainerBase<Microsoft.ML.Trainers.LbfgsLogisticRegressionBinaryTrainer.Options,Microsoft.ML.Data.BinaryPredictionTransformer<Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>,Microsoft.ML.Calibrators.CalibratedModelParametersBase<Microsoft.ML.Trainers.LinearBinaryModelParameters,Microsoft.ML.Calibrators.PlattCalibrator>>
type LbfgsLogisticRegressionBinaryTrainer = class
inherit LbfgsTrainerBase<LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer<CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>, CalibratedModelParametersBase<LinearBinaryModelParameters, PlattCalibrator>>
Public NotInheritable Class LbfgsLogisticRegressionBinaryTrainer
Inherits LbfgsTrainerBase(Of LbfgsLogisticRegressionBinaryTrainer.Options, BinaryPredictionTransformer(Of CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator)), CalibratedModelParametersBase(Of LinearBinaryModelParameters, PlattCalibrator))
- Наследование
Комментарии
Чтобы создать этот обучающее средство, используйте LbfgsLogisticRegression или LbfgsLogisticRegression(Options).
Входные и выходные столбцы
Входные данные столбца меток должны иметь тип Boolean. Входные признаки данных столбцов должны быть вектором известного Singleразмера .
Этот алгоритм обучения выводит следующие столбцы:
Имя выходного столбца | Тип столбца | Описание | |
---|---|---|---|
Score |
Single | Несвязанная оценка, вычисляемая моделью. | |
PredictedLabel |
Boolean | Прогнозируемая метка, зависящая от знака оценки. Отрицательная оценка соответствует значению false , а положительная — значению true . |
|
Probability |
Single | Вероятность, вычисляемая путем калибровки оценки истинности в качестве метки. Значение вероятности находится в диапазоне [0, 1]. |
Характеристики тренера
Задача машинного обучения | Двоичная классификация |
Требуется ли нормализация? | Да |
Требуется ли кэширование? | Нет |
Требуется NuGet в дополнение к Microsoft.ML | Нет |
Экспортируемый в ONNX | Да |
Функция оценки
Линейная логистическая регрессия — это вариант линейной модели. Он сопоставляет вектор признаков $\textbf{x} \in {\mathbb R}^n$ с скалярным с помощью $\hat{y}\left( \textbf{x} \right) = \textbf{w}^T \textbf{x} + b = \sum_{j=1}^n w_j x_j + b$, где $x_j$ является значением $j$-th компонента, $j$-th элемент $\textbf{w}$ является коэффициентом $j$-th компонента, и $b$ — это узнаваемая предвзятость. Соответствующая вероятность получения истинной метки : $\frac{1}{1 + e^{\hat{y}\left( \textbf{x} \right)}}$.
Сведения об алгоритме обучения
Реализованная методика оптимизации основана на ограниченной памяти метода Broyden-Fletcher-Goldfarb-Shanno (L-BFGS). L-BFGS — это квази-Ньютоновский метод , который заменяет затраты на затраты на вычисления гессийской матрицы приближением, но по-прежнему пользуется быстрой конвергенцией, как метод Ньютон , где вычисляется полная матрица Гессиана. Так как приближение L-BFGS использует только ограниченное количество исторических состояний для вычисления следующего направления шага, оно особенно подходит для проблем с вектором признаков с высокой размерности. Число исторических состояний является пользовательским параметром, использование большего числа может привести к лучшему приближению к матрице Hessian, но и к более высокой стоимости вычислений на шаг.
Регуляризация — это метод, который может привести к тому, что проблема может оказаться более острой, вводя ограничения, которые предоставляют информацию для дополнения данных и которая предотвращает переобучение путем наказания величины модели, как правило, измеряемой некоторыми нормными функциями. Такой подход позволяет улучшить обобщение модели, реализованное с помощью выбора оптимальной сложности в компромиссной частоте исключений. Регуляризация предполагает добавление штрафа, связанного со значениями коэффициентов, к погрешности гипотезы. К точной модели с предельными коэффициентами будет применен больший штраф. При этом для менее точной модели с более приемлемыми значениями штраф будет меньше.
Этот учащийся поддерживает упорядочение эластичной сети: линейное сочетание L1-норм (LASSO), $|| \textbf{w} || _1$, и L2-норм (ridge), $|| \textbf{w} || Регуляризация _2^2$ . Регуляризация норм L1 и L2-норм имеют различные эффекты и использование, которые являются взаимодополняющими в определенных отношениях. Использование L1-норм может увеличить разреженность обученного $\textbf{w}$. При работе с высокомерными данными он сокращает небольшие весовые коэффициенты неуместных признаков до 0, поэтому при создании прогнозов ресурсы не будут потрачены на эти плохие функции. Если используется нормализация норм L1, алгоритм обучения — OWL-QN. Нормализация норм L2 предпочтительнее для данных, которые не разрежены, и она в значительной степени наказывает существование больших весов.
Агрессивная регуляризация (т. е. присвоение больших коэффициентов терминам регуляризации L1-norm или L2-норм) может нанести ущерб прогнозной емкости за счет исключения важных переменных из модели. Поэтому при применении логистической регрессии важно выбирать правильные коэффициенты регуляризации.
Ссылки на примеры использования см. в разделе "См. также".
Поля
FeatureColumn |
Столбец признаков, который ожидает тренер. (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
LabelColumn |
Столбец метки, который ожидает тренер. Может иметь значение |
WeightColumn |
Столбец веса, который ожидает тренер. Может быть |
Свойства
Info |
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной логистической регрессии, обученной с помощью метода L-BFGS. (Унаследовано от LbfgsTrainerBase<TOptions,TTransformer,TModel>) |
Методы
Fit(IDataView, LinearModelParameters) |
Продолжает обучение LbfgsLogisticRegressionBinaryTrainer использования уже обученного |
Fit(IDataView) |
Тренирует и возвращает .ITransformer (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
GetOutputSchema(SchemaShape) |
Прогнозирование IEstimator<TTransformer> целевого объекта с помощью модели линейной логистической регрессии, обученной с помощью метода L-BFGS. (Унаследовано от TrainerEstimatorBase<TTransformer,TModel>) |
Методы расширения
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment) |
Добавьте "контрольную точку кэширования" в цепочку оценщика. Это гарантирует, что подчиненные оценщики будут обучены на основе кэшированных данных. Рекомендуется использовать контрольную точку кэширования перед обучением, которые принимают несколько данных. |
WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>) |
Учитывая оценщик, верните объект-оболочку, который будет вызывать делегат один раз Fit(IDataView) . Часто важно, чтобы оценщик возвращал сведения о том, что было положено, поэтому Fit(IDataView) метод возвращает специально типизированный объект, а не просто общий ITransformer. Однако в то же время часто IEstimator<TTransformer> формируются в конвейеры со многими объектами, поэтому нам может потребоваться создать цепочку оценщиков, где EstimatorChain<TLastTransformer> оценщик, для которого мы хотим получить преобразователь, похоронен где-то в этой цепочке. В этом сценарии мы можем подключить делегат, который будет вызываться после вызова соответствия. |
Применяется к
См. также раздел
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, String, String, String, Single, Single, Single, Int32, Boolean)
- LbfgsLogisticRegression(BinaryClassificationCatalog+BinaryClassificationTrainers, LbfgsLogisticRegressionBinaryTrainer+Options)
- LbfgsLogisticRegressionBinaryTrainer.Options