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
函数用于定型多种不同类型的模型,以获得比单个模型更好的预测性能。
参数
公式
有效 Python 语法中的符号或数学公式,用双引号引起来。 符号公式可能引用数据源中的对象,例如 "creditScore ~ yearsEmploy"
。
目前不支持交叉条件 (creditScore * yearsEmploy
) 和表达式creditScore == 1
。
data
指定 .xdf 文件或数据帧对象的数据源对象或字符串。 此外,它还可以是一个数据源列表,指示应使用列表中的一个数据源训练每个模型。 在这种情况下,数据列表的长度必须等于 model_count。
训练程序
训练程序列表及其参数。 训练程序是使用 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
指定在训练之前要对数据执行的 MicrosoftML 转换的列表;如果不进行转换,则指定为“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 之间且income
变量的log
值大于 10 的观察值。
在处理任何数据转换之后执行行选择(请参阅参数 transforms
或 transform_func
)。 与所有表达式一样,row_selection
可以使用 expression
函数在函数调用之外定义。
转换
不受支持。 表示第一轮变量转换的窗体表达式。 与所有表达式一样,可以使用 expression
函数在函数调用之外定义 transforms
(或 row_selection
)。
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
,则改用具有父级 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
对象。