问题标签 [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.
r - S3 和课程顺序
我一直无法理解有关如何调用 S3 方法的文档,这一次它让我反感。
我会为提出多个问题而预先道歉,但它们都是密切相关的。在一组复杂函数的核心深处,我创造了很多glmnet
拟合,尤其是逻辑拟合。现在,glmnet
文档将其返回值指定为具有“glmnet”和(用于逻辑回归)“lognet”两个类。实际上,这些都是按此顺序指定的。
但是,查看 的实现结束glmnet
,就在调用(内部函数)lognet
之后,将类设置fit
为“lognet”,我在返回(变量)之前看到这行代码fit
:
由此,我得出结论,类的顺序实际上是“lognet”、“glmnet”。
不幸的是,我的健康状况(就像医生建议的那样):
问题在于为它分派 S3 方法的方式,特别是predict
. 这是代码predict.lognet
:
我添加了一条评论来解释我的推理。现在,当我myfit
使用新的数据矩阵mydata
和对此进行预测时type="response"
,就像这样:
,根据文档,我没有得到预测的概率,而是得到线性组合,这正是predict.glmnet
立即调用的结果。
我试过颠倒类的顺序,如下所示:
然后再次进行预测调用:你瞧:它起作用了!我确实得到了概率。
所以,这里有几个问题:
- 我是否“了解到”S3 方法是按类的出现顺序调度的?
- 我是否正确假设中的代码
glmnet
会导致正确调度的错误顺序predict
? - 据我所知,在我的代码中,没有任何东西可以显式/可见地操作类。什么可能导致订单发生变化?
为了完整起见:这里有一些示例代码可以使用(就像我现在自己做的那样):
根据生成的数据,差异或多或少是明显的(在我的真实数据集中,我注意到所谓的概率中有负值,这就是我发现问题的方式),但你确实应该看到差异。
感谢您的任何意见。
编辑:
我刚刚发现了一个可怕的事实:任何一个顺序都在 glmnet 1.5.2 中工作(它存在于我运行实际代码的服务器上,导致与类顺序相反),但是 1.6 中的代码需要顺序是“lognet”,“glmnet”。我还没有检查 1.7 中发生了什么。
感谢@Aaron 提醒我信息学的基础知识(除了“如果一切都失败了,重新启动”:“检查你的版本”)。我错误地认为统计学习之神提供的软件包可以免受此类错误的影响),并感谢@Gavin 确认我重建了 S3 的工作原理。
r - 使用 glmnet 和 2 个类时,插入符号中的训练函数出错
以下代码块失败,我无法辨别。
出现以下错误:
如果我使用不同的模型,比如glm
它运行良好。如果我使用 3 个类TrainClasses <- iris[,5]
,它也可以正常工作。
2 个类是如何唯一导致 glmnet 方法失败的?
这是 Windows 上的 R 版本 2.14.0,插入符号版本 5.09-006。同样的错误发生在我的 mac 和 linux 上。
r - R glmnet:“(列表)对象不能被强制输入'double'”
我正在尝试glmnet
在数据集上使用该包。我cv.glmnet()
用来获取 的 lambda 值glmnet()
。这是数据集和错误消息:
我排除了第 1、2、7、12 列,因为它们是:id 列、响应列、包含 NA 和包含 NA。任何建议都会很棒。
r - R glmnet as.matrix() 错误信息
我正在尝试glmnet
在数据集上使用该包。我cv.glmnet()
用来获取 的 lambda 值glmnet()
。我排除了第 1、2、7、12 列,因为它们是:id 列、响应列、包含 NA 和包含 NA。
这是数据集和错误消息:
有什么建议么?
r - 可以处理 NA 的 R 包/模型
我正在寻找可以处理 NA 的 R 包或机器学习模型/算法(如randomForest
、glmnet
、gbdt
等),而不是忽略具有任何 NA 实例的行或列。我不想推卸责任。有什么建议么?
r - 从 R glmnet 对象获取预测的类
我正在尝试使用 R 中的 glmnet 构建简单的多类逻辑回归模型。但是,当我尝试预测测试数据并获取列联表时,我得到了一个错误。下面复制了一个示例会话。
任何帮助将不胜感激。这里是菜鸟。
谢谢。
r - 在 Windows 中编译 glmnet 失败
由于 R 包 glmnet 没有为 windows 提供二进制文件,所以我必须在我的操作系统 win7 64bit 下编译它。我是如何收到此错误消息的:
我也尝试在 windows XP 32bit 下编译它,但出现“配置 glmnet 包失败”错误消息。
有人在 Windows 中成功编译 glmnet 吗?
r - R glmnet family = 0-1 之外的二项式预测值
我试图在 R 中找到一个用于正则化逻辑回归的包,该包可以预测 0 - 1 之间的值。不过,我没有太多运气,尝试过这个lars
包,现在又尝试了这个glmnet
包。
下面是 glmnet 包参考手册中示例的代码,我不明白输出。
我不明白为什么输出不是全部在 0 - 1 范围内。
我在这里误解了什么吗?
任何人都可以推荐一个易于使用的正则化逻辑回归包吗?
谢谢。
r - 在 R 中解释 glmnet 中的系数名称
我正在使用 glmnet 使用以下代码根据一组 5 个功能预测概率。我需要实际的公式,因为我需要在不同的(非 R)程序中使用它。
结果系数的名称有五个位置(我假设这是每个特征之一),每个位置都是 0 到 3 之间的数字(我假设这是多项式的次数)。但是我仍然对如何准确地重构公式感到困惑。
以这些为例:
我们将特征称为 A、B、C、D、E。这应该如何解释公式?
如果这不正确,我应该如何解释它?
我看到了以下问题和答案,但它没有解决这些类型的系数名称。
在此先感谢您的帮助。
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?