【问题标题】:Understanding format of lrm coefficients in R for ordinal/multiclass regression了解 R 中用于序数/多类回归的 lrm 系数格式
【发布时间】:2018-08-03 18:06:42
【问题描述】:

我正在尝试从头开始在 python 中实现其中一个 R 代码,它涉及逻辑回归。

据我了解逻辑回归,(同时使用梯度下降执行一对多)我认为如果有 F 个特征和 L 个标签,那么我们就有 M x F 个系数。基本上我们为每个 M 个标签有 F 个不同的向量,然后计算输入输入 X 的 sigmoid 函数,并且哪个向量给出最大值就是预测的类。

R中的逻辑回归函数:

try_lrm<-function(datadf, tol=1e-10, maxit=1e6){
  try({ lrm(y~x, data=datadf, penalty=0, x=TRUE, y=TRUE, tol=tol, maxit=maxit) })
}

但是对于以下数据框的序数回归:

    x       y
24.03673    2   
14.63598    2  
26.85079    2  
53.45076    1  
36.8322     1  
42.10773    1  
39.68833    1    
104.64827   0  
114.97038   0   
60.8128     0   
59.67947    0   

我得到以下系数:

      y>=1       y>=2       x 
131.440196  75.784904  -2.324528 

当我试图从头开始实现所有内容时,我正在尝试使用梯度下降。

那么这应该如何解释呢?我想弄清楚 sigmoid 函数应该是什么样子,但我不确定为什么当我期望每个类都有一个 x 系数时,为什么只有一个 x 系数。那些拦截是什么。

是不是说sigmoid函数长这样:

(让我们将系数称为 k0,k1,k2,我得到 x,y>=1 和 y>=2)

对于 y = 0,
p = 1/(1+e^-(k0 * x))

对于 y = 1,
p = 1/(1+e^-(k0 * x + k1))

对于 y = 2,
p = 1/(1+e^-(k0 * x + k1 + k2))

并预测最大 p 类?

【问题讨论】:

    标签: r logistic-regression ordinal


    【解决方案1】:

    这似乎主要是一个统计问题 - 您的 R 代码没有任何明显错误。正如报告的那样,您应该只有一个 x 系数。有关 R 中的序数逻辑回归示例,请参阅https://stats.idre.ucla.edu/r/dae/ordinal-logistic-regression/。它使用的包与您尝试使用的包不同,但它会遍历统计数据和 R 代码。

    【讨论】:

    • 我在上面。你能简单解释一下 y>=1 和 y>=2 值的含义吗?
    猜你喜欢
    • 2017-10-04
    • 2013-05-17
    • 2021-05-25
    • 2013-12-12
    • 1970-01-01
    • 2019-01-04
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多