首页 > 解决方案 > MATLAB glmnet 中的逻辑回归参数有什么问题?

问题描述

我在 Macbook 上的 MATLAB 2019a 中使用glmnet进行逻辑回归。

算法:

对数(pi/(1-pi))=b0+X*b

pi=P(Y=2|X_i)=1-P(Y=1|X_i)

代码:

Y = [2;1;2;1;2;1;2;1;1;2]; 
X = [0.1451    0.1176    0.0872    0.0544    0.0197   -0.0164   -0.0533   -0.0907;
    0.5096    0.7240    0.9038    1.0515    1.1694    1.2599    1.3253    1.3681;
   -0.0593   -0.1683   -0.2738   -0.3754   -0.4730   -0.5660   -0.6543   -0.7376;
   -1.0128   -0.9539   -0.9004   -0.8522   -0.8089   -0.7701   -0.7355   -0.7047;
    0.7533    0.5640    0.4054    0.2752    0.1709    0.0900    0.0302   -0.0109;
    0.2014    0.2595    0.3070    0.3444    0.3724    0.3918    0.4032    0.4074;
    0.9174    0.8706    0.8260    0.7834    0.7423    0.7025    0.6636    0.6253;
    0.7643    0.6115    0.4789    0.3653    0.2693    0.1897    0.1252    0.0744;
   -0.3299   -0.5078   -0.6507   -0.7615   -0.8430   -0.8981   -0.9294   -0.9399;
   -0.2141   -0.1472   -0.0818   -0.0179    0.0443    0.1045    0.1626    0.2183];
lambda=0.5;
family='binomial';
options.weights        =            [];
options.alpha          =             1;
options.nlambda        =           100;
options.lambda_min     =             0;
options.lambda         =         lambda;
options.standardize    =         false;%true
options.thresh         =          1E-4;
options.dfmax          =             0;
options.pmax           =             0;
options.exclude        =            [];
options.penalty_factor =            [];
options.maxit          =           100;
options.HessianExact   =         false;
options.type           =       'naive';
fit = glmnet(X,Y,family,options);

结果:

a0        0
label     [1;2]
beta      [0;0;0;0;0;0;0;0]
dev       0
nulldev   13.8629
df        0
lambda    0.5000
npasses   1
jerr      0
dim       [8,1]
class     'lognet'

无论我如何更改输入和输出,该函数总是返回全为 0 的系数。我仔细选择了这些选项,所以我真的很困惑如何得出这个结果。

是因为我选的数据特殊还是参数不对?

标签: matlablogistic-regressionglmnet

解决方案


我刚刚发现问题出在哪里。这里的数据很小,因此lambda=0.5对其实施了过强的惩罚。

将 lambda 更改为小于 0.01 可以解决问题。另外,options.pmax = 0应该删除,否则它要求所有系数为0。


推荐阅读