Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >预测cv.glmnet为每一行r提供相同的值

预测cv.glmnet为每一行r提供相同的值
EN

Stack Overflow用户
提问于 2020-02-27 13:48:24
回答 2查看 372关注 0票数 3

我在一个基因型的二进制数据集上使用cv.glmnet来预测一个连续变量的表型。数据看起来像这样,但有>200个基因:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
       Pheno K00074 K00100 K00179 K00180
1  18.063630      0      0      0      0
2  16.746644      0      0      0      0
3  16.016194      1      0      0      0
4  -1.469207      1      1      0      0
5  -3.047956      1      0      1      1
6  15.274531      1      0      0      0 

我的cv.glmnetpredict代码如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cv.lasso <- cv.glmnet(x = as.matrix(zx), y = unlist(zy), alpha = 1,
                      type.measure = 'mse',keep = TRUE) # runs the model
    
prediction<-predict(cv.lasso,s = cv.lasso$lambda.1se,
                    newx = as.matrix(batch1218.kegg[,-1]),type = 'class')

其中zx是基因存在/缺失的二元列,zy是表型列。batch1218.kegg是一组新的基因型数据,我想用它来预测表型。我的预测最终是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
         1
1 6.438563
2 6.438563
3 6.438563
4 6.438563
5 6.438563
6 6.438563

其中每一行的所有数字都是相同的。我在其他表型上也得到了同样的结果。我认为问题可能是我只处理了大约38行表型数据,而不是大量的预测变量。但想看看是不是还有我要处理的问题。

EN

回答 2

Stack Overflow用户

发布于 2020-10-09 02:31:45

当您选择的lambda错误时,通常会发生这种情况。试试"lambda.min“吧

票数 1
EN

Stack Overflow用户

发布于 2020-11-07 13:51:50

下面是使用示例数据集重现错误的示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
library(glmnet)

data = data.frame(Pheno=rnorm(200),K00074=rbinom(200,1,0.5),
K00100=rbinom(200,1,0.5),K00179=rbinom(200,1,0.5),K00180=rbinom(200,1,0.5))

zx = data[1:100,-1]
zy = data$Pheno[1:100]

batch1218.kegg = data[101:200,]

cv.lasso <- cv.glmnet(x = as.matrix(zx), y = unlist(zy), alpha = 1,
                      type.measure = 'mse',keep = TRUE) # runs the model

prediction<-predict(cv.lasso,s = cv.lasso$lambda.1se,
                    newx = as.matrix(batch1218.kegg[,-1]),type = 'class')

head(prediction)
             1
101 0.07435786
102 0.07435786
103 0.07435786
104 0.07435786
105 0.07435786
106 0.07435786

你的因变量是连续的,即这是回归,类型不应该是'class',但在任何情况下,如果所有的最佳拟合都是将所有变量都减少到零,那么你只会得到非零的截距,因此所有的预测都是相同的值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
coef(cv.lasso,s=cv.lasso$lambda.1se)
5 x 1 sparse Matrix of class "dgCMatrix"
                     1
(Intercept) 0.07435786
K00074      .         
K00100      .         
K00179      .         
K00180      . 

看看你的数据框架,如果你只有4个自变量/预测值,套索就太夸张了。您可以只应用简单的线性回归:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
head(predict(glm(Pheno ~ .,data=data[1:100,])))
          1           2           3           4           5           6 
 0.21560938  0.28477818  0.28477818 -0.05017303 -0.11487138 -0.18404019 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60434718

