问题标签 [glmnet]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
567 浏览

r - S3 和课程顺序

我一直无法理解有关如何调用 S3 方法的文档,这一次它让我反感。

我会为提出多个问题而预先道歉,但它们都是密切相关的。在一组复杂函数的核心深处,我创造了很多glmnet拟合,尤其是逻辑拟合。现在,glmnet文档将其返回值指定为具有“glmnet”和(用于逻辑回归)“lognet”两个类。实际上,这些都是按此顺序指定的。

但是,查看 的实现结束glmnet,就在调用(内部函数)lognet之后,将类设置fit为“lognet”,我在返回(变量)之前看到这行代码fit

由此,我得出结论,类的顺序实际上是“lognet”、“glmnet”。

不幸的是,我的健康状况(就像医生建议的那样):

问题在于为它分派 S3 方法的方式,特别是predict. 这是代码predict.lognet

我添加了一条评论来解释我的推理。现在,当我myfit使用新的数据矩阵mydata和对此进行预测时type="response",就像这样:

,根据文档,我没有得到预测的概率,而是得到线性组合,这正是predict.glmnet立即调用的结果。

我试过颠倒类的顺序,如下所示:

然后再次进行预测调用:你瞧:它起作用了!我确实得到了概率。

所以,这里有几个问题:

  1. 我是否“了解到”S3 方法是按类的出现顺序调度的?
  2. 我是否正确假设中的代码 glmnet会导致正确调度的错误顺序 predict
  3. 据我所知,在我的代码中,没有任何东西可以显式/可见地操作类。什么可能导致订单发生变化?

为了完整起见:这里有一些示例代码可以使用(就像我现在自己做的那样):

根据生成的数据,差异或多或少是明显的(在我的真实数据集中,我注意到所谓的概率中有负值,这就是我发现问题的方式),但你确实应该看到差异。

感谢您的任何意见。

编辑

我刚刚发现了一个可怕的事实:任何一个顺序都在 glmnet 1.5.2 中工作(它存在于我运行实际代码的服务器上,导致与类顺序相反),但是 1.6 中的代码需要顺序是“lognet”,“glmnet”。我还没有检查 1.7 中发生了什么。

感谢@Aaron 提醒我信息学的基础知识(除了“如果一切都失败了,重新启动”:“检查你的版本”)。我错误地认为统计学习之神提供的软件包可以免受此类错误的影响),并感谢@Gavin 确认我重建了 S3 的工作原理。

0 投票
1 回答
2118 浏览

r - 使用 glmnet 和 2 个类时,插入符号中的训练函数出错

以下代码块失败,我无法辨别。

出现以下错误:

如果我使用不同的模型,比如glm它运行良好。如果我使用 3 个类TrainClasses <- iris[,5],它也可以正常工作。

2 个类是如何唯一导致 glmnet 方法失败的?

这是 Windows 上的 R 版本 2.14.0,插入符号版本 5.09-006。同样的错误发生在我的 mac 和 linux 上。

0 投票
1 回答
72932 浏览

r - R glmnet:“(列表)对象不能被强制输入'double'”

我正在尝试glmnet在数据集上使用该包。我cv.glmnet()用来获取 的 lambda 值glmnet()。这是数据集和错误消息:

我排除了第 1、2、7、12 列,因为它们是:id 列、响应列、包含 NA 和包含 NA。任何建议都会很棒。

0 投票
3 回答
26223 浏览

r - R glmnet as.matrix() 错误信息

我正在尝试glmnet在数据集上使用该包。我cv.glmnet()用来获取 的 lambda 值glmnet()。我排除了第 1、2、7、12 列,因为它们是:id 列、响应列、包含 NA 和包含 NA。

这是数据集和错误消息:

有什么建议么?

0 投票
1 回答
981 浏览

r - 可以处理 NA 的 R 包/模型

我正在寻找可以处理 NA 的 R 包或机器学习模型/算法(如randomForestglmnetgbdt等),而不是忽略具有任何 NA 实例的行或列。我不想推卸责任。有什么建议么?

0 投票
1 回答
7081 浏览

r - 从 R glmnet 对象获取预测的类

我正在尝试使用 R 中的 glmnet 构建简单的多类逻辑回归模型。但是,当我尝试预测测试数据并获取列联表时,我得到了一个错误。下面复制了一个示例会话。

任何帮助将不胜感激。这里是菜鸟。

谢谢。

0 投票
2 回答
834 浏览

r - 在 Windows 中编译 glmnet 失败

由于 R 包 glmnet 没有为 windows 提供二进制文件,所以我必须在我的操作系统 win7 64bit 下编译它。我是如何收到此错误消息的:

我也尝试在 windows XP 32bit 下编译它,但出现“配置 glmnet 包失败”错误消息。

有人在 Windows 中成功编译 glmnet 吗?

0 投票
1 回答
6019 浏览

r - R glmnet family = 0-1 之外的二项式预测值

我试图在 R 中找到一个用于正则化逻辑回归的包,该包可以预测 0 - 1 之间的值。不过,我没有太多运气,尝试过这个lars包,现在又尝试了这个glmnet包。

下面是 glmnet 包参考手册中示例的代码,我不明白输出。

我不明白为什么输出不是全部在 0 - 1 范围内。

我在这里误解了什么吗?

任何人都可以推荐一个易于使用的正则化逻辑回归包吗?

谢谢。

0 投票
1 回答
8857 浏览

r - 在 R 中解释 glmnet 中的系数名称

我正在使用 glmnet 使用以下代码根据一组 5 个功能预测概率。我需要实际的公式,因为我需要在不同的(非 R)程序中使用它。

结果系数的名称有五个位置(我假设这是每个特征之一),每个位置都是 0 到 3 之间的数字(我假设这是多项式的次数)。但是我仍然对如何准确地重构公式感到困惑。

以这些为例:

我们将特征称为 A、B、C、D、E。这应该如何解释公式?

如果这不正确,我应该如何解释它?

我看到了以下问题和答案,但它没有解决这些类型的系数名称。

在此先感谢您的帮助。

0 投票
0 回答
365 浏览

r - glmnet/scikit 学习系数矩阵大小

在 scikit learn 中coef_,逻辑回归模型的系数是一个维度为 [n_classes-1, n_features] 的数组。

glmnet系数fit$beta不是一个类似的数组。

例如:

维度xMatrix- 63231 X 1223(训练样本数 X 特征数)

维度yMatrix- 63231 X 1(训练样本数 X 每个样本的预期输出值)。有45个不同的类别。所以输出是其中之一。

输出系数的维度(据我了解)= 1223 X 45(特征数 X 类数)

虽然我在 scikit learn 中做对了,但结果glmnet不同

这是我的glmnet代码:

为什么我得到 1223 X 86 而不是 1223 X 45?