使用此存储过程可同步或异步构建 GLM 模型。
权限
此语句的授权标识所拥有的特权必须包括 IDAX_USER 角色。
语法
IDAX.GLM(in parameter_string varchar(32672), in synchronous boolean default true)
参数描述
- parameter_string
- 必需的单字符串参数,其中包含以逗号分隔的 <parameter>=<value> 条目对。
- 数据类型:VARCHAR(32672)
- 以下列表显示参数值:
-
- model
- 必需。
- 要构建的广义线性模型的名称。
- 数据类型:VARCHAR(64)
- intable
- 必需。
- 输入表的名称。
- 数据类型:VARCHAR(128)
- id
- 必需。
- 输入表的列,用于指示唯一实例标识。
- 数据类型:VARCHAR(128)
- target
- 要预测值的输入表列的列名。
- 仅接受数字目标列。
- 数据类型:NVARCHAR(128)
- incolumn
- 可选。
- 输入表的列,具有以分号 (;) 分隔的特定属性。
- 每个列都后跟下列一个或多个属性:
- 名义类型 (:nom) 或连续类型 (:cont)。缺省情况下,数字类型是连续类型,所有其他类型都是名义类型。
- 角色“:id”、“:target”、“:input”或“:ignore”。
- 如果未指定此参数,那么输入表的所有列都具有缺省属性。
- 缺省值:无
- 数据类型:VARCHAR(ANY)
- coldeftype
- 可选。
- 输入表列的缺省类型。
- 允许的值为“nom”和“cont”。
- 如果未指定此参数,那么所有数字列都是连续列,而所有其他列都是名义列。
- 缺省值:无
- 数据类型:VARCHAR(ANY)
- coldefrole
- 可选。
- 输入表列的缺省角色。
- 允许的值为“input”和“ignore”。
- 如果未指定此参数,那么所有列都是输入列。
- 缺省值:input
- 数据类型:VARCHAR(ANY)
- intercept
- 可选。
- 一个标志,指示是否使用截距值来构建模型。
- 允许的值为“true”和“false”。
- 缺省值:true
- 数据类型:VARCHAR(ANY)
- effect
- 可选。
- 输入列之间允许的效应或交互的定义。
- 效应或交互是以分号 (;) 分隔的一列因子或协变量。分类列用作模型中的因子;连续字段用作协变量。
- 缺省情况下,所有输入列都彼此独立。相互之间不会进行交互。
- 您可以使用星号 (*) 将因子和协变量组合到一起,并为模型构建嵌套项。对于值不会与另一因子的层次进行交互的因子或协变量,您可使用嵌套项为它们的效应进行建模。例如,杂货连锁店可能会在多个商店位置关注其客户的消费习惯。因为每位客户通常只光顾其中一个商店位置,所以可以认为客户效应嵌套在商店位置效果内。
- 此外,还可以包括交互效应,例如涉及同一个协变量的多项式项,或者向嵌套项添加多层嵌套。
- 嵌套项存在下列限制:
- 在交互中,所有因子都必须是唯一的。因此,如果 A 是因子,那么指定 A*A 无效。
- 在嵌套效应中,所有因子都必须是唯一的。因此,如果 A 是因子,那么指定 A(A) 无效。
- 在协变量中不能嵌套任何效应。因此,如果 A 是因子,X 是协变量,那么指定 A(X) 无效。
- 缺省值:c1; c2; c3; ... cn
- 其中,c1、c2、c3、... cn 是输入列。
- 数据类型:VARCHAR(ANY)
- family
- 可选。
- 分布类型。
- 允许的值为 bernoulli、gaussian、poisson、binomial、negativebinomial、wald (inversegaussian) 和 gamma。
- 缺省值:bernoulli
- 数据类型:VARCHAR(ANY)
- link
- 可选。
- 关联函数的类型。
- 允许的值为“clog”、“cloglog”、“gaussit”、“identity”、“log”、“logit”、“oddspower”、“power”、“probit”和“sqrt”。
- 缺省值:logit
- 数据类型:VARCHAR(ANY)
- link_param
- 可选。
- 额外参数,用于关联“oddspower”和“power”。
- 值的范围取决于所使用的关联函数。
- 缺省值:1
- 数据类型:DOUBLE
- maxit
- 可选。
- 最大迭代次数。
- 缺省值:20
- 数据类型:INTEGER
- tol
- 可选。
- 将一个值视为等于 0 时,线性方程解算器的容差。
- 缺省值:1e-7
- 数据类型:DOUBLE
- trials
- 输入表的列,其中包含二项分布试验次数。
- 当 family 参数的值为 binomial 时,此参数为必需。
- 对于其他分布,将会忽略此参数。
- 缺省值:''
- 数据类型:VARCHAR(ANY)
- spark_partitions
- 可选。
- 使用输入数据创建的 Spark 分区数。
- 此数字确定创建模型时采用的并行度。
-
注: 如果每个分区的行数太小,那么生成的模型可能不精确。对于小型输入数据集,即使是缺省值也可能太大。因此,请显式设置较小的值。
- 缺省值:可用 CPU 数除以 2。
- 数据类型:INTEGER
- synchronous
- 可选。
- 同步或异步执行 GLM 存储过程。
- 在同步执行中,GLM 存储过程将会等待执行完成。在异步执行中,GLM 过程将在提交后立即返回。
- 要获取异步执行的 GLM 存储过程的状态和提交标识,请在启动 GLM 存储过程后调用 IDAX.APP_STATUS() 存储过程。
- 要取消异步执行的 GLM 存储过程,请在 GLM 存储过程运行期间调用 IDAX.CANCEL_APP() 存储过程。
- 缺省值:true
示例
CALL IDAX.GLM('model=adult_mdl, intable=adult_train, id=id, target=age, link=identity, family=gaussian');