我们正在考虑开始使用 kxen 在客户数据上构建逻辑回归模型。到目前为止,我们一直使用 SAS 和 R studio,我很难清楚地理解 Kxen 中使用的 K2R 包的逻辑。
Kxen - (beta, intercept)
1)如果我想在 sql 中构建评分函数,如何获得回归系数?
得到以下 sql 代码(附上部分代码):
SELECT $key, $target_variable, CAST( (CASE
WHEN $target_variable <= -1.32354053933e0 THEN 0.0e0
WHEN $target_variable <= -3.245405264555e-1 THEN 0.0e0
WHEN $target_variable <= -3.235405393301e-1 THEN ( 2.283134417281e-3*$target_variable+7.409696685844e-4 )
WHEN $target_variable <= -2.673812457267e-1 THEN ( 4.065409082516e-5*$target_variable+1.543635190092e-5 )
WHEN $target_variable <= -"2.673250302176e-1 THEN ( 4.057282329758e1*"$target_variable"+1.084841700789e1 )
..... [more code here]
ELSE 0.0e0
END) AS FLOAT )
AS PROBA0
into [table_name]
FROM
(
SELECT $key, ( 2.191922889118e-2 + CAST( (CASE
WHEN ( "predictor1" IS NULL OR "predictor1" = '' ) THEN -6.39011247354e-3
WHEN "predictor1" <= -2.432307283e0 THEN -1.541583426389e-1
WHEN "predictor1" <= 9.41313103e-1 THEN ( 9.932069236689e-2*"predictor1"+8.742010175092e-2 )
WHEN "predictor1" <= 1.696595422e0 THEN ( 4.169961790129e-2*"predictor1""+2.454336172985e-1 )
WHEN "predictor1" >= 1.696595402e0 THEN 3.16180997712e-1
ELSE -6.39011247354e-3
END) AS FLOAT)+
CAST( (CASE
WHEN ( "predictor2" IS NULL OR "predictor2" = '' ) THEN 3.937894402762e-3
WHEN "predictor2" <= -9.99550198e-1 THEN -2.797353866946e-2
WHEN "predictor2" <= -1.27770581e-1 THEN ( 2.918798485695e-2*"predictor2""+1.201317665409e-3 )
WHEN "predictor2" <= 3.78487285e-1 THEN ( 2.547969219572e-2*"predictor2"+6.997428207111e-3 )
...... [more code here]
) AS $target_varialbe FROM [table_name]
) TMPTABLE0
预测变量都是经过WOE变换后输入的,定义为连续变量。
2)当按分配的分数订购客户时,订单与按概率订购时不同 - 从分数到概率的ergo转换不是单调的函数吗?我的目标是为客户分配标准化分数/概率。
任何人都可以解释一下吗?