microsoftml.rx_ensemble: объединение моделей в одну
Использование
microsoftml.rx_ensemble(formula: str,
data: [<class 'revoscalepy.datasource.RxDataSource.RxDataSource'>,
<class 'pandas.core.frame.DataFrame'>, <class 'list'>],
trainers: typing.List[microsoftml.modules.base_learner.BaseLearner],
method: str = None, model_count: int = None,
random_seed: int = None, replace: bool = False,
samp_rate: float = None, combine_method: ['Average', 'Median',
'Vote'] = 'Median', max_calibration: int = 100000,
split_data: bool = False, ml_transforms: list = None,
ml_transform_vars: list = None, row_selection: str = None,
transforms: dict = None, transform_objects: dict = None,
transform_function: str = None,
transform_variables: list = None,
transform_packages: list = None,
transform_environment: dict = None, blocks_per_read: int = None,
report_progress: int = None, verbose: int = 1,
compute_context: revoscalepy.computecontext.RxComputeContext.RxComputeContext = None)
Описание
Обучение ансамбля моделей.
Сведения
rx_ensemble
— это функция, которая обучает несколько моделей различных типов, чтобы получить лучшую прогнозную производительность по сравнению с одной моделью.
Аргументы
formula
Символьная или математическая формула в допустимом синтаксисе Python, заключенная в двойные кавычки. Символьная формула может ссылаться на объекты в источнике данных, например "creditScore ~ yearsEmploy"
.
Члены взаимодействия (creditScore * yearsEmploy
) и выражения creditScore == 1
сейчас не поддерживаются.
.
Объект источника данных или символьная строка, указывающая файл .xdf или объект кадра данных. Кроме того, это может быть список источников данных, указывающий, что каждая модель должна быть обучена с помощью одного из источников данных в списке. В этом случае длина списка данных должна быть равна model_count.
trainers
Список модулей обучения с их аргументами. Модули обучения создаются с помощью FastTrees
, FastForest
, FastLinear
, LogisticRegression
, NeuralNetwork
или OneClassSvm
.
method
Символьная строка, указывающая тип совокупности: "anomaly"
для обнаружения аномалий, "binary"
для двоичной классификации, multiClass
для многоклассовой классификации или "regression"
для регрессии.
random_seed
Задает случайное начальное значение. Значение по умолчанию — None
.
model_count
Указывает число моделей для обучения. Если это число превышает длину списка модулей обучения, список модулей обучения дублируется для соответствия model_count
.
replace
Логическое значение, указывающее, следует ли выполнять выборку наблюдений с заменой или без нее. Значение по умолчанию — False
.
samp_rate
Скаляр положительного значения, указывающий процент наблюдений, выборку которого необходимо сделать для каждого модуля обучения. Значение по умолчанию — 1.0
соответствует выборке с заменой (т. е. replace=True
), а значение 0.632
соответствует выборке без замены (т. е. replace=False
). Если split_data
имеет значение True
,то для samp_rate
используется значение по умолчанию 1.0
(выборка перед разделением не выполняется).
split_data
Логическое значение, указывающее, следует ли обучить базовые модели для неперекрывающихся секций.
Значение по умолчанию — False
. Оно доступно только для контекста вычислений RxSpark
и игнорируется для других.
combine_method
Задает метод, используемый для объединения моделей:
"Median"
: вычисление медианы для выходных данных отдельных моделей;"Average"
: вычисление среднего для выходных данных отдельных моделей; и"Vote"
: для вычисления (pos-neg) / общего числа моделей, где pos — это число положительных выходных данных, а «neg» — количество отрицательных выходных данных.
max_calibration
Задает максимальное число примеров, используемых для калибровки. Этот аргумент игнорируется для всех задач, кроме двоичной классификации.
ml_transforms
Указывает список преобразований Машинного обучения Майкрософт, которые необходимо выполнить с данными до обучения, или значение None, если преобразования не нужно выполнять. Преобразования, требующие дополнительной передачи данных (например, featurize_text
или categorical
) не допускаются.
Эти преобразования выполняются после любых заданных преобразований R.
Значение по умолчанию — None.
ml_transform_vars
Указывает символьный вектор имен переменных, используемых в ml_transforms, или значение None, если их не нужно использовать. Значение по умолчанию — None.
row_selection
НЕ ПОДДЕРЖИВАЕТСЯ. Указывает записи (наблюдения) из набора данных, которые будут использоваться моделью с именем логической переменной из набора данных (в кавычках) или логическим выражением с указанием переменных в наборе данных. Пример:
rowSelection = "old"
будет использовать только те наблюдения, в которых значение переменнойold
равноTrue
.rowSelection = (age > 20) & (age < 65) & (log(income) > 10)
использует только те наблюдения, в которых значение переменнойage
находится в диапазоне от 20 до 65, а значениеlog
переменнойincome
больше 10.
Выбор записей осуществляется после обработки всех преобразований данных (см. аргументы transforms
или transform_func
). Как и со всеми выражениями, row_selection
можно определить за пределами вызова функции с помощью функции expression
.
преобразования
НЕ ПОДДЕРЖИВАЕТСЯ. Выражение формы, представляющее первый круг преобразования переменных. Как и со всеми выражениями, transforms
(или row_selection
) можно определить за пределами вызова функции с помощью функции expression
.
transform_objects
НЕ ПОДДЕРЖИВАЕТСЯ. Именованный список с объектами, на которые можно ссылаться с помощью transforms
, transform_function
и row_selection
.
transform_function
Функция преобразования переменной.
transform_variables
Символьный вектор для переменных входного набора данных, требуемый для функции преобразования.
transform_packages
НЕ ПОДДЕРЖИВАЕТСЯ. Символьный вектор, определяющий дополнительные пакеты Python (за исключением пакетов, указанных в RxOptions.get_option("transform_packages")
), которые будут доступны и предварительно загружены для использования в функциях преобразования переменных.
Например, явно определенные в функциях revoscalepy через свои аргументы transforms
и transform_function
или неявно определенные через свои аргументы formula
или row_selection
. Аргумент transform_packages
также может иметь значение None, указывающее на то, что пакеты, указанные за пределами RxOptions.get_option("transform_packages")
, не будут предварительно загружаться.
transform_environment
НЕ ПОДДЕРЖИВАЕТСЯ. Определяемая пользователем среда, выступающая в роли родительской среды для всех разработанных внутренних сред и используемая для преобразования данных переменных.
Если указано значение transform_environment = None
, используется новая среда hash с родительской средой revoscalepy.baseenv
.
blocks_per_read
Указывает количество считываемых блоков для каждого фрагмента данных, считываемого из источника данных.
report_progress
Целочисленное значение, указывающее уровень информирования по ходу обработки строки:
0
— информирование не осуществляется.1
— выводится и обновляется число обработанных записей.2
— выводятся данные об обработанных записях и времени обработки.3
— выводятся данные об обработанных записях и все данные о времени обработки.
verbose
Целочисленное значение, указывающее требуемый объем выходных данных.
Если задано значение 0
, при вычислениях подробные выходные данные не выводятся. Целочисленные значения из диапазона от 1
до 4
позволяют увеличить объем информации.
compute_context
Задает контекст, в котором выполняются вычисления. Указывается с помощью допустимого значения revoscalepy.RxComputeContext
.
Сейчас поддерживаются локальные контексты и контексты вычислений revoscalepy.RxSpark. Если указан контекст revoscalepy.RxSpark, обучение моделей выполняется распределенным образом, а объединение выполняется локально. Обратите внимание, что контекст вычислений не может быть неожидающим.
Возвращаемое значение
Объект rx_ensemble
с обученной объединенной моделью.