pearsonr报错:计算结果为nan、warning .warn (stats.constantinputwarning (msg))

【1】两个都是ndarry 最后结果为nan:

(1)数据类型转换:都转为一样的float32:依旧报错nan

(2)进入函数内部debug:

if (x==x[0]).all() or (y==y[0]).all() warning .warn (stats.constantinputwarning (msg)) 

这一步出现了报错!

是一个警告信息,用于提醒可能出现了某些问题。在这种情况下,警告是由于计算 Pearson 相关系数时出现了常数输入变量(constant input variables)。

警告的具体内容 "ConstantInputWarning" 表示输入的变量在整个数据集中都是常数,也就是说没有变异性。在计算 Pearson 相关系数时,这样的常数输入变量会导致分母为零,从而无法进行计算。

为了解决这个问题,你可以采取以下措施之一:

  1. 检查输入的变量数据:请确保输入的变量数据合理且没有错误。检查数据集中的变量是否都是常数,可能需要查看数据的统计摘要或可视化来确定变量的变异性。
  2. 移除常数变量:如果确实存在常数输入变量,可以选择将其从计算中排除掉。你可以在计算前检查变量是否是常数,并进行相应的处理,例如删除该变量或选择其他适当的方法分析 variables 间的关系。
  3. 考虑使用其他相关性测量方法:如果你遇到了常数输入变量问题,还可以尝试使用其他相关性测量方法来分析变量之间的关系,如 Spearman 相关系数或 Kendall's Tau 等。这些方法对于处理常数输入变量的情况更具鲁棒性。

经过检查:发现模型不管输入什么输出的预测结果都是一样的,所以导致了pearsonr 无法计算出结果

原因:模型过拟合,使用relu 导致很多数据最后都变成了0 

解决:再次训练,注意relu的使用位置,同时使用其他的激活函数替代

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值