问题标签 [lasso-regression]
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 - lambda.1se 不在错误的一个标准错误中
在函数的文档中cv.glmnet()
,给出了:
lambda.1se :
lambda 的最大值,使得误差在最小值的 1 个标准误差之内。
这意味着lambda.1se
给出lambda
,它给出一个误差 ( cvm
),它与最小误差相差一个标准误差。
因此,在尝试检查这个事实时:库中
有一个数据集。我使用套索执行了交叉验证:Boston
MASS
的值cv.lasso$lambda.min
是:
并且, 的值为cv.lasso$lambda.1se
:
现在,看看这个:
Wherestd
是一个函数,它返回插入其中的值的标准错误。1
的最小值cvm
可以找到:
因此,我们将标准误差添加到 的值中cvm
,我们得到:
虽然没有lambda
对应这个cvm
值的值,但是我们可以根据已有的数据有个思路:
这意味着lambda.1se
应该在 0.4784899 和 0.4359821 之间。但事实并非如此。所以,有一种直觉说我在这里犯了一个错误。你能帮我指出这一点吗?
1:定义std
:
python - 为什么不同的初始点会导致套索优化(凸)的不同结果?
我正在尝试对具有 950 个样本和大约 5000 个特征的数据使用套索优化。套索函数是 $(1 / (2 * numberofsamples)) * ||y - Xw||^2_2 + alpha * ||w||_1$。一旦我尝试通过初始化进行最小化,我会得到完全不同的 w这很奇怪,因为套索是凸的,初始化不应该影响结果。这是有和没有初始化的套索的结果。tol 是公差。如果 w 的变化低于公差,则收敛已经发生。
对于实现,我使用了 python 包 sklearn.linear_model 的 lasso 函数。我也更改了数据,但新数据的结果也会随着初始化而改变。我认为这很奇怪,但我无法分析并找到解释。
这是我的代码的一部分,它与套索有关。我的数据是基因表达。我在规范化和非规范化数据上测试代码。对他们两人来说,最初的观点有所不同。
这也是我的整个代码:
python - 使用 Lasso 进行非线性回归 (Python)
我有一组独立的数据点 X 和一组相关的点 Y,我想找到以下形式的模型:
(a 0 +a 1 *x 1 +a 2 *x 2 +...+a m x m ) (a m+1 *x m+1 +a m+2 *x m+2 )
我知道我可以使用 scipy 的curve_fit,但为了避免过度拟合,我想将 Lasso 用于线性部分(即第一组括号中的部分)。
在 Python 中有没有一种简单的方法可以做到这一点?
python - 在 sklearn 中访问从 ElasticNetCV 获得的正则化路径
我想得到这些图: http ://scikit-learn.org/stable/auto_examples/linear_model/plot_lasso_coordinate_descent_path.html
来自我已经训练过的弹性网。这个例子确实
这基本上需要从X,y
整个模型中重新计算。不幸的是,我没有X,y
.
在我使用的训练sklearn.linear_model.ElasticNetCV
中返回:
而我需要改变 l1_ratio 和 alpha 的参数向量。
这可以在不重新计算的情况下完成吗?这将是极大的浪费时间,因为这些 coef_paths 实际上已经计算过了
r - 在 R 中将 LASSO 与分类变量一起使用
我有一个包含 1000 个观察值和 76 个变量的数据集,其中大约 20 个是分类变量。我想在整个数据集上使用 LASSO。我知道通过 lars 或 glmnet 在 LASSO 中使用因子变量并不能真正起作用,但是变量太多了,并且它们可以采用太多不同的无序值来合理地对它们进行数字重新编码。
在这种情况下可以使用 LASSO 吗?我该怎么做呢?创建预测变量矩阵会产生以下响应:
我意识到其他方法可能更容易或更合适,但挑战实际上是使用 lars 或 glmnet 来做到这一点,所以如果可能的话,我将不胜感激任何想法或反馈。
谢谢,
r - 具有非唯一解决方案的 glmnet 行为
我正在使用 R 包glmnet在具有大约 60'000 个二进制预测变量的二进制响应上拟合套索 logit 模型(alpha=1)。
根据http://www.stat.cmu.edu/~ryantibs/papers/lassounique.pdf中的结果,该解决方案不应该是唯一的,但是,通过glmnet和cv.glmnet的估计结果都很好,没有问题。
所以我想知道glmnet如何处理非唯一解决方案。它是否计算无限线性预测变量之一(因为即使使用非唯一解也是唯一的)并将其作为解返回?
r - 使用 glmnet 预测数据集中的连续变量
我有这个数据集。 体重
我想使用 R 包 glmnet 来确定哪些预测器可用于预测生育能力。但是,我一直无法这样做,很可能是由于对包没有完全了解。生育力变量是 SP.DYN.TFRT.IN。我想看看数据集中的哪些预测因子对生育能力的预测能力最强。我想使用 LASSO 或岭回归来缩小系数的数量,我知道这个包可以做到这一点。我只是在实施它时遇到了一些麻烦。
我知道没有我为之道歉的代码片段,但我对如何编写代码感到很迷茫。
任何建议表示赞赏。
感谢您阅读
r - 保持一个参数固定并在插入符号中随机搜索
我想将参数 alpha 固定在 1 并使用随机搜索 lambda,这可能吗?
r - 我的理解:CV.GLMNET 如何选择最佳 lambda?
我希望确认我对glmnet
包中的 CV 程序的理解,以便向我的论文的审稿人解释。如果有人可以添加信息以进一步澄清答案,我将不胜感激。
具体来说,我遇到了一个包含 29 个输入变量和 106 行的二元分类问题。我没有拆分成训练/测试数据(并进一步减少训练数据),而是使用 lasso 通过交叉验证选择 lambda 作为最小化过度拟合的一种手段。在用我训练模型后,cv.glmnet
我在同一数据集上测试了它的分类准确度(自举 x 10000 错误间隔)。我承认在这种情况下无法消除过度拟合,但是通过交叉验证选择的惩罚项 lasso 会减轻其影响。
我对审稿人(和我一样是医生)的解释cv.glmnet
是:
在 10 折交叉验证的每个步骤中,数据被随机分为两组,其中 9/10 的数据用于训练,1/10 的数据用于内部验证(即测量使用该 lambda 开发的模型的二项式偏差/误差)。绘制了 Lambda 与偏差。当该过程再重复 9 次时,得出 lambda 与偏差的 95% 置信区间。进入模型的最终 lambda 值是在高 lambda 和低偏差之间做出最佳折衷的值。高 lambda 是最小化过度拟合的因素,因为不允许通过为变量分配大系数来改进回归模型。然后使用最小二乘逼近在整个数据集上训练模型,该逼近最小化由 lambda 项惩罚的模型误差。
我怀疑我的解释可以大大改进,或者阅读本文的专家指出的方法中的缺陷。提前致谢。
python - 套索回归预测忽略索引
我正在同一数据集上构建岭回归和套索回归,但是套索模型的预测形状似乎与岭不同。如果有人能解释我做错了什么,我将不胜感激......