2012-06-15 42 views
0

我已经在SSAS中训练了一个简单的逻辑回归模型,使用Gender和NIC作为离散输入节点(NIC为非吸烟者为1,1对于吸烟者)以Score(0-100)作为连续输出节点。鉴于在SSAS中计算的逻辑回归系数,创建一个计算连续输出值的公式

我想基于性别和NIC的新参与者的值来预测分数。当然,我可以在DMX中运行一个单例查询;例如,下面的产生49.51的值....

SELECT Predict(Score) 
    FROM [MyModel] 
    NATURAL PREDICTION JOIN 
    (SELECT 'M' AS Gender, '1' AS NIC) as t 

但是,而不是使用DMX,我想以从SSAS计算分数,而“断开”来创建从模型。

调查模型,我在输出节点的NODE_DISTRIBUTION的以下信息:

ATTRIBUTE_NAME ATTRIBUTE_VALUE SUPPORT PROBABILITY VARIANCE  VALUETYPE 
    Gender:F   0.459923854  0  0    0    7 (Coefficient) 
    Gender:M   0.273306289  0  0    0    7 (Coefficient) 
    Nic:0   -0.282281195  0  0    0    7 (Coefficient) 
    Nic:1   -0.802106901  0  0    0    7 (Coefficient) 
        0.013983007  0  0    0.647513829 7 (Coefficient) 
    Score   75.03691517  0  0    0    3 (Continuous 

封堵这些系数到逻辑回归式 - ,我正在从上传作为新的用户不允许: ) - 以上的吸烟男性例如,

f(...) = 1/(1 + exp(0 - (0.0139830071136734 -- Constant(?) 
    + 0 * 0.459923853918008      -- Gender:F = 0 
    + 1 * 0.273306289390897      -- Gender:M = 1 
    + 1 * -0.802106900621717      -- Nic:1 = 1 
    + 0 * -0.282281195489355)))     -- Nic:0 = 0 

导致的0.374的值....但我怎么“地图”,这个值回0-100的分数分布?换句话说,如何扩展上面的公式以产生与DMX单例查询相同的值?我假设它将需要我的分数分布的stdev和平均值,但我坚持如何使用这些值。我也不确定我是否正确使用第五行的ATTRIBUTE_VALUE作为常量。

任何帮助,您可以提供将不胜感激!

回答

1

我不是专家,但听起来我并不想使用逻辑回归。你想训练一个线性回归。您目前有逻辑回归模型,这些模型通常用于二进制分类,而不是连续值,即0-100。

How to do linear regression in SAS

Wikipedia: linear regression

更多的细节:这个问题实际上取决于,最喜欢的数据挖掘/机器性学习的问题,您的数据。如果你的数据是双峰的,超过90%的训练集非常接近1或100,那么可以使用逻辑回归。 Logistic回归中使用的公式专门用于呈现YES/NO答案。它在技术上是一个连续函数,因此0.34等结果是可能的,但它们在统计上不太可能(在典型的使用情况下,您将舍入为0)。然而,如果你的数据是正态分布的(大多数是自然的),更好的方法是线性回归。唯一的问题是它可以预测范围0-100之外,如果给出一个特别糟糕的数据点。在这种情况下,您最好舍入四舍五入(将结果剪裁为0-100)或忽略数据点作为异常值。 在性别的情况下,快速入侵将映射男性为0,女性为1,然后将性别视为模型的输入。

SSAS linear regression

+0

感谢哈利,我故意做了一个非常简单的例子,以便我能够解决问题。我实际上坚持使用logistic回归模型,但至少在SSAS中,它似乎支持连续值作为输出,如果我理解: ,优点是公式将输出限制在0-1范围内。 [Logistic Regression](http://msdn.microsoft.com/en-us/library/cc645904) – hbeam

+0

是的,但是使用的S曲线专门用于渲染0或1(从技术上讲,它是连续的,因为数学属性,但只是缩放这个模型的结果可能不是你想要的)。在大多数情况下,如果你没有进行YES/NO分类,你可能需要线性回归。问题在于它是否预测范围在1-100之外。您必须通过将这些实例归类为异常值或在软件中舍入(舍入为100或最多1)来解决此问题。 –

0

你不想使用logistic回归,如果你正在试图限制在区间[0,100]的得分模型中。 Logistic回归用于基于二项分布对二进制数据或比例进行建模。假设logit链接函数实际上用Logistic回归进行建模是一个概率函数(可能性的对数),因此整个过程适合给出在区间[0,1]中的值。试图用它来映射到分数似乎根本不是正确的分析类型。

另外,我不明白常规线性回归将如何帮助您,因为您的拟合模型将能够在目标区间之外生成值的方式[0,100],并且如果您不得不对特定值执行特殊截断那么你真的可以确定你的数据有什么有效的含义吗?

我希望能够指出您需要的分析类型,但我没有遇到过这种类型的分析。我对你的建议是放弃逻辑回归方法,考虑加入由专业统计人员和数学家使用的ALLSTAT邮件列表,并在那里寻求建议。或类似的东西。