- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试使用 LASSO(通过删除类列)进行无监督的特征选择。数据集包括分类(因子)和连续(数字)变量。 Here is the link .我使用 model.matrix()
构建了一个设计矩阵它为分类变量的每个级别创建虚拟变量。
dataset <- read.xlsx("./hepatitis.data.xlsx", sheet = "hepatitis", na.strings = "")
names_df <- names(df)
formula_LASSO <- as.formula(paste("~ 0 +", paste(names_df, collapse = " + ")))
LASSO_df <- model.matrix(object = formula_LASSO, data = df, contrasts.arg = lapply(df[ ,sapply(df, is.factor)], contrasts, contrasts = FALSE ))
### Group LASSO using gglasso package
gglasso_group <- c(1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 15, 16, 17, 17)
fit <- gglasso(x = LASSO_df, y = y_k, group = gglasso_group, loss = "ls", intercept = FALSE, nlambda = 100)
# Cross validation
fit.cv <- cv.gglasso(x = LASSO_df, y = y_k, group = gglasso_group, nfolds = 10)
# Best lambda
best_lambda_fit.cv <- fit.cv$lambda.1se
# Final coefficients of variables
coefs = coef.gglasso(object = fit, s = best_lambda_fit.cv)
### Group LASSO with grpreg package
group_lasso <- grpreg(X = LASSO_df, y = y_k, group = gglasso_group, penalty = "grLasso")
plot(group_lasso)
cv_group_lasso <- cv.grpreg(X = LASSO_df, y = y_k, group = gglasso_group, penalty = "grLasso", se = "quick")
# Best lambda
best_lambda_group_lasso <- cv_group_lasso$lambda.min
coef_mat_group_lasso <- as.matrix(coef(cv_group_lasso))
coefs
和
coef_mat_group_lasso
,你会发现它们是不一样的。此外,最好的 lambda 值也不相同。我不确定选择哪一个进行特征选择。
grpreg()
中删除拦截的任何想法功能?
intercept = FALSE
不管用。
最佳答案
请引用gglasso paper和 grpreg paper .
不同的目标函数 .在 grpreg paper 的第 175 页上,作者执行了一个称为组标准化的步骤,该步骤通过将正交矩阵和非负对角矩阵右乘来对每个组内的特征矩阵进行归一化。在具有组标准化的组套索步骤之后,估计系数左乘相同的矩阵,以便我们获得原始线性模型的系数。然而,这样一来,群套索惩罚就与没有群标准化的惩罚不等价了。有关详细讨论,请参见第 175 页。
不同的算法 . grpreg
使用块坐标下降,而 gglasso
使用称为 groupwise-majorization-descent 的算法。当算法不同时,很自然地会看到小的数值差异。
关于r - 为什么 R 中的 grpreg 库和 gglasso 库对组 LASSO 给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60439187/
我试图将 javascript 数组从 jquery ajax 调用传递到 lasso 脚本,但在尝试在 lasso 脚本中访问它时,它返回空记录。 我确信我在代码中遗漏了一些东西,但无法弄清楚它是什
我想创建一个模型来描述我的数据行为。我尝试了简单线性回归、简单多项式回归和正则化和交叉验证的多项式回归。 我发现最后一种方法允许自动特征选择(带度数),我实际上需要它,因为简单的线性回归表现不佳。我关
这是我的代码。当我运行它时,山脊很好,但是对于套索,我收到错误消息: ConvergenceWarning: Objective did not converge. You might want to
我有一个非常大的数据集,其中包含 100 多个系数和数千个条目。因此,我想使用 Lasso 方法进行模型训练。 我目前正在研究以下 sci-kit 文档: Lasso LassoCV 虽然实现看起来很
我想一次选择多个标记,并通过绘制套索来选择标记,然后选择套索区域旁边的标记,但实际上我不知道该怎么做,而且我没有找到任何包或教程这样做我想知道是否有人可以帮助我,即使只是告诉我逻辑而不是完整的代码。
我正在尝试使用 LASSO 确定我的特征在分类中的重要性。但是,我找不到任何关于这样做的引用或指南。我知道 LASSO 主要适用于回归,但是,有什么方法或指南可以解决吗? 如果没有办法,有没有其他类似
我正在寻找在 scikit-learn 的 Lasso/LassoCV 中添加交互项。如果是两个连续变量之间或两个分类变量之间的交互作用,我可以添加与交互中每个元素的乘法相对应的列。但是当我们在分类变
我有这个套索回归代码,当我打印 beta 系数时,我得到许多组 beta 值,而不仅仅是一组。我没有为 lambda 指定任何值,但当我这样做时,我只得到一组 beta 值。我知道如何找到 lambd
我正在 sklearn 中进行回归项目,我在其中对各种数字和分类变量使用了 LASSO 回归。使用 One-hot-encoder 方法转换分类变量。 由于一开始对特征矩阵进行了归一化处理,所以最终L
我目前使用 sklearn.linear_model 模块实现了 Ridge 和 Lasso 回归。 但是,套索回归在同一数据集上的效果似乎差了 3 个数量级! 我不确定哪里出了问题,因为从数学上讲,
我想用 lasso 在 python 中执行多元线性回归。我不确定输入观察矩阵 X 是否可以包含分类变量。我从这里阅读了说明:lasso in python 但它很简单,并没有指明允许的类型。例如,我
glmnet 中有没有办法进行一阶交互? 例如,如果我的 X 矩阵是: V1 V2 V3 0 1 0 1 0 1 1 0 0 ... 有没有办法指定它在不手动创建列的情况下按照 `y
我正在尝试在网页上实现这种功能: 通过拖动鼠标选择正方形区域 选取所选区域中的所有元素 处理它们 => 所以我基本上想创建类似“photoshop 方形选择工具”的东西,它可以获取所选区域中的所有 H
我有大约 22 个数据预测变量 x_i,我想减少到一定数量以便最好地描述 y。基本问题...但是,我很不清楚如何使用 scikit 和 Linearmodel.lassoLars 来执行此任务。 从他
我正在尝试弄清楚如何在使用 RobustScalar 和 Lasso 后取消缩放数据(大概使用 inverse_transform)以进行预测。下面的数据只是一个例子。我的实际数据更大、更复杂,但我希
我认为下面的 Lasso 问题有简单的解决方案 [1,2,0,0] 因为 np.dot(x, [1,2,0,0]) 返回 [[5,7,6,8]]。 clf = linear_model.Lasso(a
我目前正在高维情况下用scikit试验Lasso。标签是 Y_i(实数),特征是 X_i(X_i 是大小为 d=112 的向量)。我只有三对 (Y_i,X_i)。 d>>n=3 所以我们处于高维情况。
我很想在 statsmodels 中使用线性 LASSO 回归,以便能够使用“公式”符号来编写模型,这将在处理许多分类变量及其交互时节省我相当多的编码时间。但是,它似乎还没有在统计模型中实现? 最佳答
在我重新发明轮子之前...... 我正在用 C# 编写代码,因此需要一个 .NET 解决方案。我想处理一个灰度图像,它可以被分解成多个区域,这些区域可以被定义为具有较低和较高的颜色阈值(或“暗度”)—
我想获得 LASSO 回归的置信区间。为此,我使用了 selective inference R 中的包。 此包中的 fixedLassoInf 函数为给定的 lambda 值提供套索回归的置信区间。
我是一名优秀的程序员,十分优秀!