复制
相关文章
[一起学RL] 策略迭代和值迭代
上一次分享了十个问题认识MDP,强化学习的目的是要找到一个策略π,使得累积回报的期望最大。这次和大家分享如何在MDP下做决策以及如何得到各个状态对应不同动作下的v值。如果想详细学习的可前往“参考”中的链接。
秋枫学习笔记
2022/09/19
1.6K0
Python字典提取_python字典键对应的值
注意如果存在相同键值,比如说: a={'a':1,'b':2,'c':3,'aa':12} b= {'aa':11,'bb':22,'cc':33} 那么方法一\二\三得到结果为
全栈程序员站长
2022/11/03
3.7K0
Python - 字典中的值求和
Python 编程语言是一种高级的通用编程语言,广泛用于各种目的。该软件由网页设计、数据分析和人工智能组成。人们之所以意识到这一点,是因为它的简单性、易读性和可用性的便利性。Python 提供了各种预定义的数据结构,包括列表、元组、映射、集合、堆和阵容。这些组件在每种编程语言中都至关重要。在这篇文章中,我们将专注于用于保存关键信息对的词典。
很酷的站长
2023/08/11
3160
Python - 字典中的值求和
【Python】字典 dict ① ( 字典定义 | 根据键获取字典中的值 | 定义嵌套字典 )
字典 在 大括号 {} 中定义 , 键 和 值 之间使用 冒号 : 标识 , 键值对 之间 使用逗号 , 隔开 ;
韩曙亮
2023/10/11
2880
22.Python对列表与字典的迭代
在Python中只要是可迭代对象,都可以通过for循环进行遍历。列表与字典都是可迭代对象,所以都可以通过for进行遍历。 1.列表的遍历
用户4381798
2020/07/30
1.9K0
Python获取字典值
前面简单介绍了Python字典,以及如何创建字典。今天我们来聊聊如何获取字典中的值。python中有两种方法来获取字典中的值——get() 方法和 [key] 方法,今天我们来简单对比一下这两种方法。我们还是拿上次的car来举例子。
生信交流平台
2020/08/06
1.9K0
python字典更新值_Python–字典元组值更新
有时在处理元组数据时,我们在执行其版本时会遇到问题,原因是它是不可变的。讨论字典中元组值的版本。这在许多领域都有应用,因为字典通常是web开发和数据科学领域中流行的数据类型。让我们讨论解决这个问题的某
用户7886150
2021/01/13
2.4K0
python 字典最大值、最小值、排序
prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75 }
用户5760343
2019/09/25
1.7K0
抛弃dict[key]的方式访问Python字典的值
如果key不存在,dkey会抛出一个KeyError类型的异常,这将导致python程序崩溃,这是非常令人烦恼的事情。
AIFEx
2023/10/04
2480
抛弃dict[key]的方式访问Python字典的值
Flask 学习-89.模板中迭代字典.items()
django 中迭代字典,可以直接Dict.items,在flask 中迭代字典遇到了一些坑
上海-悠悠
2023/01/03
6230
Flask 学习-89.模板中迭代字典.items()
二值图拓扑性质 —— 迭代修正
除了将二值图中的局部处理结果直接加起来以外,我们还可以用这些局部处理结果来生成一张新的二值图。根据原图中的对应图像单元的局部计算结果,我们可以确定:新的二值图中相应图像单元的值。新的二值图可以被作为:另一个计算周期的输入。这个操作被称为:迭代修正。
为为为什么
2022/08/09
5950
二值图拓扑性质 —— 迭代修正
Python使用对象方式获取字典的值
2020-07-23 发表在 编程语言 35 字典获取值方式: aa=dict() aa.get('aa') 如果想改成对象获取方式,可以用下列代码: # 定义一个类 class DictToObject(object): def __init__(self, d): self.__dict__.update(d) if __name__ == '__main__': d = {'id': 79, 'xc': 'B01AWLPUAG', 'crea
小贝壳
2020/07/26
4.2K0
RL实践1——动态规划值迭代
动态规划的使用条件时MDP已知,在简单游戏中,这个条件时显然成立的 使用Value iteration的方法求解每个状态的价值函数,迭代收敛之后,对应最优策略生成。
列夫托尔斯昊
2020/09/07
5090
字典值替换注解 – AOP最佳实践
收心
2023/06/07
5390
查询字典码,并且以值的形式进行返回
在加入到数据库的时候,对应的字段是代码编号,但是查询的时候,我们要展示,不能只是展示编号,要展示的是编号对应的具体的值,所以,我们需要在xml里面进行套语句。也就是在查询语句里面套
一写代码就开心
2020/11/20
1.5K0
示例讲字典(Dictionary):获取唯一值
字典(Dictionary)是一种通过键(key)和项(item)(注:键和项是字典中的术语)存储唯一项的方法。它是一种基于唯一键存储数据的极好工具,它的强大之处在于可以使用键来存储和合并数据。
fanjy
2022/11/16
4.9K0
示例讲字典(Dictionary):获取唯一值
Python如何修改字典键所对应值
字典中有成对出现的键和值,但是字典中的键值对不是都能修改的,只有值才能修改,我们可以把字典中的键理解为列表下标,一个列表的下标永远是从0开始依次递增1的,是无法修改的。
python自学网
2021/12/02
4.9K0
Python如何修改字典键所对应值
python函数——字典设置默认值 setdefault()
Python 字典 setdefault() 函数是添加键并将值设为默认值。 当然,Python 字典中 get() 也可以实现字典默认值的操作,相关博文如下 python函数——字典设置默认值 get() python函数——字典设置get() 与 setdefault()区别
莫斯
2020/09/10
1.9K0
【说站】python使用get()访问字典值
1、一般访问字典中的键值作为索引引用值,但会出现问题。如果访问的键值不在字典中,就会出错。
很酷的站长
2022/11/24
7820
【说站】python使用get()访问字典值
点击加载更多

相似问题

“$”符号在Powershell中有什么作用?

221

"@“符号在SQL中有什么作用?

73

“&”符号在SQL中有什么作用?

20

$符号在VBA中有什么作用?

4108

"@“符号在PowerShell中有什么作用?

52
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文